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

2 Introduction

2.1 Specification Organization

Beyond the abstract and this introduction, educators and non-technical readers are typically interested in the pK-12 data objects that can be shared and reported on by SIF-enabled applications in SIF implementations. These are presented in the Data Model section in a format that should not be a barrier to readers with a background that includes a brief introduction to [XML], though they may benefit from the introductory sections of Architecture. Technical readers, including software architects, developers and integrators, should have a solid background in Architecture, Messaging, Infrastructure and Data Model.

2.2 Document Conventions

2.2.1 Definitions

The first time a term or concept is defined, it may be emphasized.

2.2.2 Structure and Values

SIF message and object names, XML element tags, attribute names and values, and other codes or values are typically presented as in this sentence.

2.2.3 Examples

Longer examples of XML or HTTP messages are typically numbered and presented as given here.
Example 2.2.3-1: Examples Convention

2.2.4 References

References to other works occuring in this text are given in brackets, e.g. [REFERENCE]. The text in brackets corresponds to a key in the References appendix. Often when the text in the brackets duplicates surrounding text, the reference alone is used (e.g. [XML] instead of XML [XML]).

2.2.5 Terminology

The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, OPTIONAL, when EMPHASIZED, are to be interpreted as described in [RFC 2119].

2.2.6 XML Diagrams

Quick overviews of XML structures, including messages, objects, common elements and types, are provided in XML diagrams. The following diagram illustrates the conventions typically encountered in SIF.

Figure 2.2.6-1: XML Diagram Conventions

XML elements are represented by rectangles with the name of the element in the upper portion and the type, if any, in the lower portion. Attributes are represented in the same fashion, but have an @ icon rather than a SIF icon. Elements and attributes that are optional have a circled ? (0 or 1 occurrence) to the left of the rectangle. Optional and mandatory repeatable elements are indicated by a circled * (0 or more occurrences) and + (1 or more occurrences), respectively. Element attributes are grouped together in a rectangular block and connected to the element with a line that turns at right angles. Ordered sequences of XML elements are bracketed by lines that turn at right angles. When a choice of XML elements is indicated, the elements are bracketed by angled lines. A choice of elements can occur within an element, or may be an unnamed choice of elements.

XML types are represented using the same conventions as for XML elements, though the type portion of the rectangle typically indicates a base type, if any.

The type name of any element, attribute or type may be prefixed with a , indicating the type is restricted in some fashion by one or more XML Schema facets (e.g. enumeration). When the type is a union of types, a list of types is presented, each type separated by |; if the list of union types is long, the list may be ellipted with | ...

In an actual XML diagram, element, type and attribute rectangles are usually linked to their corresponding definitions/descriptions in accompanying tables.

2.3 Version Numbers

The SIF Implementation Specification uses the following version numbering scheme:

major version.minor versionrrevision number

Major versions typically introduce additions/changes to the SIF infrastructure and/or data model changes that impact a significant percentage of SIF-enabled applications (e.g. making previously optional elements mandatory, removal of deprecated objects, elements or values). The first release of a major version has a minor version of 0 (2.0); major version numbers start at 1 and are incremented as major versions are released (1.0, 2.0, 3.0, ...).

Minor releases typically introduce new data objects, or optional additions to data objects, to the marketplace, and may include minor infrastructure additions/changes that do not impact existing SIF-enabled applications and that ZIS vendors have agreed to implement. The first minor version released subsequent to and within a major release has a minor version of 1 and is incremented as new minor versions are released (2.1, 2.2, ...). If a significant number of minor release features is introduced in a specification, the SIF Association may decide to increment the minor version number by more than 1 (e.g. 1.1 to 1.5), though a number like 1.5 is not an indication of being halfway to a major release, as minor version numbers may be incremented significantly past 10 (2.10, 2.11, ...) as data objects and other minor version features are released.

Corrections resulting from identified errata, as well as textual changes, may be incorporated into a revision release. These typically include minor corrections to messages or data objects, corrections of typographical errors, or corrected/expanded documentation. If major errors in any release are identified, a revision release may incorporate changes more typical of a major or minor release. First major and minor releases have a revision number of 0, which is omitted from the version number (2.0, not 2.0r0); subsequent revision numbers start at 1 and are incremented as new revisions are released (2.0r1, 2.0r2, ...).

2.4 Highlighted Additions/Changes Since Version 2.x

2.4.1 Data Model

3 Architecture

3.1 Assumptions

The following assumptions are made of non-technical readers of this specification, especially end users undertaking SIF implementations:

They should also be aware that there are numerous third-party products and services available to aid in SIF implementation and integration.

Technical readers implementing SIF software and software solutions, particularly those implementing SIF Agents and Zone Integration Servers from scratch as opposed to using or building upon third-party products and services, should have an understanding of:

It is furthermore assumed that implementers have at their disposal or can implement:

3.1.1 Notes on Related Technologies

Implementers are referred to Notes on Related Technologies, which highlights technologies leveraged within SIF or related to SIF, either in their entirety or as a subset. This partially normative appendix points out specifics casual readers of referenced documents on these technologies must not ignore when implementing SIF Zone Integration Servers and Agents.

3.2 Concepts

This section presents the ideas behind the implementation of SIF, including the application and data models on which it is based. It serves as a precursor to further descriptions in following sections.

3.2.1 Data Model

The data that can be exchanged in SIF is defined using a series of data objects. These objects are expressed using [XML] and are defined structurally by this document and associated schemas, with this document and supporting documentation defining the semantics behind the exchange of individual data objects. StudentPersonal, StudentSchoolEnrollment and StaffPersonal are three of the many predefined data objects.

3.2.2 Zone Architecture

Although there are many variations of SIF topographies, the common feature is that a number of applications wish to share data. All SIF implementations, regardless of their complexity, consist of one or more applications with their associated agents communicating via a Zone Integration Server (ZIS).

One typical use of SIF is to connect products from various vendors together within a single school. These applications could include a student information application, a food service program, and a library automation application. Each of these applications has a vendor-provided interface program called an Agent.

Since the same school shares these applications, it makes sense to group them together into a logical entity. This entity is referred to as a Zone and is managed by a Zone Integration Server (ZIS).

There are no predefined sizes for zones, so a zone can be as large or small as required in order to meet the needs of the customer.

An application relies on its agent to exchange data using a predefined data model. Agents then communicate with other agents using the ZIS as a routing resource. The ZIS also provides access control so the customer can control which applications have access to which SIF data.

3.2.2.1 Contexts

The Zone is the primary means of partitioning data, applications, and policies. Zones are typically organized around geographic boundaries (e.g. school, district, region, state) or functional boundaries (e.g. horizontal integration, student locator services, data warehousing and reporting services). A SIF Context offers the ability to further partition the data within a Zone, to offer different perspectives of the data based on customer needs and application abilities. For example, while a student information system typically serves as the source for student-related data in the default context of a zone that integrates applications in a school or district, a data warehouse might better be suited to provide a historical or longitudinal perspective of that exact same student data in a different context, a context more suited to the reporting and data warehousing needs of an implementation. Contexts enable customers and system integrators to work with data in new ways while retaining the zone topologies commonly in use in implementations.

In addition to offering different perspectives on a zone's data, contexts allow two or more agents to register as a provider of the same object type within a zone. This may lead to future solutions built around contexts; for example, to better define how systems that publish similar objects cooperate in the same zone (e.g. student information systems and special education packages). Contexts also make it easier to apply a different set of business rules to different audiences. Unlike zones, which can be named and assembled in a variety of ways at the discretion of system integrators, contexts are to be treated as a part of the specification. The SIF Association sanctions contexts and provides documentation that defines each context's purpose and any associated message choreographies and business rules for it. Contexts defined by the SIF Association have context names that begin with SIF_ and the default context for a zone is named SIF_Default. It is RECOMMENDED that all ZIS implementations support the SIF Association-defined contexts as they are introduced; support for user-defined contexts is strictly implementation dependent, and agents are discouraged from relying on ad hoc or user-defined contexts.

3.2.3 Infrastructure and Messaging

Agents share data in a Zone via two models, the Publish/Subscribe model and the Request/Response model. Agents publish data changes of interest to subscribers by sending a SIF_Event message to the ZIS. Agents can also request or query data from other agents in a Zone by sending a SIF_Request message to an Agent, eventually being sent one or more SIF_Response messages in return. This exchange of messages over a SIF-defined transport layer, SIF HTTPS or SIF HTTP, is the primary feature that defines the SIF Infrastructure. Every message exchanged over this infrastructure is wrapped inside a SIF_Message and contains a SIF_Header element that specifies the source of the message and optional security, destination and context information. In addition to the messages exchanged between Agents via the ZIS, the SIF Infrastructure defines a number of messages that are exchanged between Agent and ZIS, and between ZIS and Push-mode Agent—these serve primarily to register various Agent settings at the ZIS and to support the exchange of messages between Agents.

3.2.4 Data Provision: A Request/Response Model

When an application (the Requester) wants to gather data from a specific data object, a SIF_Request message is sent to ZIS. The application may direct this request to a given Responder by specifying an Agent ID in the SIF_DestinationId element of SIF_Header. In most cases, however, the SIF_DestinationId element is omitted in which case the ZIS routes the request to the default responder, or Provider, for the data object of interest. Agents register as Providers with the ZIS using either the SIF_Provision or SIF_Provide message.

There is a single Provider per object per context per zone. There may be multiple Responders for a given object in a zone context.

In order to maintain control over what data is exchanged over the zone and who exchanges it, the ZIS must provide an access control system that limits who can provide, request, and respond to requests for which data objects. The access control system must maintain policies for each registered application.

If the requester knows or wants to control who the responder will be, it must place the responder's agent identifier in the SIF_DestinationId element of the header of the SIF_Request message. The ZIS will examine the SIF_Request message's header. If a SIF_DestinationId element is present, the ZIS must route the SIF_Request to the specified agent/application subject to the limitations imposed by the access control security policies for the zone. For instance, even though an application specifies that it wishes a specified application to respond, the zone security policy may prohibit the specified application from generating SIF_Response messages.

An application that wants to provide access to the data it contains via SIF may function as a responder. Such applications will support one or more SIF data objects. The application listens for SIF_Request messages for the objects that it supports. When it receives a SIF_Request for a supported object, the application will generate one or more SIF_Response messages containing the application's data, which will be routed by the ZIS to the requester. The responder must place the requester's agent identifier in the SIF_DestinationId element of the header for each SIF_Response message generated.

When an application receives a SIF_Request for a data object that it does not support, it must return a SIF_Response message with the SIF_Error element populated to indicate the nature of the error (invalid object), a SIF_PacketNumber of 1 and the SIF_MorePackets element set to indicate that no further packets will be sent in response to the SIF_Request.

3.2.5 Event Reporting: A Publish/Subscribe Model

Applications propagate data updates by publishing SIF_Event messages for the SIF data objects that are being added, changed, or deleted. In order for an application to receive these SIF_Events, subscriptions for the SIF data objects of interest must be entered at the ZIS. This subscription process is performed when an application sends a SIF_Provision message or one or more SIF_Subscribe messages to the ZIS. Once the subscriptions are entered, any SIF_Events for those objects received by the ZIS will be routed to the list of subscribers for those objects.

Once an application successfully sends a SIF_Event to the ZIS, the ZIS is responsible for delivering that SIF_Event to the subscribing parties without any further communication to the SIF_Event originator. The SIF_Event originator does not know how many applications, if any, receive the SIF_Event. No notifications are provided to the originator to indicate whether a SIF_Event was delivered to a subscriber or not.

The ZIS must maintain an access control system that limits who can publish and subscribe to events for which data objects.

Before an application can utilize the services of the ZIS, the application must register itself by sending a SIF_Register message to the ZIS. Once registered, an application does not have to perform any additional registration with the ZIS in order to be a publisher of SIF_Event data. Any application that has registered itself with the ZIS may publish SIF_Events subject to the limitations imposed by the access control security policies for the zone. It is recommended that event publishers register their ability to publish events by using the SIF_Provision message.

Multiple applications may publish SIF_Event messages for a given data object.

The application that is registered as the Provider for a given data object must be able to subscribe to SIF_Events for that object but the application is not required to subscribe to SIF_Events in a given SIF implementation.

An application that has subscribed to a SIF_Event must attempt to process the SIF_Event according to the business rules of the application. If the SIF_Event contains insufficient information or information that is inconsistent with the application's business rules, the application may ignore the message.

If an application publishes a SIF_Event as a result of changing the data within the application and the ZIS rejects the SIF_Event message, it is recommended that the application rolls back or cancels the changes that were made, but the application does not have to roll back the changes. For example, an application may attempt to add a new student and publish a SIF_Event to reflect the addition. If the application does not have permission to publish SIF_Event messages for that type of object, the SIF_Event is rejected. The application does not have to remove the newly added student from its local database.

3.2.6 Communication: An Asynchronous Model

In order to ensure scalability and reliability, SIF requires that its request/response and publish/subscribe models be asynchronous in nature. Once a ZIS synchronously acknowledges receipt of a SIF_Event, SIF_Request or SIF_Response with the return of a successful SIF_Ack, an agent cannot be assured that these messages will immediately be delivered to subscribers, providers/responders or requesters, respectively, or that it will receive an immediate SIF_Response to any submitted SIF_Request.

The asynchronous communication model can be likened to communicating with someone via e-mail or through the postal office: an individual sends the message, but does not know when it will be received, much less when the receiver will respond.

By requiring asynchronous communications, a SIF implementation can exploit software designs that achieve high scalability and reliability. For example, even if an agent is not currently connected to a Zone, another application's agent can still send messages to that agent knowing that the ZIS will deliver those messages as soon as the agent is available.

In contrast to the asynchronous communication model, most agent-to-ZIS and ZIS-to-agent communication—over currently defined transport layers—is synchronous in nature. Any time an agent sends a SIF_Message to a ZIS, the agent waits for a SIF_Ack to be returned from the ZIS to acknowledge receipt of the message. Once acknowledged, the ZIS guarantees future delivery of SIF_Event, SIF_Request and SIF_Response messages, barring certain error conditions. For messages not directly related to the request/response and publish/subscribe models, the acknowledgement from the ZIS also indicates successful completion of operations related to registration, subscription, provision and system control operations. Relatedly, when a ZIS contacts an agent in Push mode, the ZIS waits for a SIF_Ack to be returned from the agent to acknowledge successful delivery of the message currently pending for the agent.

3.2.7 Security Model

The security model of SIF centers around three areas: encryption, authentication and access control. SIF provides application agents the ability to specify the encryption and authentication requirements for all other agents that eventually come into contact with their sensitive data. Various communication protocols over which SIF data may be transferred, including SIF HTTPS, provide built-in support for easing the implementation details of guaranteeing encryption and authentication requirements. In addition, access control at the ZIS allows a zone administrator complete control over which agents are allowed to communicate which data to other agents.

As SIF HTTPS is the default communication protocol that all agents and ZIS implementations must support, many of the encryption and authentication levels specified in this document are tailored to the encryption and authentication algorithms currently defined within SIF HTTPS. When a ZIS implementation supports other communication protocols, the ZIS must guarantee that these levels are accurately reflected and adhered to when communicating with agents that support these same protocols.

3.2.7.1 Encryption

Encryption provides the mechanism to ensure that only the sender and receiver of a message can view the message contents. In a totally secure model, all communications between agent and ZIS will be encrypted. The SIF HTTPS protocol, which must be supported by all agents and ZIS implementations, is a secure transport and provides encryption of the data being exchanged.

If additional communication protocols, or transports, are used, it is important to know if these transports are secure to avoid exposing sensitive data. SIF provides a method for an agent to specify to the ZIS how secure the channel between the ZIS and other agents must be when ultimately delivering the originating agent's sensitive data. ZIS implementations must guarantee the requested security levels when communicating with recipient agents, regardless of which transport is in use. If a ZIS is unable to ensure these security levels when communicating with a recipient agent, the ZIS must not transport the message across the insufficiently secure channel. It is recommended that the ZIS log the inability to deliver the message to the recipient agent due to security requirements.

The responsibility for guaranteeing the security of data that an originating agent transfers to the ZIS lies ultimately with the originating agent, or zone administrators. For example, if the originating agent requires a very secure channel for a given message, it should not intentionally or inadvertently communicate that message to the ZIS over an insecure or insufficiently secure channel, should the ZIS support such channels. At that point, the data has already been communicated insecurely. Zone administrators can prevent such occurrences by configuring the ZIS and agents within the zone such that a minimum security level is maintained, below which communication is impossible.

In many cases, the establishment of a secure channel and encryption can be delegated to the transport layer.

3.2.7.2 Authentication and Validation

The role of authentication is to provide a means to ensure that the author of a message is the actual author. Authentication guards against a situation where a foreign agent claims to be a legitimate zone participant and fakes a message to gain access or alter the SIF data.

Another important role of authentication is to provide the ability to detect that each message that passes through the Zone arrives at its destination unaltered by other intermediaries.

Authentication support is optional but highly recommended.

3.2.7.3 Access Control

SIF must be customizable for specific deployments. This particularly applies to customization for the security policies. For example, a SIF administrator can specify which applications can participate in the SIF deployment, which data objects each application can provide or request, and what events each application can produce and receive.

The access control requirements are discussed more fully under ZIS Requirements.

3.3 SIF Architecture

This section describes the architecture and components that make up SIF. It presents high-level functional requirements for each component and interfaces between them. More detail on particular requirements and interfaces may be found in Messaging and Infrastructure.

3.3.1 Architectural Components

A SIF Zone is a distributed networking system that consists of a Zone Integration Server (ZIS) and one or more integration Agents. The size of a zone is flexible and could consist of a single building, school, a small group of schools, a district, a region, a state, a nation, etc. SIF is a scalable solution for data exchange. A SIF Implementation consists of one or more SIF Zones deployed and configured to meet customer data sharing and reporting needs.

A Zone Integration Server is a program that provides integration services to all the agents registered with it so that they can provide data, subscribe to events, publish events, request data, and respond to requests. It is responsible for all access control and routing within the Zone.

Each application requires an agent, which typically is provided by the application vendor, to communicate with other applications via the ZIS and their respective agents. For example, a school may use a student information application, a food service application, and a library automation application. Each of these applications must have an agent that acts as a go-between between the application and the Zone Integration Server.

In SIF, an agent never communicates with another agent directly. Instead, each agent communicates with the ZIS as a trusted intermediary that brokers the exchange of data with other agents. Having the ZIS manage routing responsibilities allows complex communications to occur between agents that have no direct information about each other and that may or may not be available for communication at any given point in time.

The following diagram illustrates a typical single-zone SIF implementation for a school.

Figure 3.3.1-1: Single-Zone School SIF Implementation

A zone is often defined according to physical boundaries; for example, a zone can consist of all the applications that are connected over a private network and managed by one organization, such as a school. Security, scalability, and manageability requirements can also influence the decision of how zones are designed and configured.

Zones are a flexible and powerfully creative tool for meeting the data exchange and reporting needs of users; zones can be as varied as the customers in the education marketplace. While a single school zone may meet the needs of a single school, SIF implementations can scale to meet the needs of specific end users through the use of multiple zones, sometimes managed by different ZIS implementations. Two examples of many multiple-zone implementation design patterns are included here for illustration.

In the first, the data exchange needs of a district are met through the use of four zones, one for the district, and three for schools within the district: elementary, middle and high school. Here a student information system provides its complete set of district-wide data to a district zone, while providing school-based views of and access to that data in the individual school zones. Library systems in this implementation are school-based, while the food services system, like the SIS, is district-based.

Figure 3.3.1-2: Multiple-Zone District SIF Implementation

The second example illustrates an agent communicating in both a district and a state zone. This agent could be associated with many different types of applications, including a SIS or data warehouse, reporting date up to the state, and so on.

Figure 3.3.1-3: Multiple-Zone State SIF Implementation

Multiply the district portion of this diagram by dozens or hundreds of districts, each with its own local zone or configuration of zones, and the distributed scalability of SIF using zones is readily apparent.

3.3.2 Naming Conventions for Agents and Zone Integration Servers

SIF requires that each agent and ZIS be identified with a distinct case-sensitive identifier that is unique within a zone. This identifier is carried inside the SIF_SourceId element of the SIF_Header included in each SIF message and is used, among other things, at the ZIS to reference access control permissions of each agent within the zone. It is recommended that agent and ZIS implementations have user-configurable identifiers in order for zone administrators to maintain unique identifiers within the zone.

The identifier should be descriptive of the role of the application in the zone. For example, the library automation agent for Ramsey Elementary might carry the identifier RamseyLib instead of the less descriptive CC41Agent. The Zone Integration Server for Ramsey might be known as RamseyZIS.

3.3.3 Object Identifiers

Data objects and the data local to an application that map to these objects often must be retrieved by a unique identifier. Likewise there often exist relationships between data objects that require a unique key or identifier for efficient look-up of related data. SIF provides these keys or unique identifiers through object identifiers, also known as RefIds or GUIDs thanks to SIF naming conventions and the type of identifiers used in SIF, respectively. The StudentPersonal object, for instance, carries detailed information about a student, and most agents that manage or require student information reference the data stored in this object and often map the RefId of StudentPersonal to locally stored data, or request StudentPersonal objects from the zone by RefId. Objects often carry an attribute that identifies a particular object instance; this attribute is named RefId. It is imperative that RefIds not clash with any other RefId. This is especially relevant when an agent manages a database comprised of a mix of objects; for example, a library database containing patrons, which are a mix of both students and staff. To virtually eliminate the possiblity of duplicate object identifiers and to provide a consistent, decentralized way of generating these identifiers, SIF requires the use of a globally unique identifier (GUID) that MUST be generated per published algorithms [RFC 4122] whenever a RefId is used. GUIDs in SIF have their own format; they MUST be 32 characters long and contain only valid upper-case hexadecimal characters (0-9, A-F) with no spaces or punctuation.

Object identifiers do not have to appear on any customer screens and they do not replace any identifiers currently in use by applications. Applications and application users users can still reference data as they always have. The GUID provides an additional key, which becomes the SIF primary key that agents use to reference an object within SIF.

As stated, object identifiers are also used to represent telationships between objects. Where referenced, RefId is typically prefixed with the object name, e.g. StudentPersonalRefId in StudentPicture refers to the RefId of the StudentPersonal object corresponding to the student photographed. Other more complex conventions surrounding object identifiers and RefIds can be found in Data Model.

3.3.3.1 Persistence

When used as identifiers for objects that persist over time—take for instance the StudentPersonal object that represents a student in a Zone—it is SIF's intent that object identifiers not change over time. The RefId attribute for John Doe in first grade should have the same value when John Doe is in second grade, in middle school or in high school. This persistence of object identifiers enables longitudinal tracking of data within SIF, especially where there exist no locally unique identifiers associated with objects. Implementations SHOULD avoid reassignment of object identifiers within a zone and as the primary home for individual objects may move from one zone to zone over time (e.g. a student moving from a middle-school to a high-school zone).

3.3.4 Agent/Application Requirements

Each application that wants to be a SIF application, or SIF-enabled application, must have an agent written for it. An agent is an extension to the application that communicates with the ZIS. An agent can be an integral part of an application itself, or may be a separate, specialized client of or interface to an application.

All applications that are part of a SIF zone must be able to gracefully handle all SIF messages including those messages and data objects that the application does not support. It is RECOMMENDED that the application return an error SIF_Ack message to the ZIS for those messages that the agent does not support (error category Generic Message Handling, error code "Message not supported"). An agent MAY return an "Immediate" SIF_Ack to the ZIS and ignore unsupported messages.

High-level functional requirements for all SIF-enabled applications include the following. More detail on particular requirements may be found in Messaging and Infrastructure.

3.3.4.1 Communicate with the ZIS

Support for SIF HTTPS is REQUIRED of all agents. An agent MUST be able to communicate with the ZIS using SIF HTTPS, but it may attempt to communicate with the ZIS using any communication protocol defined in this or other specifications. SIF HTTP is the other communication protocol defined in this specification at this time. Support for any communication protocol other than SIF HTTPS is implementation-dependent. If connection attempts in protocols other than SIF HTTPS fail, a connection over SIF HTTPS should be made in order for communication to proceed. Given the sensitive nature of much of the data within the zone, it is RECOMMENDED that all communication occur over SIF HTTPS or similarly secure communication protocols.

Given a communication channel between agent and ZIS, an agent is REQUIRED to register with the ZIS if it is not already registered or if it wishes to change or retransmit its registration settings. The SIF_Register message provides the ZIS information regarding agent capabilities and requirements, and allows the ZIS to contact the agent in the future if the agent is capable of accepting ZIS-initiated communications (a Push-Mode Agent).

An agent MAY also indicate its support for various data objects and associated messages using one or more of the SIF_Provision, SIF_Provide and SIF_Subscribe messages.

3.3.4.2 Transmit Application Changes to the ZIS

When an application makes changes to its data that correspond to a SIF object it supports, the application MUST be able to publish SIF_Events reflecting those data changes. If the application/agent makes changes to its data in processing a SIF_Event it has received, it MUST NOT publish an event that duplicates the changes as described in the processed SIF_Event. Should the application/agent, however, make additional changes beyond those in the SIF_Event being processed, the application SHOULD generate a new event describing the additional changes.

If an application does not support an optional field of an object or that element was not changed during the last edit, it MUST NOT send an empty element, (i.e., <BirthDate/> or <BirthDate></BirthDate> ); it MUST omit the element from the XML stream instead.

When publishing Add events, Agents MUST include all elements listed as mandatory in Data Model for the object.

3.3.4.3 Respond to Requests

All agents MUST be prepared to handle SIF_Request messages for all objects gracefully. In the case where an agent receives a SIF_Request for an object that it does not support, in addition to acknowledging the receipt of the message to the ZIS it MUST send a SIF_Response message to the Requester with the SIF_Error element populated to indicate the nature of the error (invalid object), a SIF_PacketNumber of 1 and the SIF_MorePackets element set to indicate that no further packets will be sent in response to the SIF_Request.

If an application agent is a responder for any object, the agent must be prepared to process SIF_Request messages for that object. This involves the ability of the agent to traverse the application database and construct an XML response stream based upon the parameters of the query request. All responders MUST support SIF_Query and query conditions that reference root attributes of the object as well as any mandatory elements within the object, along with their mandatory attributes. Responders SHOULD support query conditions that reference optional elements and their attributes, when the application supports such queries. Responders MAY support SIF_ExtendedQuery and MUST register their support for SIF_ExtendedQuery using SIF_Provision and/or SIF_Provide.

When an agent is creating SIF_Response packets, it MUST attempt to ensure that each packet is no larger than the SIF_MaxBufferSize specified by the SIF_Request. If for any packet a single packet does fit within the supplied SIF_MaxBufferSize, the agent MUST, in addition to acknowledging receipt of the message to the ZIS, send a SIF_Response message to the Requester with the SIF_Error element populated to indicate the nature of the error, and the SIF_MorePackets element set to indicate that no further packets will be sent in response to the SIF_Request.

The SIF_Request message also contains SIF_Version elements that specify which SIF versions the responding agent should use when preparing the response packets. If a responding agent can support a single requested SIF version, it returns a response packet using that version. If more than one version is specified and the responding agent supports more than one of those versions it SHOULD respond with the highest version it supports. If the agent cannot support any requested SIF version, in addition to acknowledging receipt of the message to the ZIS, the agent MUST send a SIF_Response message to the Requester with the SIF_Error element populated to indicate the nature of the error, a SIF_PacketNumber of 1 and the SIF_MorePackets element set to indicate that no further packets will be sent in response to the SIF_Request.

If any other error occurs while creating SIF_Response packets for a given request, in addition to acknowledging receipt of the message to the ZIS, the agent MUST send a SIF_Response message to the Requester with the SIF_Error element populated to indicate the nature of the error, with SIF_MorePackets set to indicate that no further packets will be sent in response to the SIF_Request.

Agents supporting SIF_Requests MUST be able to return all of the object fields that the responding application supports or a subset of the fields as specified by the query request. For example, an Agent may request that only a student's graduation year be returned and not the entire StudentPersonal object. If the responder does not support a requested element, it MUST NOT exclude the object from the response stream. Any requested element that is unsupported is omitted from the response stream; when processing SIF_Query requests, parent elements of requested elements, including the object itself, are included in the response stream.

If an application does not support an optional element of an object, it MUST NOT return an empty element. The element MUST instead be omitted from the XML stream.

3.3.4.4 Changes Required to the Vendor's Application

Depending upon the type of architecture, the core application may need to be altered to ensure that the agent is able to forward changes to objects of interest to SIF. For example, an application that edits student data may need to be modified to capture the adds, changes, and deletes made to students and store them into a temporary repository until the agent can forward them to the ZIS. Other architectures provide the ability to trap these changes at a server level eliminating the need for any changes to the application itself.

To meet the SIF requirement of data robustness, it is highly RECOMMENDED that all changes to objects of interest to SIF be persisted using a database table, local message queue, or other highly reliable storage system. This specification allows for the ZIS and any or all agents to be offline at any given time. Without storing agent changes locally, these changes can be lost when the ZIS is temporarily unavailable; local storage allows these changes to be transmitted to the ZIS when it becomes available.

When an object is shared for the first time in SIF, it is the responsibility of the application making the object available to assign its object identifiers/primary keys, typically a RefId in the form of a GUID, before releasing that object to the zone in an Add event or in a SIF_Response. Some application databases are extended to include SIF object identifiers, others maintain mappings from SIF object identifiers to locally-defined keys.

If an application changes data that maps to a SIF object, it is RECOMMENDED that only the changed fields be sent to the zone. This will result in smaller message sizes and improved performance.

To avoid unintentional overwriting of data, unsupported fields or fields that have not been changed MUST NOT be sent to the zone using empty XML elements, (i.e. <Name Type="04"/> or <Name Type="04"></Name> ); the fields MUST be omitted from the XML stream instead.

3.3.4.5 Support Authentication and Digital Signatures

Supporting authentication is not a requirement but it is highly RECOMMENDED to ensure that your agent will be able to communicate with any ZIS. SIF does not mandate the use of authentication, but it is feasible that many SIF implementations will require this functionality. This is especially true for installations that may use the Internet to transport data.

Typically the authentication and verification mechanisms that are built into the network operating system or transport protocol can be leveraged. If these services are available, authentication and verification take place completely within the underlying security package.

The SIF HTTPS protocol supports authentication between an agent and a ZIS. If authentication is enabled and properly configured, a message receiver (agent or ZIS) can trust the SIF HTTPS implementation to verify that the message in its entirety comes from the claimed sender.

3.3.4.6 Agent Local Queue

An Agent can be developed with a local queuing mechanism so that it can automatically cache incoming messages in a local queue and can acknowledge receipt of each message to the ZIS with "Immediate" SIF_Ack messages (which causes the ZIS to remove received messages from the agent's queue). Agents with an Agent Local Queue do not need to send any "Intermediate" SIF_Acks to the ZIS. Use of an Agent Local Queue can be used to locally support selective processing of messages, similar to the functionality provided by Selective Message Blocking; its use also allows more flexibility and robustness during application/system failure when successfully acknowledging events, requests and/or responses before performing the corresponding SIF_Event, SIF_Request and/or SIF_Response handling.

Agent Local Queue is not a required feature of any Agent. Agent developers can choose not to develop the Agent Local Queue mechanism since this is not part of the compliance requirements for the specification at this time.

3.3.4.7 Wildcard Version Support

It is possible for a SIF Zone to contain Agents written to different versions of the SIF Implementation Specification if a ZIS supports multiple versions in a Zone and has at least one version in common with all registered Agents. As such, it is possible for a SIF Zone to contain Agents that have no versions in common with other Agents. These Agents consequently have no ability to exchange SIF_Event, SIF_Request or SIF_Response messages, unless the ZIS provides message conversion as described in "Multiple Version" Zones.

As message conversion is an implementation-dependent feature of a ZIS, it is RECOMMENDED that Agents register in Zones and request data using SIF_Version wildcards (see SIF_Register for format) that allow for the exchange of data between Agents supporting any subset of releases within a major release cycle of this specification (e.g. 2.* or * to accept any SIF_Message in the 2.x lifecycle). (Note that * allows messages from any major version to be delivered, which can be structurally quite different across major versions and pose development challenges, and is not particularly recommended for indicating the ability to receive messages from all versions within a major version release cycle.) This maximizes the ability of Agents to exchange messages and data in these Zones and, for customers, maximizes the utility of Zones supporting different versions of this specification.

Wildcard version support is particularly important for SIF-enabled applications that are not updated with each release of this specification. Furthermore, given that releases of the SIF Implementation Specification are on a more rapid release cycle beginning with version 2.1, typically smaller in scope than SIF Implementation Specification releases historically, it is anticipated that it will become more common for SIF-enabled applications in Zones to support different specification versions, and for more applications not to be updated with each release of this specification. Wildcard version support also allows applications to be SIF-enabled at any time in a SIF Implementation Specification major release cycle without risking the need to upgrade with the introduction of a new minor release of the specification, particularly when the new functionality offered by the specification does not apply to or impact the application.

Ignoring revision releases, the changes typical of releases within a given major version are limited to new data objects and optional additions to existing data objects (and optional infrastructure additions). This nature of a lower release being a subset of each higher release within a major release lifecycle—and of a higher release being a superset of each lower version—allows SIF-enabled applications access to the same elements they rely on at the time of their implementation from SIF messages defined by a number of SIF Implementation Specification versions. For associated implementation notes, see Wildcard Version Support Implementation Notes.

While wildcard version support in this specification is only RECOMMENDED, SIF-enabled application developers should be aware that this support may be mandatory in some SIF Certification Program product standards [SIFCertification] associated with a major release cycle, if application vendors wish to establish their applications as SIF Certified™.

3.3.5 Zone Integration Server Requirements

The Zone Integration Server is the central integration point for all the agents in a zone. Depending on the message type, a ZIS either saves information in the messages that it receives or forwards the messages to other appropriate agents.

The ZIS implementer is free to internally manage registration and access permissions information in any form that the implementer supports. In order to provide an example of how an administration system may be structured, this document describes a database consisting of an Access Control List and Zone Status.

3.3.5.1 Access Control List

A ZIS MAY maintain access control on whether a zone administrator has granted an agent permissions to register.

A ZIS MAY exhibit behavior with regard to the ACL that could be perceived by an Agent as if virtual tables exists defining the following information:

FieldComments
Agent IDThe unique ID for an Agent (provided as the Source ID in a SIF_Register message)
RegisterMay this agent register in the zone?
Table 3.3.5.1-1: Register

An example of this virtual table, which defines which agents are allowed to register in the zone, might be as follows:

Agent IDRegister
RamseySIStrue
Table 3.3.5.1-2: Virtual Table Example (Register)

In addition, a ZIS MUST exhibit behavior with regard to the ACL that could be perceived by an Agent as maintaining per-context/per-object permissions for each message associated with SIF's Publish/Subscribe and Request/Response models. When an agent tries to inquire about a student's personal information, for example, the ZIS needs to check if the agent has the proper permission to request such information. Access control is needed to ensure that the information available in SIF only originates from and is accessible by authorized agents.

FieldComments
Agent IDThe unique ID for an Agent (provided as the Source ID in a SIF_Register message)
Context NameThe name of the SIF Context to which the permissions apply
Object NameThe object being manipulated (e.g., StudentPersonal, etc.)
ProvideMay this Agent register as the provider for this object in this context?
SubscribeMay this Agent register as a subscriber for this object in this context?
Publish "Add" EventMay this Agent publish "Add" events for this object in this context?
Publish "Update" EventMay the Agent publish "Update" events for this object in this context?
Publish "Delete" EventMay the Agent publish "Delete" events for this object in this context?
RequestMay this Agent request this object in this context?
RespondMay this Agent respond to a request for this object in this context?
Table 3.3.5.1-3: Access Control

It is important to understand that this is a virtual table, defining the appearance of the functionality to the Agents, the actual implementation of this functionality is at the discretion of the implementers of a ZIS. An example follows:

Agent IDContext NameObject NameProvideSubscribePublish "Add" EventPublish "Update" EventPublish "Delete" EventRequestRespond
RamseySISSIF_DefaultStudentPersonaltruetruetruetruetruefalsetrue
RamseySISSIF_DefaultLibraryPatronStatusfalsefalsefalsefalsefalsetruefalse
Table 3.3.5.1-4: Virtual Table Example (Access Control)

In addition to access control permission violations, attempts to register any of this functionality with the ZIS may fail due to other reasons; e.g. unsupported transport mechanisms, there already being a provider for an object, etc. As a result, an Agent SHOULD be able to gracefully handle corresponding error conditions or report those errors to a zone administrator.

3.3.5.2 Zone Status

The ZIS MUST maintain the status of the zone for implementation purposes, as well as for communicating this status to other agents, as defined in SIF_ZoneStatus, when requested. This status includes but is not limited to:

Providing examples of virtual tables that illustrate storage of all the information associated with SIF_ZoneStatus is beyond the scope of the specification; implementers should refer to SIF_ZoneStatus for requirements.

3.3.5.3 Zone Context Registry

Zone Integration Servers MUST maintain a registry of the contexts used in each zone in order to perform contextual message routing and to populate the SIF_ZoneStatus/SIF_Contexts element. This registry will always contain, at a minimum, the official list of contexts defined by the version of SIF that the ZIS supports. Beginning with SIF 2.0, that means that each zone will, at a minimum, support the SIF_Default context. A ZIS MAY support allowing additional contexts to be defined within the context registry at the discretion of the ZIS administrator. Access Control Lists within each context MUST also be able to be managed by the ZIS administrator. The set of permissions for each agent within each context MUST be able to be set differently than ACL permissions within a different context for the same agent.

An agent can obtain a list of all contexts currently defined in a zone by requesting the SIF_ZoneStatus object and enumerating the children of its SIF_Contexts element. An agent can determine its ACL permissions within the zone and each context by referring to the SIF_AgentACL object and enumerating the permissions and contexts defined within it.

3.3.5.4 Administration

A ZIS MUST provide an interface for Zone Administrators to configure zone settings, including access control permissions. Given the distributed nature of SIF, it is RECOMMENDED this be a Web-based interface. Some of the areas that require administration are:

Administration
Start and stop the ZIS and/or set the state of the ZIS to "asleep" or "awake."
Security Policies
A ZIS must provide an interface for administering access control permissions as described above.
Administering the minimum SIF_EncryptionLevel for the zone (if only one encryption level is supported, configuration options are unnecessary).
Administering the minimum SIF_AuthenticationLevel for the zone (if only one authentication level is supported, configuration options are unnecessary).
It may also include installing client and server certificate administration.
Zone Settings
If the ZIS supports more than one SIF version it must support configuration of which SIF versions are used in a zone.
If the ZIS supports more than one transport protocol, it must allow for configuration of which transports agents can use to communicate, including limiting communication to SIF HTTPS.
The ZIS must support configuration of the minimum acceptable SIF_MaxBufferSize for the zone.
If message validation is supported and configurable, configuration to enable or disable message validation in a Zone should be available.
Logging
Capture error and message logs to aid in tracking pending, successful and failed delivery of messages.
Reporting
Report zone status and statistics.
Testing
Provide a mechanism to "ping" Push-Mode agents.

3.3.5.5 Support Selective Message Blocking (SMB) to Resolve Deadlocks

3.3.5.5.1 Description

Selective Message Blocking is a feature that MUST be implemented by a ZIS to enable non-multitasking agents unable to persist portions of their message queue locally to request information from other Agents while processing a SIF_Event message, without causing communication "deadlock" between an agent and a ZIS.

This feature allows an agent to inform the ZIS with an "Intermediate" SIF_Ack message that the ZIS must temporarily stop delivering SIF_Event messages to the agent. The "Intermediate" SIF_Ack message must not be used by agents in response to messages other than SIF_Event. The ZIS, however, can deliver other agent-destined messages, SIF_Request and SIF_Response, to this agent. After it finishes processing the SIF_Event message this agent sends the "Final" SIF_Ack message to the ZIS, which will discard the blocked SIF_Event message and resume normal delivery of all messages, including SIF_Events. SMB is supported for both Push and Pull modes.

3.3.5.5.2 Requirements
3.3.5.5.3 Example

For a detailed example of SMB, see the Selective Message Blocking (SMB) Example.

3.3.6 Message Processing

To ensure interoperability, SIF defines a set of messages that are exchanged between agents and Zone Integration Servers. The SIF messages are used to perform various operations such as provision, subscription, event reporting, request and response, and ZIS administration.

3.3.6.1 Message Validation

SIF recommends that each message receiver validate any incoming message to ensure that it is a valid SIF message. A message receiver should discard any messages that do not conform to the definition of SIF_Message and return an error to the originator of the message.

This specification will evolve over time to include new messages and modifications to messages that have been defined. Each agent and ZIS should explicitly define which version(s) of the specification they support and validate each incoming message according to its version.

The SIF Association provides an XML Schema [SCHEMA] corresponding to this version of the specification for ZIS and agent implementations that choose to perform optional message validation. Implementations are free to include additional validation above and beyond the validation capabilities that XML Schema provides.

The schemas for all versions of this specification are available from the SIF Association and can be referenced by ZIS and agent implementations that choose to perform optional message validation.  This allows implementations to choose schemas based on the particular version in use by an agent or a ZIS. SIF messages MUST NOT be transmitted with hard-coded references to DTDs, schemas or other validation mechanisms. The XML "doctypedecl" (<!DOCTYPE SIF_Message… ) MUST NOT occur in SIF XML messages, nor should xsi:schemaLocation be used on SIF_Message.

The schemas for supported versions of the SIF Implementation Specification enforce ordering of elements and data typing within objects, as per the element tables given in Infrastructure and Data Model. In the event that ZIS and agent implementations choose not to perform message validation, ZIS and agent implementations must still send elements as ordered with the types specified in the element tables (i.e., well-formed AND valid XML must be sent for approved objects even if validation is known to be turned off). When XML validation is turned off, the sending of draft and locally-defined objects not included in the schemas becomes possible, and these objects may experimentally be sent as desired until they make their way into future versions of the specification and supporting schemas.

ZIS implementations are in the unique position of not only sending messages they themselves formulate; they also forward messages received from agents. When optional message validation is not being performed by a ZIS, it is possible that the ZIS may receive a well-formed but invalid XML message from a non-compliant agent. Under these circumstances, and being the routing mechanism it is, a ZIS is under no obligation to correct an invalid XML message it receives from an agent for delivery to other agents. Zone administrators can prevent invalid XML messages from being delivered if the ZIS supports message validation and they choose to turn that feature on, if configurable. Should it receive an invalid but well-formed message from an agent, a ZIS not performing message validation delivers the message like any other to destination agents.

3.3.6.2 Message Identification

Each message originating from an agent or ZIS needs to have a message identifier (SIF_MsgId) that is used to identify the message. In order to eliminate the possibility of duplicated message identifiers, and to provide a consistent way of generating these identifiers, SIF requires the use of a globally unique identifier [RFC 4122] as message identifiers.

The reason that a unique identifier is required is that many messages are handled asynchronously in SIF. This means, for example, that SIF_Responses for a given SIF_Request message may not arrive until some time in the future. When the SIF_Response arrives, it will contain the original SIF_MsgId but no other information about the original message is guaranteed to be provided. The message originator must ensure that it will be able to match up the SIF_Response with the original message based solely on the message identifier.

For further information concerning the generation of GUIDs, see [RFC 4122].

3.3.6.3 Message Security

Because of policy or legislation, providers of extremely sensitive data must never expose that data over an insecure channel. An insecure channel at delivery time is one whose levels of authentication (SIF_AuthenticationLevel) and data encryption (SIF_EncryptionLevel) fall below the values specified by the originating sender. Once the data is communicated to the ZIS, the originator of the message depends upon the ZIS to enforce the security levels requested and the ZIS must not deliver that message to recipient agents using an insecure channel. The originating agent requests the use of a secure channel at delivery time by incorporating a SIF_Security element in the header of the message. The SIF_Security element contains SIF_AuthenticationLevel and SIF_EncryptionLevel elements that define the minimum level of security a data transport channel must provide upon delivery. If a ZIS does not deliver a message due to insufficient security of the connection with a recipient agent, it is recommended that the ZIS log the inability to deliver the message due to security requirements.

The only SIF messages that currently originate with an agent and that are ultimately delivered to other agents are SIF_Request, SIF_Response and SIF_Event. An originating agent may add a SIF_Security element to all messages, but these three messages are the only ones where SIF_Security will be examined and processed by the ZIS. SIF_Security is used by an originating agent to specify the security requirements of the communication channel between the ZIS and any recipient agent at delivery time. The semantics of including the SIF_Security element on messages other than SIF_Request, SIF_Response and SIF_Event are reserved for future versions of the specification.

The specification provides several levels of authentication and encryption protection.

3.3.6.3.1 SIF_AuthenticationLevel
0
No authentication required and a valid certificate does not need to be presented.
1
A valid certificate must be presented.
2
A valid certificate from a trusted certificate authority must be presented.
3
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.

The CN field is more commonly known as the "Common Name" field. SIF_AuthenticationLevel 3 requires that the CN contents match the host where the message was originated. For instance, a CN entry could be "sifinfo.org" or perhaps "207.95.37.30". If a ZIS at SifInfo.org (IP address 207.95.37.30) contacts an agent at MyAgent.sifinfo.org, the agent's SIF HTTPS transport layer can look at the CN entry in the certificate that was presented by the ZIS and compare it to the actual IP address of the ZIS. SIF_AuthenticationLevel 3 ensures that not only a valid and trusted certificate was presented but that the agent is actually communicating to the ZIS located at the IP address referenced in the certificate.

Because security is a cornerstone of the SIF specification, it is recommended that all ZIS and Agent implementations support client authentication as well as server authentication. When client authentication is being used, the connection first authenticates the server (the party that is being contacted) and if the authentication was successful, the server will request that the client present its certificate for authentication. In this manner, both the ZIS and the agent confirm that they are communicating with the proper parties.

Since client authentication is not universally available in all SIF HTTPS implementations, client authentication is only recommended. The need for client authentication is reduced somewhat by using asynchronous message delivery (Push mode) since the ZIS and the agent are both server type applications and will authenticate each other. The need for client authentication is greater for those agents polling for messages (Pull mode) because the ZIS never has to initiate contact with the agent.

3.3.6.3.2 SIF_EncryptionLevel
0
No encryption required
1
Symmetric key length of at least 40 bits is to be used
2
Symmetric key length of at least 56 bits is to be used
3
Symmetric key length of at least 80 bits is to be used
4
Symmetric key length of at least 128 bits is to be used

If a SIF_Request, SIF_Response or SIF_Event is received by the ZIS that does not contain a SIF_Security element, the ZIS assigns the lowest level (0) to both the SIF_AuthenticationLevel and SIF_EncryptionLevel requirements for the message, unless a Zone administrator has configured higher minimum encryption and authentication levels for the Zone. This means that the ZIS may distribute this message to any agent that has registered with the ZIS subject to the access control security provisions in place for the zone.

The lack of a SIF_Security element does not mean that the message will be transported in an insecure manner. Recipient agents communicating with the ZIS over secure channels will receive the message in a secure manner, consistent with the connection. Omitting the SIF_Security element simply allows for those agents that communicate over insecure channels to receive the message, should a zone allow for insecure channels. A zone administrator can prevent messages without SIF_Security elements being communicated over insecure channels by configuring the ZIS and agents in the zone such that a minimum security level is maintained, below which communication is impossible.

For ZIS and agent implementations that support communication protocols or transport implementations where the security of a channel cannot be determined at delivery time, it is recommended that the zone administrator configure the ZIS and agents in the zone such that a minimum security level is maintained, below which insecure connections cannot be established.

3.3.6.3.3 Notes on SIF_AuthenticationLevel

If authentication based on certificates is being used, care needs to be given to determine if Level 2 (anonymous certificates) will provide the necessary level of protection. With Level 2 authentication, it is possible to use a web browser to make secure connections to the ZIS using the certificates that are built into the browser. This level of authentication is what is used by almost all Internet transactions (stock trading, shopping, financial, etc.). Level 2 does expose the user to a risk of a "man-in-the-middle" attack that can't occur using Level 3 authentication.

Level 3 mandates that a certificate issued by a trusted authority, (i.e. school district), be installed in the web browser before the browser will be able to connect to the ZIS. This may place unnecessary burdens on the client especially if it is likely that authorized users may wish to connect to the ZIS using a variety of browsers.

3.3.6.3.4 Notes on SIF_EncryptionLevel

Weaknesses in a cipher algorithm aside, the major governing factor as to the strength of data encryption is the length of the cipher key. Thus a 128-bit implementation typically provides stronger encryption than an 80-bit implementation. Please note that support of some SIF encryption levels may be subject to export control, limiting distribution of all levels in all countries [EXPORT].

There are also two main types of cipher algorithms. The first is called a symmetric cipher, which uses the same key to encrypt and decrypt the data. The second type is called public-key cipher, which depends upon using a private key of the sender along with the public key of the receiver. Because of the nature of public-key ciphers, a larger number of bits must be used to achieve a comparable level of encryption strength.

The SIF_EncryptionLevel bit sizes are based on symmetric ciphers. A table that lists the equivalent key length for a public-key cipher is listed below.

Symmetric Key LengthPublic Key LengthStrength
40 bits256 bitsVery weak, not recommended except for very minimal protection (i.e. prevents casual snooping but can be broken in minutes by knowledgeable attackers).
64 bits512 bitsWeak. The current U.S. "standard" has been bumped up to 64 bits from 56 bits but the key length is still weak for sensitive data.
80 bits768 bitsModerate
128 bits2048 bitsStrong, recommended for Internet
Table 3.3.6.3.4-1: Key Lengths

For more information regarding this topic, please refer to Chapter 7 of [Schneier].

3.3.6.4 Message Robustness

It is important for SIF to guarantee message delivery no matter what happens during delivery of a message, including an unexpected network breakdown or system crash. This requires that each agent and ZIS save each message in permanent storage. At delivery time it is also possible, however, for a ZIS to be prohibited from delivering a message due to security requirements requested by originating agents for individual messages. If this occurs, it is recommended that ZIS implementations discard the affected message so that delivery of other messages may proceed. If the ZIS does discard the message, the ZIS MUST report a SIF_LogEntry event with the appropriate error category and code, containing a copy of the SIF_Header from the original message. In addition, it is recommended that the ZIS log the delivery failure to its own log.

When a message is delivered under normal circumstances by a ZIS, an agent will return an "Immediate" SIF_Ack or a SIF_Ack with any applicable error condition, signaling the ZIS that it may delete the message from permanent storage. In the case of events, agents may also return an "Intermediate" SIF_Ack to invoke Selective Message Blocking (SMB). In that case, the ZIS will not delete the current SIF_Event from permanent storage until the agent sends a "Final" SIF_Ack to the ZIS.

When a message is sent to the ZIS under normal circumstances by an agent, the ZIS returns a successful SIF_Ack or a SIF_Ack with any applicable error condition to indicate to the agent that it has in fact received the message and that the agent may delete the message from any permanent storage.

If a ZIS or agent encounters a transport error in sending a message, it is recommended that the sender retry sending the message. Transport errors where retrying the message is warranted include, but are not limited to, a connection close without a SIF_Ack returned, a transport error or a SIF_Ack with an error category of 10 indicating a connection cannot currently be established, etc. A ZIS in particular must retry delivery of messages from the agent queue until a SIF_Ack that removes the message from the agent's queue is received, subject to certain undeliverable error conditions (e.g. security requirements cannot be negotiated, maximum buffer size too small, etc.). Facing such error conditions, other potentially unresolvable transport errors, or if a SIF_Ack is returned with any other type of error category, the sender may decide not to retry or—when queued, to delete—a message to avoid a potential deadlock condition. Agents returning SIF_Ack messages with error conditions should be aware that such acknowledgements will remove the currently pending message from their delivery queue.

3.3.6.5 Message Cycle

All SIF messages follow the same model. The sender posts a message and receives a SIF_Ack back as a response. The posting of the message by the sender and the receipt of the SIF_Ack from the receiver constitutes one complete cycle. Agents and ZISes can function as senders or receivers, depending on the type of message. The message process is identical, regardless of the type of message being sent.

If for any reason a sender inadvertently resends a message with a given SIF_MsgId and the receiver detects this, the receiver may return a SIF_Status code indicating that it already has the message. This SIF_Status code is considered a success; the receiver simply discards the duplicate message and continues handling of the original message.

3.3.6.6 Message Delivery

There are two models for delivering messages to an agent, "Push" and "Pull." An agent specifies which mode it wants to use when it registers with the ZIS.

"Push" refers to the action by a ZIS to actively deliver messages to an agent without the agent having to initiate contact with the ZIS. When the ZIS receives a message for an agent and the agent is not in "Sleep" mode; the ZIS will initiate contact with the agent and send the message to the agent.

"Pull" refers to the action by an agent to explicitly request a single message from the ZIS. When an agent is ready to receive a message, it sends a "Pull" request to the ZIS, to obtain a message that the ZIS has saved in the queue for the agent. After receiving the pull request, the ZIS will examine the agent's queue and either returns a message or a status code indicating that no messages are available for the agent.

Both modes serve useful purposes. The key requirement is that both an agent and its ZIS must communicate using the SAME mode to avoid potential conflicts.

At delivery time, be it in push or pull mode, a ZIS may encounter messages that it is prohibited from delivering, e.g. due to security requirements requested by originating agents for individual messages, etc. If this occurs, it is recommended that ZIS implementations discard the affected message(s) so that delivery of other messages may proceed. If the ZIS does discard a message, the ZIS MUST report a SIF_LogEntry event with the appropriate error category and code, containing a copy of the SIF_Header from the original message. SIF_LogEntry/SIF_Desc must contain the SourceId of the agent that has failed to receive the message. In addition, it is recommended that the ZIS log the delivery failure to its own log.

3.3.6.6.1 The "Push" Model

When an agent has registered using the "Push" mode, the agent assumes that the ZIS will open a transport connection and send the next available message to the agent. An agent can reply to the sent message with an "Immediate" or optionally—in the case of SIF_Events—an "Intermediate" SIF_Ack, invoking Selective Message Blocking (SMB); it can also reply using a SIF_Ack with any applicable error condition. "Immediate" or error SIF_Acks remove the current message from the agent's queue, freeing any remaining or future messages to be delivered to the agent. A "Final" SIF_Ack sent to the ZIS will terminate SMB, removing the frozen event from the agent's queue, freeing any remaining or future messages to be delivered to the agent.

3.3.6.6.2 The "Pull" Model

When an agent has registered using the "Pull" mode, the agent requests a message from the ZIS by sending a SIF_GetMessage message to the ZIS.

An agent can only issue a SIF_GetMessage to request a message if the agent has previously sent a successful SIF_Register message specifying Pull mode. If the ZIS receives a SIF_GetMessage request and the agent hasn't registered using the Pull mode, the ZIS must return a SIF_Ack containing an error category of Registration and an error code indicating that the agent has registered using Push mode.

After receiving a SIF_GetMessage request from an agent, the ZIS will return the next message available for delivery to the agent, subject to Selective Message Blocking. The criteria used to select the message are identical to that used if the ZIS were to Push a message to an agent.

If a message is available for the agent, the ZIS will return a SIF_Ack message with a SIF_Status/SIF_Code of 0 and SIF_Status/SIF_Data containing the message from the queue:

<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>ABCD1058E028D076F083738296372D4E</SIF_MsgId> <SIF_Timestamp>2006-02-18T08:39:40-08:00</SIF_Timestamp> <SIF_SourceId>SifInfo_TestZIS</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseySIS</SIF_OriginalSourceId> <SIF_OriginalMsgId>1058ABCDE028D076F083283BC63E6276</SIF_OriginalMsgId> <SIF_Status> <SIF_Code>0</SIF_Code> <SIF_Data> <SIF_Message Version="2.3"> <SIF_Event> <SIF_Header> <SIF_MsgId>AB34DC093261545A31905937B265CE01</SIF_MsgId> <SIF_Timestamp>2006-02-18T08:39:12-08:00</SIF_Timestamp> <SIF_SourceId>RamseyLib</SIF_SourceId> </SIF_Header> <SIF_ObjectData> <SIF_EventObject ObjectName="StudentPersonal" Action="Change"> <StudentPersonal RefId="D3E34B359D75101A8C3D00AA001A1652"> <PersonInfo> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Fred</GivenName> <FullName>Fred Smith</FullName> </Name> </PersonInfo> </StudentPersonal> </SIF_EventObject> </SIF_ObjectData> </SIF_Event> </SIF_Message> </SIF_Data> </SIF_Status> </SIF_Ack> </SIF_Message>
Example 3.3.6.6.2-1: The "Pull" Model - SIF_Status/SIF_Code of 0

When a pull-mode agent supports multiple SIF specification versions, the version of the SIF_Ack message returned by the ZIS must match the version of any SIF_Message contained in SIF_Status/SIF_Data. For example, if an agent supports versions 1.1 and 1.5 (or 1.*) and the next message in the agent's queue has a SIF_Message/@Version value of 1.5, the Version attribute of the SIF_Ack message returned by the ZIS must be 1.5, even if the pull-mode agent sent its SIF_GetMessage in a 1.1 SIF_Message. For an agent that supports both 1.1 or later versions and pre-1.1 version(s) (e.g. 1.0r2), when the next message in the agent's queue is from a pre-1.1 agent, the ZIS must return the message in a SIF_Ack message as defined by the pre-1.1 specification.

A pull-mode agent removes the returned message from its queue in one of three ways. In each case the value for the SIF_OriginalMsgId element in any SIF_Ack(s) created by the agent originates from the SIF_MsgId of the SIF_Message returned as SIF_Data by the ZIS. Typically a pull-mode agent removes the message from its queue by sending an "Immediate" SIF_Ack to the ZIS; an agent may also send a SIF_Ack with any applicable error condition to the ZIS. The ZIS then removes the message from the agent's queue and returns a successful SIF_Ack. If the message is a SIF_Event and the agent wishes to invoke SMB, it can instead notify the ZIS that it is processing the event by sending an "Intermediate" SIF_Ack (which the ZIS acknowledges with a successful SIF_Ack) and later sending a "Final" SIF_Ack when the SIF_Event processing is complete. When the ZIS receives the "Final" SIF_Ack, it removes the SIF_Event from the agent's queue and returns a successful SIF_Ack.

If there are no messages in the agent's queue that can be delivered, the ZIS will return a SIF_Ack message with a SIF_Status/SIF_Code of 9 to indicate that there are no messages available for the agent:

<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>ABCD1058E028D076F0835E32AC89E048</SIF_MsgId> <SIF_Timestamp>2006-02-18T08:39:40-08:00</SIF_Timestamp> <SIF_SourceId>SifInfo_TestZIS</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseySIS</SIF_OriginalSourceId> <SIF_OriginalMsgId>1058ABCDE028D076F08365109BE7C892</SIF_OriginalMsgId> <SIF_Status> <SIF_Code>9</SIF_Code> </SIF_Status> </SIF_Ack> </SIF_Message>
Example 3.3.6.6.2-2: The "Pull" Model - SIF_Status/SIF_Code of 9
3.3.6.6.3 "Multiple Version" Zones

It is possible for a zone to contain agents written to different versions of the SIF Implementation Specification if a ZIS supports multiple versions in a zone and has at least one version in common with all registered agents. It is possible that two agents in the same zone—both successfully registered—have no version in common, and this affects message delivery by the ZIS in the following manner.

When the next message to be delivered to a given agent has a SIF_Message/@Version attribute that the agent is known not to support, the ZIS cannot successfully deliver that message to the agent without conversion. Should a ZIS implementation choose to convert messages on the fly as a "value-add" feature, it is free to do so; this specification does not prescribe how to convert messages, and support for such conversion is implementation-dependent. However, if the ZIS does not or cannot convert the message such that it can be delivered, it should discard the pending message so that delivery of other messages may proceed. If the ZIS does discard the message, the ZIS MUST report a SIF_LogEntry event with the appropriate error category and code, containing a copy of the SIF_Header from the original message. SIF_LogEntry/SIF_Desc must contain the SourceId of the agent that has failed to receive the message. In addition, it is recommended that the ZIS log the delivery failure to its own log.

3.3.7 Infrastructure Transport Layer

The Infrastructure messages are used by SIF to encapsulate and transfer the data objects. They form a messaging application program interface (API) which is expressed in XML.

It is a design objective to express the entire Infrastructure API in XML and not to have dependencies upon any underlying transport layer to provide functionality other than the transportation of the XML from client to server and back. This ensures that the Infrastructure messages can be carried over a variety of communication transports.

The infrastructure depends upon the transport layer to provide a reliable connection to move messages back and forth from client and server. The transport layer is also responsible for providing data security by means of data encryption and authentication of the client and server. Some transport layers even provide data compression, which is an important factor when processing a large volume of XML messages.

By delegating the authentication, compression, and encryption to the transport layer, it makes the user interface to the transport simpler. A client that wishes to send an infrastructure message assembles the message in XML and then hands it off to the transport layer for delivery. The transport layer takes the XML message and transfers it to the server where it is taken from the transport layer and processed.

In moving from the client to the server, the transport may have compressed, encrypted, and authenticated the connections but all of this is transparent to the users of the Infrastructure API. To the user, it is XML in and XML out.

Different types of transports are or will become available providing various features and benefits. An Agent or ZIS MAY employ multiple transport protocols but they MUST support SIF HTTPS.

Please note that throughout this specification transport layer errors are sometimes illustrated as SIF_Ack messages with SIF_Error/SIF_Category of Transport and applicable error codes. Under many transport error conditions, these SIF_Ack messages could not be returned or sent by the remote host. Depending on the SIF infrastructure transport layer implementation these messages may be generated by the implementation (e.g. when a connection to a server cannot be established), or may occur as transport layer errors or exceptions in the underlying network operating system or transport protocol. Both should be treated equivalently.

3.3.7.1 SIF HTTPS Transport

In order to ensure that Agents and Zone Integration Servers can communicate with each other regardless of vendor or platform, all Agent and ZIS implementations MUST support the SIF HTTPS transport layer protocol.

SIF HTTPS is a combination of the HTTP 1.1 protocol [RFC 2616] with secure socket layer (SSL) protocols, resulting in an easy-to-use and secure transport protocol. The RECOMMENDED SSL implementation is TLS 1.0 [RFC 2246]; however, SSL 3.0 [SSL3] is also supported and SSL 2.0 client hellos [SSL2] used to negotiate TLS 1.0 or SSL 3.0 connections are also permitted. Support for the SSL 2.0 protocol itself—aside from its client hello message—is not provided in SIF. Due to the age of the SSL 3.0 and SSL 2.0 protocols and the increasing prevalence of TLS 1.0, The SIF Association expects to deprecate support for the SSL 3.0 protocol and SSL 2.0 client hellos in future major releases of this specification.

Being based upon HTTP 1.1, the SIF HTTPS and SIF HTTP protocols support persistent or keep-alive connections that greatly increase the message throughput between sender and receiver. This is an especially important factor when using HTTP in conjunction with secure socket layers, where there is a significant amount of overhead when initially opening a connection.

When using HTTP 1.1 with SIF, [RFC 2616] can be used as a reference, however SIF uses a subset of the HTTP 1.1 protocol. For example, only the POST method and the 200-OK response notice are used by the SIF HTTPS protocol.

Support of Transfer Encoding and data chunking ([RFC 2616], Section 3.6) is not required for SIF HTTPS. An implementation of the protocol may support Transfer Encoding and data chunking but it must be able to communicate successfully with a client or server that does not support this feature.

Because protocol changes are handled at the Infrastructure XML API level, a client or server must not use the Connection: Upgrade or Upgrade: xxx headers to invoke a request for a protocol change. If a client or server receives an upgrade header, it must ignore that header and not change communication protocols.

3.3.7.1.1 HTTPS Request/Response Model

A client is the party (Agent or ZIS) who initiates a connection to a remote machine. The remote end (ZIS or Push-Mode Agent) is known as the server.

A client using the SIF HTTPS protocol opens a connection to the server and sends a HTTP 1.1 POST request with the SIF Infrastructure XML message as the POST payload. The server responds with an HTTP response with the Infrastructure XML acknowledgement message as the response payload. Clients MUST encode the XML message using UTF-8; servers MUST be able to process UTF-8-encoded XML and SHOULD expect all incoming SIF XML messages to be encoded using UTF-8.

The default behavior for HTTP 1.1 is to use persistent or "keep-alive" connections. When operating in this mode, the client may send additional POST requests and receive the HTTP responses using the same connection. Clients SHOULD use persistent connections for performance reasons but MUST be able to use non-persistent connections if the server does not wish to use persistent connections.

3.3.7.1.2 HTTP Request Headers

The following HTTP request and common headers defined in [RFC 2616]MUST be present in all SIF HTTPS messages sent by a client:

HeaderDescriptionRequired Contents
Content-LengthThe exact size of the attached payload (XML message)
Content-TypeDescribes the contents of the request. Firewall and web server programs can filter messages going through a network by examining this header.application/xml;charset="utf-8"
HostSpecifies the Internet host and port number of the destination server
Table 3.3.7.1.2-1: HTTP Request Headers

Note that all header values MUST conform to the requirements of [RFC 2616] and MAY take equivalent forms subject to those requirements (e.g. application/xml;charset=utf-8 (no quotes),  application/xml; charset=utf-8 (optional spacing), etc.).

In addition to the headers above, a client may include a Connection: close header in the HTTP request if it wishes to close the current connection after receiving the response. If this header is included, the client MUST NOT send additional requests on this connection. The client MUST close the connection after receiving the response.

Clients may also include an "Expect: 100-continue" header (see below).

Additional headers beyond the required and optional headers listed here MAY be included by a client; however, the server MUST be able to successfully process POST requests that only contain the required headers.

POST /MyPath HTTP/1.1 Content-Length: 420 Content-Type: application/xml;charset="utf-8" Host: sifinfo.org:8000 <SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_SystemControl> <SIF_Header> <SIF_MsgId>56409F0C01FBD1C44300B4518E100765</SIF_MsgId> <SIF_Timestamp>2006-04-11T18:18:13-05:00</SIF_Timestamp> <SIF_SourceId>SifInfo_TestAgent</SIF_SourceId> </SIF_Header> <SIF_SystemControlData> <SIF_Ping /> </SIF_SystemControlData> </SIF_SystemControl> </SIF_Message>
Example 3.3.7.1.2-1: SIF HTTPS Request

Implementations of SIF HTTPS MUST be able to specify the value for the path (/MyPath in the example) as the Agent or ZIS may require a specific value for routing purposes.

3.3.7.1.3 HTTP Response Headers

The following HTTP response and common headers defined in [RFC 2616] must be present in all SIF HTTPS responses messages sent by a server:

HeaderDescriptionRequired Contents
Content-LengthThe exact size of the attached payload (XML message)
Content-TypeDescribes the contents of the request. Firewall and web server programs can filter messages going through a network by examining this header.application/xml;charset="utf-8"
DateThe current date and time in the format described in RFC 2616 Section 3.3. Note that the date is UTC based and NOT local time.
ServerIdentifies the server sending the response. Clients may use this information to infer information about the server being contacted (vendor, model, version, capabilities, etc.)
Table 3.3.7.1.3-1: HTTP Response Headers

Note that all header values MUST conform to the requirements of [RFC 2616] and MAY take equivalent forms subject to those requirements (e.g. application/xml;charset=utf-8application/xml; charset=utf-8, etc.).

In addition to the headers above, a server MAY include a Connection: close header in the HTTP response if it wishes to close the current connection after sending the response. The server MUST close the connection after sending the response.

The server MAY include additional headers; however, the client MUST be able to successfully process response notices that only contain the required headers and optional header listed here.

HTTP/1.1 200 OK Content-Length: 529 Content-Type: application/xml;charset="utf-8" Date: Mon, 02 Apr 2001 23:32:00 GMT Server: SIFZIS;V1.1 <SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>4A900E10F4E675CF4A01B4518E100765</SIF_MsgId> <SIF_Timestamp>2006-04-11T18:18:13-05:00</SIF_Timestamp> <SIF_SourceId>SifInfo_TestZIS</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>SifInfo_TestAgent</SIF_OriginalSourceId> <SIF_OriginalMsgId>56409F0C01FBD1C44300B4518E100765</SIF_OriginalMsgId> <SIF_Status> <SIF_Code>0</SIF_Code> </SIF_Status> </SIF_Ack> </SIF_Message>
Example 3.3.7.1.3-1: SIF HTTPS Response

Although the SIF HTTPS protocol uses the 200-OK response notice to communicate all responses, Agent or ZIS implementations could be built using existing web server infrastructures. As such, SIF HTTPS implementations should expect the possible receipt of other HTTP 1.1 response notices.

3.3.7.1.4 100 (Continue)

This response message status is generally returned if the client has included an Expect: 100-continue header in its request. Certain web server implementations return a 100 (Continue) status response even though the original request did not contain an Expect: 100-continue header. When a client receives an unexpected response with a 100 (Continue) status, it must discard that response and wait for a subsequent final (e.g. 200-OK) response. Clients explicitly requesting a 100 (Continue) status response by including an Expect: 100-continue header in a request should proceed with the request body according to section 8.2.3 of the HTTP 1.1 [RFC 2616] specification upon receipt of the 100 (Continue) status response.

A SIF HTTPS client may include an Expect: 100-continue header but generally does not. If it does, however, servers (ZIS and push-mode agent implementations) must handle the header according to section 8.2.3 of the HTTP 1.1 [RFC 2616] specification, possibly returning an intermediate response with 100 (Continue) status, for communication to proceed correctly.

3.3.7.1.5 3XX, 4XX, 5XX Notices

A server should only return 200-OK response notices but may return other notices. Servers built using existing web server technology are more likely to return other types of response notices. If a client receives any 3xx, 4xx, or 5xx response notices, it must treat these responses as if a transport error has occurred.

3.3.7.2 SIF HTTP Transport

The SIF HTTP protocol is identical to the SIF HTTPS transport without a secure socket layer to provide data encryption and authentication.

An Agent or ZIS MAY implement the SIF HTTP transport but MUST implement the SIF HTTPS protocol.

Because of the sensitive data being exchanged in SIF, it is RECOMMENDED that only SIF HTTPS be used.

3.3.7.3 SIF HTTP(S) Transport Compression

It is possible that compression can improve network throughput in SIF implementations where large amounts of data are transferred over SIF HTTP(S), either horizontally or vertically. The HTTP 1.1 specification [RFC 2616] allows for negotiating the content encoding (and compression) of server responses using the Accept-Encoding request header and the Content-Encoding response header. Registered content encodings include in addition to the default uncompressed identity encoding a number of compressed encodings: gzip, compress and deflate. A client can specify one or more encodings to use in a response along with its preference for each using Accept-Encoding, and the server responds accordingly, per the HTTP specification. If the server does not support a requested encoding, it is recommended the server return a 406 (Not Acceptable) status code.

POST /MyPath HTTP/1.1 Content-Length: 420 Content-Type: application/xml;charset="utf-8" Accept-Encoding: gzip Host: sifinfo.org:8000 <SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> ... </SIF_Message>
Example 3.3.7.3-1: SIF client requesting compression of response
HTTP/1.1 200 OK Content-Length: 24 Content-Type: application/xml;charset="utf-8" Content-Encoding: gzip Date: Wed, 25 Apr 2007 23:32:00 GMT Server: SIFZIS ...compressed SIF_Ack...
Example 3.3.7.3-2: SIF server returning compressed SIF_Ack

The content encoding of any HTTP entity body, either in a request or a response, is indicated using the Content-Encoding header, which is considered a modifier to the Content-Type header. A client may compress or apply an encoding to the body of an HTTP request and indicate it has done so with an appropriate Content-Encoding value. It is recommended that a server that cannot or will not accept a particular encoding return a 415 (Unsupported Media Type) status code.

POST /MyPath HTTP/1.1 Content-Length: 149 Content-Type: application/xml;charset="utf-8" Content-Encoding: gzip Host: sifinfo.org:8000 ...compressed SIF_Message...
Example 3.3.7.3-3: SIF client sending compressed SIF_Message
POST /MyPath HTTP/1.1 Content-Length: 149 Content-Type: application/xml;charset="utf-8" Content-Encoding: gzip Accept-Encoding: gzip Host: sifinfo.org:8000 ...compressed SIF_Message...
Example 3.3.7.3-4: SIF client sending compressed SIF_Message and requesting compression of response

With these HTTP-defined headers, SIF Agents and Zone Integration Servers have the ability to compress or negotiate compression of SIF HTTP(S) request and response entity bodies using any version of SIF where the transport protocol is SIF HTTPS or SIF HTTP. However, to increase interoperability of Agents and Zone Integration Servers that wish to compress requests or receive compressed responses beyond the level of trial and error in an environment where server status codes are not guaranteed, the following mechanisms were developed in SIF Implementation Specification Version 2.1.

3.3.7.4 SIF_Protocol/SIF_Property Accept-Encoding

In both SIF_Register and SIF_ZoneStatus the following SIF_Property is defined when used in conjunction with a SIF_Protocol/@Type value of HTTPS or HTTP:

SIF_NameSIF_Value
Accept-EncodingAn Accept-Encoding header value as per HTTP 1.1 [RFC 2616].

This property indicates that an HTTP(S) server can accept corresponding content encodings with an appropriate Content-Encoding header value.

<SIF_Protocol Type="HTTPS" Secure="Yes"> <SIF_URL>https://www.sifinfo.org/sifagent/MyAgent/</SIF_URL> <SIF_Property> <SIF_Name>Accept-Encoding</SIF_Name> <SIF_Value>gzip</SIF_Value> </SIF_Property> </SIF_Protocol>
Example 3.3.7.4-1: SIF_Protocol with Accept-Encoding indicating acceptance of gzip (and identity)
<SIF_Protocol Type="HTTPS" Secure="Yes"> <SIF_URL>https://www.sifinfo.org/sifagent/MyAgent/</SIF_URL> <SIF_Property> <SIF_Name>Accept-Encoding</SIF_Name> <SIF_Value>gzip;q=1.0, identity;q=0.5, *;q=0</SIF_Value> </SIF_Property> </SIF_Protocol>
Example 3.3.7.4-2: SIF_Protocol with Accept-Encoding indicating no acceptance of encodings other than gzip or identity, gzip preferred over identity

The recommended compression algorithm for use in SIF is gzip. It is NOT RECOMMENDED that the identity (uncompressed) encoding ever be explicitly excluded in the Accept-Encoding SIF_Property.

3.3.7.5 HTTP Client Requirements

A client (ZIS, Push- or Pull-Mode Agent) that wishes to receive a compressed response MUST include an Accept-Encoding header, per HTTP 1.1, and MUST be prepared to handle a 406 (Not Acceptable) or other HTTP error, in which case the client SHOULD assume compression using the specified algorithm(s) is not supported and retry communication as per SIF HTTPS Transport or SIF HTTP Transport above. Clients MUST be prepared to receive identity-encoded (unencoded) responses unless the client explicitly excludes identity in its Accept-Encoding header, which is NOT RECOMMENDED.

Zone Integration Servers MAY consult a Push-Mode Agent's registered SIF_Protocol/SIF_Property value where SIF_Name is Accept-Encoding before contacting the Agent and SHOULD assume that posting a corresponding encoded entity body accompanied by the applicable Content-Encoding header value will be processed without content encoding support errors by the Agent.

Push- and Pull-Mode Agents MAY consult a Zone's supported compression algorithms in the SIF_ZoneStatus/SIF_SupportedProtocols/SIF_Protocol/SIF_Property entitled Accept-Encoding in SIF_Name before contacting the Zone Integration Server and SHOULD assume that posting a corresponding encoded entity body accompanied by the applicable Content-Encoding header value will be processed without content encoding support errors by the ZIS.

3.3.7.6 HTTP Server Requirements

A server (ZIS or Push-Mode Agent) that receives an HTTP request with an Accept-Encoding header MUST process the request per HTTP 1.1's Accept-Encoding specification. It is RECOMMENDED that servers return a 406 (Not Acceptable) status when a requested encoding cannot be negotiated.

A server that receives an HTTP request with a Content-Encoding header specified MUST process the request per HTTP 1.1's Content-Encoding specification. It is RECOMMENDED that servers unable to process a particular content encoding return a 415 (Unsupported Media Type) status code.

3.3.7.7 Push-Mode Agent Requirements

A Push-Mode Agent that wishes to receive compressed/encoded requests from the ZIS MUST register its preference with the ZIS in the SIF_Register/SIF_Protocol property entitled Accept-Encoding in SIF_Name, providing an Accept-Encoding value in SIF_Value per HTTP 1.1 (the recommended compression algorithm for SIF is gzip). The Agent MUST be prepared to handle an error SIF_Ack from the ZIS when registering Accept-Encoding (SIF_Error/SIF_Category of 5 [Registration], SIF_Error/SIF_Code value of 10) if the ZIS cannot support at least one specified encoding and SHOULD re-attempt registration without Accept-Encoding.

Upon successful registration of an Accept-Encoding value, the Agent SHOULD expect to receive requests from the ZIS encoded accordingly, but it MAY received identity-encoded (unencoded) requests unless identity was explicitly excluded in the registered Accept-Encoding value.

3.3.7.8 Zone Integration Server Requirements

A Zone Integration Server that receives a SIF_Register/SIF_Protocol/SIF_Property named Accept-Encoding in SIF_Name must fail the attempt to register if the ZIS does not support at least one of the specified encodings (SIF_Error/SIF_Category of 5 [Registration], SIF_Error/SIF_Code value of 10). While this property is typically registered by Push-Mode Agents, Pull-Mode Agents may also specify this property when registering. A ZIS SHOULD compress requests when contacting a Push-Mode Agent if the Agent has previously registered that preference, but it MAY send uncompressed requests if the Push-Mode Agent did not explicitly exclude the identity encoding in its registered Accept-Encoding value.

Zone Integration Servers that support handling of compressed/encoded requests SHOULD return an Accept-Encoding header SIF_Value in the SIF_ZoneStatus/SIF_SupportedProtocols/SIF_Protocol/SIF_Property named Accept-Encoding in SIF_Name.

4 Messaging

This section documents the messaging and message handling protocols defined in SIF. A messaging protocol consists of sending a SIF_Message to initiate an operation, receiving back a SIF_Ack; a message handling protocol consists of processing an incoming SIF_Message and responding with a SIF_Ack and possibly sending follow-up SIF_Messages. This section is independent of transport layer details, aside from encryption and authentication level impacts associated with individual messages. Unless otherwise noted, all protocols assume successful communication over the appropriate transport layer; agent and ZIS implementations should also be prepared to handle transport layer errors and exceptions, directly or wrapped in a SIF_Ack/SIF_Error by underlying code.

4.1 Agent Protocols

4.1.1 Agent Messaging Protocols

This section documents how Agents should send individual messages, and the resulting post-conditions upon success or failure, along with any necessary steps to take. These correspond to each of the operations an Agent can initiate.

4.1.1.1 SIF_Register

An Agent must register with the ZIS to participate in a Zone. To do so, it sends a SIF_Register message. An Agent may at any time re-register by sending another SIF_Register message. The ZIS updates the Agent's registered settings accordingly.

StepProcessFlow Control
1Prepare a SIF_Message/SIF_Register message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place your Agent's name, supported versions and maximum buffer size for receiving messages into SIF_Name, SIF_Version and SIF_MaxBufferSize, respectively. Specify whether your Agent is Push- or Pull-mode in SIF_Mode. If SIF_Mode is Push, specify the protocol information for the ZIS to use when delivering messages to your agent in SIF_Protocol; optional compression settings may be included in the Accept-Encoding SIF_Protocol/SIF_Property. If desired, supply optional information regarding your Agent and/or application in SIF_NodeVendor, SIF_NodeVersion, SIF_Application and SIF_Icon. Send SIF_Message to ZIS over appropriate transport.
2Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 6.
3Is SIF_Status/SIF_Code 0?If no, go to Step 5.
4Your Agent is now registered in the Zone. The Access Control settings for your agent (SIF_AgentACL are in SIF_Status/SIF_Data).Messaging protocol complete (success).
5Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
6Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included. Note particularly category 5. If an Accept-Encoding  SIF_Protocol/SIF_Property was specified, the ZIS may return error code 10 (ZIS does not support the requested Accept-Encoding value). Your agent SHOULD re-attempt registration without, or with another, Accept-Encoding value.Messaging protocol complete (failure).
Table 4.1.1.1-1: SIF_Register Protocol

4.1.1.2 SIF_Unregister

An Agent removes itself from a Zone by sending a SIF_Unregister message to the ZIS. Successful completion of this operation removes all settings associated with the Agent, including the objects it is currently providing and subscribed to in the zone; the Agent's message queue is also deleted. Note that a successful SIF_Unregister message may, depending on the ZIS implementation, remove access control settings that have been manually configured by a Zone administrator and that may need to be re-configured for a subsequent successful SIF_Register.

StepProcessFlow Control
1Prepare a SIF_Message/SIF_Unregister message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply.Send SIF_Message to ZIS over appropriate transport.
2Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 6.
3Is SIF_Status/SIF_Code 0?If no, go to Step 5.
4Your Agent is now removed from the Zone.Messaging protocol complete (success).
5Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
6Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included.Messaging protocol complete (failure).
Table 4.1.1.2-1: SIF_Unregister Protocol

4.1.1.3 SIF_Provide

An Agent registers with the ZIS to be the default Responder, or Provider, for one or more SIF objects in one or more contexts by sending a SIF_Provide message to the ZIS. The Agent must have access control rights at the ZIS to successfully register as a Provider for an object.

Note that upon successful completion of SIF_Provide that your Agent is still the Provider of any objects for which it was previously registered as the Provider. To unregister as the Provider of given objects, use SIF_Unprovide. To replace all objects your Agent provides in one operation, use SIF_Provision.

As of version 2.0 of this specification, SIF_Provision is the preferred method for registering an Agent as a Provider, and provisioning an Agent in general. Support for SIF_Provide may be removed in a future major release of this specification.

StepProcessFlow Control
1Prepare a SIF_Message/SIF_Provide message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. For each object your Agent would like to provide, place a SIF_Object element with an ObjectName and optionally one or more SIF_Context names (which default to SIF_Default if omitted). Your Agent's support for SIF_ExtendedQuery can be specified in SIF_ExtendedQuerySupport for each object. Send SIF_Message to ZIS over appropriate transport.
2Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 6.
3Is SIF_Status/SIF_Code 0?If no, go to Step 5.
4Your Agent is now the Provider of each of the objects specified in the SIF_Provide message, in the applicable context(s). Any request sent by an Agent for one of these objects without explicitly specifying a particular Responder in SIF_Header/SIF_DestinationId will be placed in your Agent's message queue.Messaging protocol complete (success).
5Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
6Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included. Note particularly category 4, code 3 (no permission to provide) and category 6, code 4 (object already has a Provider).Messaging protocol complete (failure).
Table 4.1.1.3-1: SIF_Provide Protocol

4.1.1.4 SIF_Unprovide

Your Agent unregisters with the ZIS as the default Responder, or Provider, for one or more SIF objects in one or more contexts by sending a SIF_Unprovide message to the ZIS. Note that any SIF_Requests for these objects already pending in your Agent's queue will still be delivered.

As of version 2.0 of this specification, SIF_Provision is the preferred method for unregistering an Agent as a Provider, and provisioning an Agent in general. Support for SIF_Unprovide may be removed in a future major release of this specification.

StepProcessFlow Control
1Prepare a SIF_Message/SIF_Unprovide message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. For each object your Agent would like to provide, include a SIF_Object element with an ObjectName and optionally one or more SIF_Context names (which default to SIF_Default if omitted).Send SIF_Message to ZIS over appropriate transport.
2Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 6.
3Is SIF_Status/SIF_Code 0?If no, go to Step 5.
4Your Agent is no longer the Provider of each of the objects specified in the SIF_Unprovide message, in the applicable context(s). SIF_Requests will no longer be routed to your Agent by default, but this does not prevent other Agents from sending requests directly to your Agent (if permitted by access control rights).Messaging protocol complete (success).
5Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
6Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included.Messaging protocol complete (failure).
Table 4.1.1.4-1: SIF_Unprovide Protocol

4.1.1.5 SIF_Subscribe

An Agent registers with the ZIS to receive SIF_Events for one or more SIF objects in one or more contexts by sending a SIF_Subscribe message to the ZIS. The Agent must have access control rights at the ZIS to successfully subscribe to events for an object.

Note that upon successful completion of SIF_Subscribe that your Agent is still subscribed to objects to which it had previously subscribed. To unregister as a Subscriber of given objects, use SIF_Unsubscribe. To replace all objects to which your Agent subscribes in one operation, use SIF_Provision.

As of version 2.0 of this specification, SIF_Provision is the preferred method for registering an Agent as a Subscriber, and provisioning an Agent in general. Support for SIF_Subscribe may be removed in a future major release of this specification.

StepProcessFlow Control
1Prepare a SIF_Message/SIF_Subscribe message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. For each object your Agent would like to subscribe to, place a SIF_Object element with an ObjectName and optionally one or more SIF_Context names (which default to SIF_Default if omitted).Send SIF_Message to ZIS over appropriate transport.
2Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 6.
3Is SIF_Status/SIF_Code 0?If no, go to Step 5.
4Your Agent is now subscribed to each of the objects specified in the SIF_Subscribe message, in the specified context(s) if included. Any SIF_Events for these objects will be placed in your Agent's queue.Messaging protocol complete (success).
5Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
6Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included. Note particularly category 4, code 4 (no permission to subscribe).Messaging protocol complete (failure).
Table 4.1.1.5-1: SIF_Subscribe Protocol

4.1.1.6 SIF_Unsubscribe

To stop receiving SIF_Events for one or more objects in one or more contexts, an Agent sends a SIF_Unsubscribe message to the ZIS. Note that if there are events already pending in your Agent's queue for these objects, they will still be delivered after a successful SIF_Unsubscribe.

As of version 2.0 of this specification, SIF_Provision is the preferred method for unregistering an Agent as a Subscriber, and provisioning an Agent in general. Support for SIF_Unsubscribe may be removed in a future major release of this specification.

StepProcessFlow Control
1Prepare a SIF_Message/SIF_Unsubscribe message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. For each object your Agent would like to cease receiving events, include a SIF_Object element with an ObjectName and optionally one or more SIF_Context names (which default to SIF_Default if omitted).Send SIF_Message to ZIS over appropriate transport.
2Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 6.
3Is SIF_Status/SIF_Code 0?If no, go to Step 5.
4Your Agent is now unsubscribed from each of the objects specified in the SIF_Unsubscribe message, in the applicable context(s). SIF_Events for these objects will cease to be placed in your Agent's queue.Messaging protocol complete (success).
5Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
6Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included.Messaging protocol complete (failure).
Table 4.1.1.6-1: SIF_Unsubscribe Protocol

4.1.1.7 SIF_Provision

The SIF_Provision message provides an Agent the ability to register the objects it provides and to which it subscribes in a single operation, replacing whatever settings the ZIS has on record for the Agent. In effect it is an alternative to SIF_Provide, SIF_Unprovide, SIF_Subscribe and SIF_Unsubscribe, though an Agent may choose to use this message or those, or a combination of these messages.

This message also allows the Agent to fully describe the operations it will perform in a Zone beyond those that can be communicated with SIF_Provide and SIF_Subscribe, including the types of events it will publish, the requests to which it will respond with or without being the Provider for requested objects, and the objects for which it sends requests.

The Agent must have the appropriate access control settings to successfully register any of the corresponding information included in SIF_Provision. Note that the list of access control settings can be determined by examining the SIF_AgentACL object returned in the SIF_Register or SIF_GetAgentACL message protocols.

Note that SIF_Provision will also fail if the Agent is attempting to provide an object that is already provided by another Agent in the applicable Zone Context. The list of Providers in a Zone can be found in SIF_ZoneStatus.

As of version 2.0 of this specification, SIF_Provision is the preferred method for provisioning an Agent. Support for SIF_Subscribe, SIF_Unsubscribe, SIF_Provide and SIF_Unprovide may be removed in a future major release of this specification.

StepProcessFlow Control
1

Prepare a SIF_Message/SIF_Provision message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply.

Include SIF_ProvideObjects and for each object your Agent would like to provide, place a SIF_Object element with an ObjectName and optionally one or more SIF_Context names (which default to SIF_Default if omitted). Your Agent can also state its support for SIF_ExtendedQuery in SIF_ExtendedQuerySupport, which defaults to false.

Include SIF_SubscribeObjects and for each object to which your Agent would like to subscribe, place a SIF_Object element with an ObjectName and optionally one or more SIF_Context names (which default to SIF_Default if omitted).

Include SIF_PublishAddObjects, SIF_PublishChangeObjects and SIF_PublishDeleteObjects elements and include a SIF_Object element with an ObjectName in the respective sections for each event type your agent publishes with regard to that oject. Optionally specify for each object one or more SIF_Context names (which default to SIF_Default if omitted).

Include SIF_RequestObjects and for each object your Agent requests, place a SIF_Object element with an ObjectName and optionally one or more SIF_Context names (which default to SIF_Default if omitted). Your Agent can also state its support for SIF_ExtendedQuery in SIF_ExtendedQuerySupport, which defaults to false.

Include SIF_RespondObjects and for each object for which your Agent processes requests (including those listed in SIF_ProvideObjects), include a SIF_Object element with an ObjectName and optionally one or more SIF_Context names (which default to SIF_Default if omitted). Your Agent can also state its support for SIF_ExtendedQuery in SIF_ExtendedQuerySupport, which defaults to false.

Send SIF_Message to ZIS over appropriate transport.
2Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 6.
3Is SIF_Status/SIF_Code 0?If no, go to Step 5.
4Your Agent is now registered with the corresponding settings in the Zone. Any previously recorded settings with regard to the operations your Agent performs have been replaced.Messaging protocol complete (success).
5Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
6Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included.Messaging protocol complete (failure).
Table 4.1.1.7-1: SIF_Provision Protocol

4.1.1.8 SIF_Event

When an application adds, changes or deletes data represented in one or more Zone Contexts, its Agent SHOULD publish the corresponding Add, Change or Delete SIF_Event to the Zone. Upon successful delivery of a SIF_Event to the ZIS, the ZIS places the event in the queue for any Agents subscribed to events for the object, including your Agent if it is a subscriber.

StepProcessFlow Control
1

Prepare a SIF_Message/SIF_Event message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp. If your Agent would like to indicate minimum encryption and/or authentication requirements for Agents receiving this SIF_Event; supply SIF_Security with the appropriate settings; use an equally secure channel when communicating with the ZIS, if desired. If this event specifically applies to one or more contexts, place them in SIF_Contexts; if omitted, the context is SIF_Default.

Specify the name of the object that is being added, changed or deleted in SIF_EventObject/@ObjectName. Place the type of event in SIF_EventObject/@Action and place the object in SIF_EventObject. For an Add event, this MUST be the complete object with all mandatory elements present. If the agent wishes to indicate that a particular optional element is supported but has no value, the element MAY be included as empty, with xsi:nil set to true if necessary.

For a Change event, all unchanged elements, whether mandatory or optional SHOULD be omitted from the object. Optional elements that have been deleted MAY be included as empty, with xsi:nil set to true if necessary. For each list of repeatable elements in the object that has changed, include the whole list if the list type indicated is List. If the list type is ActionList, the agent MAY include only those elements in the list that have been added, changed or deleted. If an element has been deleted from an ActionList, the element MUST be included with at least its key attribute(s) and/or element(s) specified, and include a SIF_Action attribute value of Delete on the deleted child element in the list. Omitting an element in an ActionList indicates that it has been unchanged in the event. Refer to the Dat Model section of the specification, Lists/Repeatable Elements, for more details on ActionLists and Lists.

For a Delete event, only elements/attributes that identify the object sufficiently for deletion SHOULD be included. This set of identifying elements/attributes are typically communicated by the mandatory root attributes of an object, which MUST be included.

Send SIF_Message to ZIS over appropriate transport.
2Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 6.
3Is SIF_Status/SIF_Code 0?If no, go to Step 5.
4The event has been successfully received by the ZIS. It will be placed in the queue of any Agents registered as subscribers to events for the given object.Messaging protocol complete (success).
5Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
6Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included.Messaging protocol complete (failure).
Table 4.1.1.8-1: SIF_Event Protocol

4.1.1.9 SIF_Request

An Agent can request data from another Agent at any time by sending a SIF_Request message. Agents use one of two query mechanisms in requests. SIF's default query mechanism, SIF_Query, is used to request objects of a given type, matching optional query conditions, optionally returning a subset of object elements. SIF_ExtendedQuery is used to select elements from one or more objects, joined together, if necessary, on RefId-based conditions. Before delivering a request with a SIF_ExtendedQuery to a Responder, the ZIS checks that the Responder supports SIF_ExtendedQuery for all referenced objects.

StepProcessFlow Control
1

Prepare a SIF_Message/SIF_Request message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp. If your Agent would like to indicate minimum encryption and/or authentication requirements for Agents receiving this SIF_Request, supply SIF_Security with the appropriate settings; use an equally secure channel when communicating with the ZIS, if desired. If this request is associated with a context, specify a single SIF_Context in SIF_Contexts; if omitted, the context is SIF_Default. If your Agent would like to explicitly route this request to a given Agent, specify the Agent's ID in SIF_DestinationId. Specify the SIF versions the responder may choose from when returning data in SIF_Version. Each version specified MUST be registered at the ZIS as supported by your Agent. Specify the maximum buffer size the Responder must respect when sending SIF_Response packets; this MUST be less than or equal to the SIF_MaxBufferSize with which your Agent registered with the ZIS.

If using SIF_ExtendedQuery, go to step 3; otherwise go to step 2.

2In SIF_Query, specify the object name being requested in SIF_QueryObject/@ObjectName. Optionally specify the subset of elements/attributes to be returned from each object in SIF_QueryObject/SIF_Element; note that parent elements of specified elements/attributes are returned as well. If your Agent would like to specify query matching conditions, include SIF_ConditionGroup. Alternately an example of an object allowed for use in query-by-example can be placed in SIF_Example. Send SIF_Message to ZIS over appropriate transport. Go to step 4.
3Include a SIF_ExtendedQuery. If your Agent did not specify SIF_DestinationId, the SIF_Request will be routed to the Provider for SIF_From/@ObjectName. If your Agent would like to override this routing mechanism, include SIF_DestinationProvider set to the object name for which the ZIS will determine the Provider and route the request accordingly.Send SIF_Message to ZIS over appropriate transport.
4Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 8.
5Is SIF_Status/SIF_Code 0?If no, go to Step 7.
6The request has been successfully received by the ZIS. It will be placed in the queue of the appropriate Responder as specified in SIF_Header/SIF_DestinationId or determined by SIF_ExtendedQuery/SIF_From/@ObjectName or SIF_ExtendedQuery/SIF_DestinationProvider.Messaging protocol complete (success).
7Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
8Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included.Messaging protocol complete (failure).
Table 4.1.1.9-1: SIF_Request Protocol

4.1.1.10 SIF_Ping

An agent can "ping" the ZIS or check that it's online and/or "awake" by sending a SIF_Ping message to the ZIS. If the agent receives a successful acknowledgement, the ZIS is awake; the ZIS may also reply that it is asleep. As a ZIS may be offline completely, Agents should be prepared to handle transport errors directly or wrapped in a SIF_Ack/SIF_Error by underlying code.

StepProcessFlow Control
1 Prepare a SIF_SystemControl message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place an empty SIF_Ping element in SIF_SystemControlData. Send SIF_Message to ZIS over appropriate transport.
2 Receive SIF_Ack in response. Is SIF_Error present? If yes, go to Step 8.
3 Is SIF_Status/SIF_Code 0? If no, go to Step 5.
4 The ZIS is awake. Messaging protocol complete (success).
5 Is SIF_Status/SIF_Code 8 (ZIS is asleep)? If no, go to Step 7.
6 The ZIS is asleep. Messaging protocol complete (success).
7 Messaging protocol has failed due to a SIF_Status/SIF_Code of 7 (your Agent sent a duplicate SIF_MsgId). Messaging protocol complete (failure).
8 Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included. Messaging protocol complete (failure).
Table 4.1.1.10-1: SIF_Ping Protocol

4.1.1.11 SIF_Sleep

A Push-mode Agent can send a SIF_Sleep message to the ZIS to change its state to "asleep," indicating that the ZIS should not send the Agent messages until it "wakes up" by sending a SIF_Wakeup message or re-registering with SIF_Register. A Pull-mode Agent can also changes it state to "sleeping," but this has no effect other than indicating to other Agents via SIF_ZoneStatus that it is "sleeping" and not processing messages in its queue. Sending a SIF_Wakeup or SIF_GetMessage will indicate that the Agent is "awake," as will re-registering with SIF_Register.

StepProcessFlow Control
1Prepare a SIF_Message/SIF_SystemControl message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place an empty SIF_Sleep element in SIF_SystemControlData.Send SIF_Message to ZIS over appropriate transport.
2Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 6.
3Is SIF_Status/SIF_Code 0?If no, go to Step 5.
4Your Agent's state has been set to "asleep" in the ZIS. This is reflected to other Agents in SIF_ZoneStatus and if your Agent is a Push-mode Agent, the ZIS will stop delivering messages to your Agent. To "wake up," send a SIF_Wakeup message, or re-register with SIF_Register. Pull-mode Agents may also send SIF_GetMessage.Messaging protocol complete (success).
5Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
6Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included.Messaging protocol complete (failure).
Table 4.1.1.11-1: SIF_Sleep Protocol

4.1.1.12 SIF_Wakeup

An Agent can send a SIF_Wakeup message to the ZIS to change its state to "awake," whether sleeping or not; this state is available to other Agents via SIF_ZoneStatus. Upon success, the ZIS may begin delivering messages to a Push-mode Agent again, if previously sleeping.

StepProcessFlow Control
1Prepare a SIF_Message/SIF_SystemControl message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place an empty SIF_Wakeup element in SIF_SystemControlData.Send SIF_Message to ZIS over appropriate transport.
2Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 6.
3Is SIF_Status/SIF_Code 0?If no, go to Step 5.
4Your Agent's state has been set to "awake" in the ZIS. This is reflected to other Agents in SIF_ZoneStatus and if your Agent is a Push-mode Agent and it was previously asleep, the ZIS will resume delivering messages to your Agent.Messaging protocol complete (success).
5Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
6Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included.Messaging protocol complete (failure).
Table 4.1.1.12-1: SIF_Wakeup Protocol

4.1.1.13 SIF_GetZoneStatus

To retrieve the current status of the Zone (SIF_ZoneStatus), send a SIF_GetZoneStatus message to the ZIS.

StepProcessFlow Control
1Prepare a SIF_Message/SIF_SystemControl message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place an empty SIF_GetZoneStatus element in SIF_SystemControlData.Send SIF_Message to ZIS over appropriate transport.
2Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 6.
3Is SIF_Status/SIF_Code 0?If no, go to Step 5.
4SIF_Status/SIF_Data contains the current status of the Zone in SIF_ZoneStatus.Messaging protocol complete (success).
5Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
6Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included.Messaging protocol complete (failure).
Table 4.1.1.13-1: SIF_GetZoneStatus Protocol

4.1.1.14 SIF_GetAgentACL

To retrieve your Agent's current access control list settings from the ZIS (SIF_AgentACL), send a SIF_GetAgentACL message to the ZIS.

StepProcessFlow Control
1Prepare a SIF_Message/SIF_SystemControl message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place an empty SIF_GetAgentACL element in SIF_SystemControlData.Send SIF_Message to ZIS over appropriate transport.
2Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 6.
3Is SIF_Status/SIF_Code 0?If no, go to Step 5.
4SIF_Status/SIF_Data contains your Agent's current access control list settings in the Zone in SIF_AgentACL.Messaging protocol complete (success).
5Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
6Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included.Messaging protocol complete (failure).
Table 4.1.1.14-1: SIF_GetAgentACL Protocol

4.1.1.15 SIF_CancelRequests

Agents can request that a ZIS cancel SIF_Requests, pending or in process, by sending a list of SIF_RequestMsgIds in a SIF_CancelRequests message. If an Agent abandons or restarts a data collection using SIF_Requests, whether or not the response stream has started, it is RECOMMENDED that the Agent send one or more SIF_CancelRequests messages to the ZIS. Such data collections can place a heavy load on responding Agents, where often all data of a specific object type is requested, and cancelling requests may spare Zone resources. Cancelling of responses can also reduce the number of response packets the receiving/cancelling agent needs to process and discard.

If the cancelling Agent wishes to receive a "final" SIF_Response from the ZIS for each cancelled message, it can specify Standard in SIF_CancelRequests/SIF_NotificationType. If the cancelling Agent does not desire or require "final" SIF_Responses, the Agent can specify None in SIF_NotificationType.

StepProcessFlow Control
1Prepare a SIF_Message/SIF_SystemControl message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Add a SIF_CancelRequests element in SIF_SystemControlData. 
2Specify Standard in NotificationType if your Agent desires or requires a "final" SIF_Response be returned by the ZIS for each cancelled message (SIF_Response/SIF_MorePackets = No). Otherwise specify None. 
3Add a SIF_RequestMsgIds element and add a child SIF_RequestMsgId element for each SIF_Request that the Agent wishes to cancel.Send SIF_Message to ZIS over appropriate transport.
4Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 8.
5Is SIF_Status/SIF_Code 0?If no, go to Step 7.
6The ZIS has accepted the SIF_CancelRequests message. Your Agent will receive or not receive "final" SIF_Responses per the specified NotificationType.Messaging protocol complete (success).
7Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
8Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included.Messaging protocol complete (failure).
Table 4.1.1.15-1: SIF_CancelRequests Protocol

4.1.1.16 SIF_GetMessage (Pull-Mode only)

Pull-mode Agents retrieve the next message in their queue by sending a SIF_GetMessage message to the ZIS. Note that as individual messages may have specific minimum encryption/authentication levels attached to them by senders, a Pull-Mode Agent should always use the highest encryption/authentication levels it supports when contacting the ZIS to avoid individual messages being discarded when contacting the ZIS using lower encryption/authentication levels than might be required for receipt of a given message.

StepProcessFlow Control
1Prepare a SIF_Message/SIF_SystemControl message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place an empty SIF_GetMessage element in SIF_SystemControlData.Send SIF_Message to ZIS over appropriate transport. Always use the highest encryption/authentication levels that your Agent supports to maximize the number of messages that can be returned to your Agent.
2Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 7.
3Is SIF_Status/SIF_Code 0?If no, go to Step 5.
4SIF_Status/SIF_Data contains the next SIF_Message in your agent's queue.Messaging protocol complete (success). Process the returned SIF_Message according to Agent Message Handling Protocols below.
5Is SIF_Status/SIF_Code 9?If yes, there are no messages available for your Agent. Message processing complete (success).
6Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
7Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included. If a Push-mode Agent sends SIF_GetMessage, note particularly category 5, code 9 (agent registered in Push mode).Messaging protocol complete (failure).
Table 4.1.1.16-1: SIF_GetMessage Protocol

4.1.1.17 SIF_Ack (Push-Mode)

Push-Mode Agents end Selective Message Blocking (SMB) by sending a final SIF_Ack to the ZIS.

StepProcessFlow Control
1 Prepare a SIF_Message/SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. From the message being unblocked/removed from the queue, place the SIF_Header/SIF_SourceId value into SIF_OriginalSourceId and place the SIF_Header/SIF_MsgId value into SIF_OriginalMsgId. Place 3 (final SIF_Ack) into SIF_Code/SIF_Data. Send SIF_Message to ZIS over appropriate transport.
2 Receive SIF_Ack in response. Is SIF_Error present? If yes, go to Step 6.
3 Is SIF_Status/SIF_Code 0? If no, go to Step 5.
4 The referenced message has been unblocked and removed from your Agent's queue. The ZIS resumes delivery of events to your Agent. Messaging protocol complete (success).
5 Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId). Messaging protocol complete (failure).
6 Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included. Messaging protocol complete (failure).
Table 4.1.1.17-1: SIF_Ack Protocol (Push-Mode)

4.1.1.18 SIF_Ack (Pull-Mode)

Pull-mode Agents acknowledge messages received in response to SIF_GetMessage and remove them from their queue by sending a SIF_Ack message to the ZIS. SIF_Ack is also sent by Pull-Mode Agents to invoke and end Selective Message Blocking (SMB).

StepProcessFlow Control
1 Prepare a SIF_Message/SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply.If your Agent is invoking SMB, go to Step 3. If your Agent is ending SMB, go to Step 4.
2 From the message being acknowledged/the message to be removed from the queue, place the SIF_Header/SIF_SourceId value into SIF_OriginalSourceId and place the SIF_Header/SIF_MsgId value into SIF_OriginalMsgId. Place 1 (immediate SIF_Ack) into SIF_Code/SIF_Data or an appropriate error description in SIF_Error. If your Agent indicates a transport error or places 8 (receiver is sleeping) into SIF_Code/SIF_Data, the message will be acknowledged but remain in your Agent's queue. Send SIF_Message to ZIS over appropriate transport. Go to Step 5.
3 From the SIF_Event being blocked, place the SIF_Header/SIF_SourceId value into SIF_OriginalSourceId and place the SIF_Header/SIF_MsgId value into SIF_OriginalMsgId. Place 2 (intermediate SIF_Ack) into SIF_Code/SIF_Data. Send SIF_Message to ZIS over appropriate transport. Go to Step 5.
4 From the SIF_Event being unblocked, place the SIF_Header/SIF_SourceId value into SIF_OriginalSourceId and place the SIF_Header/SIF_MsgId value into SIF_OriginalMsgId. Place 3 (final SIF_Ack) into SIF_Code/SIF_Data. Send SIF_Message to ZIS over appropriate transport.
5Receive SIF_Ack in response. Is SIF_Error present?If yes, go to Step 9.
6Is SIF_Status/SIF_Code 0?If no, go to Step 8.
7

If your Agent did not invoke or end SMB for a SIF_Event, the referenced message has been removed from your Agent's queue, unless your agent indicated a transport error or that it was sleeping (in which case the message has been acknowledged but remains in your Agent's queue).

If your Agent invoked SMB by sending an intermediate SIF_Ack, delivery of events is blocked until your Agent removes the SIF_Event from its queue by sending a final SIF_Ack. Your Agent will continue to receive SIF_Responses and SIF_Requests.

If your Agent ended SMB by sending a final SIF_Ack, the ZIS has removed the blocked event from your Agent's queue and resumes delivery of events to your Agent.

Messaging protocol complete (success).
8Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (ZIS is asleep) or 7 (your Agent sent a duplicate SIF_MsgId).Messaging protocol complete (failure).
9Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included.Messaging protocol complete (failure).
Table 4.1.1.18-1: SIF_Ack Protocol (Pull-Mode)

4.1.2 Agent Message Handling Protocols

This section documents how Agents should respond to incoming messages, and the resulting post-conditions upon success or failure, along with any necessary steps to take.

Note that in handling any SIF_Message, an Agent may return a SIF_Ack with SIF_Status/SIF_Code 8 (receiver is sleeping) or 7 (already have this SIF_MsgId from you) if a duplicate message is detected. These responses are typically omitted from the handling protocols below.

4.1.2.1 SIF_Message

Upon receipt of a generic message from the ZIS, in most cases it may be safely assumed that the message XML is well-formed, and perhaps even valid, but the Agent should take the following steps to determine whether the XML is well-formed, optionally validate the message, and check that the message is of a valid type before handing the message off to the respective message handling protocol below.

StepProcessFlow Control
1If your transport layer implementation rejects XML that is not well-formed and optionally that is invalid, go to Step 3, 5, 7 or 9 depending on the extent of that implementation. Otherwise, is the XML message well-formed?If yes, go to step 3.
2Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. If your Agent can scan the incoming message as UTF-8 encoded text to locate SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId, these values can be placed in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Otherwise include these elements with empty values, including an xsi:nil attribute value of true on SIF_OriginalMsgId. Include a SIF_Error element with a SIF_Category of 1 (XML Validation) and a SIF_Code of 2 (message is not well-formed).Go to step 12.
3Is the root element of the message unprefixed with a local name of SIF_Message?If yes, go to step 5.
4Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Include a SIF_Error element with a SIF_Category of 1 (XML Validation) and a SIF_Code of 3 (generic validation error).Go to step 12.
5Is the namespace for SIF_Message a namespace of a major version of SIF your Agent supports? Is SIF_Message/@Version present with a value that your Agent supports? (If omitted, interpret SIF_Message/@Version as 1.1.)If yes, go to step 7.
6Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Include a SIF_Error element with a SIF_Category of 12 (Generic Message Handling) and a SIF_Code of 3 (version not supported).Go to step 12.
7If your Agent does not validate messages, go to step 9. Otherwise choose a validation schema based on the value of SIF_Message/@Version. Does the message validate?If yes, go to step 9.
8Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Include a SIF_Error element with a SIF_Category of 1 (XML Validation) and an appropriate SIF_Code from the corresponding choices in Error Codes.Go to step 12.
9If the namespace for SIF_Message is for a previous major version of SIF, handle according to the specification for SIF_Message/@Version. Otherwise, is the message type (the child element of SIF_Message) SIF_Event, SIF_Request, SIF_Response, SIF_Ping (Push-mode only), SIF_Sleep (Push-mode only), SIF_Wakeup (Push-mode only), or SIF_CancelRequests (Push-mode only and your Agent chooses to support this optional message)?If yes, go to step 11.
10Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Include a SIF_Error element with a SIF_Category of 12 (Generic Message Handling) and a SIF_Code of 2 (message not supported).Go to step 12.
11Process per the corresponding message handling protocol below.Message handling is complete.
12If your Agent is a Push-mode Agent, return the SIF_Ack to the ZIS. If your Agent is a Pull-mode Agent send the SIF_Ack to the ZIS per SIF_Ack (Pull-Mode) above.Message handling is complete.
Table 4.1.2.1-1: SIF_Message Handling

4.1.2.2 SIF_Event

A ZIS places a SIF_Event in your Agent's queue when an event occurs in a Zone Context with regard to an object for which your agent has subscribed to receive events. A SIF_Event is delivered when it is the next message pending delivery in the queue.

An event may apply to one or more contexts; these are listed in SIF_Header/SIF_Contexts. If SIF_Contexts is not present, the context for the event is SIF_Default. The type of event is specified in SIF_EventObject/@Action, the corresponding data object is in SIF_EventObject. A Change or Delete event may contain a partial object, but it must include the necessary attribute(s) and element(s) to uniquely identify the object being changed or deleted. These keys/identifiers are typically communicated in the root attributes of an object.

StepProcessFlow Control
1 Does your Agent invoke Selective Message Blocking (SMB) for all events, or does this event indicate to your Agent that it will invoke SMB? If no, go to Step 3.
2

Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Place 2 (intermediate SIF_Ack) in SIF_Status/SIF_Code.

If your Agent is a Push-Mode Agent, return the SIF_Ack to the ZIS and commence sending the necessary requests as described in the SIF_Request protocol above to complete processing of the event per your Agent's business rules. When complete or if an error occurs, end SMB as described in the SIF_Ack (Push-Mode) protocol above.

If your Agent is a Pull-Mode Agent, send the SIF_Ack to the ZIS per SIF_Ack (Pull-Mode) above and commence sending the necessary requests as described in the SIF_Request protocol above to complete processing of the event per your Agent's business rules. When complete or if an error occurs, end SMB as described in the SIF_Ack (Pull-Mode) protocol above.

If an error occurs, it is RECOMMENDED that your Agent publish a SIF_LogEntry Add event.

Message handling complete.
3

If your Agent is a Pull-Mode Agent, process the event per your Agent's business rules. When complete or if an error occurs, acknowledge the message and remove it from your Agent's queue per SIF_Ack (Pull-Mode) above.

If your Agent is a Push-Mode Agent, it has one of two options: process the event, then acknowledge it; or acknowledge the event, then process it. The advantage of first processing the event is the ability to return a descriptive error, if necessary, to the ZIS when acknowledging the message. The disadvantage of first processing is that if the processing is long running, the connection from the ZIS to your Agent may time out, which will lead to the event being redelivered to your Agent in another delivery attempt, to possibly run into another time-out. To avoid the latter, it is RECOMMENDED that your Push-Mode Agent first acknowledge the event, then process it, unless event processing is known to always occur within a reasonable amount of time. Agents that first acknowledge then process SHOULD persist the event locally until processing is complete, as the event is removed from your Agent's queue upon successful acknowledgement, otherwise the event will be lost in the case of an application or system error that affects your Agent's ability to complete processing of the event.

Choose an option and process the event according to your Agent's business rules. When acknowledging: Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Place 1 (immediate SIF_Ack) in SIF_Status/SIF_Data in the case of successful procssing, and return the SIF_Ack to the ZIS. If an error has occurred, include a SIF_Error element with an appropriate SIF_Category and SIF_Code and describe the error as needed in SIF_Desc and optionally SIF_ExtendedDesc. Note that indicating a transport error will not remove the message from your Agent's queue, only acknowledge it. The same action can be accomplished indicating 8 (receiver is sleeping) in SIF_Status/SIF_Code.

If an error occurs regardless of the option chosen, it is RECOMMENDED that your Agent publish a SIF_LogEntry Add event.

Message handling complete
Table 4.1.2.2-1: SIF_Event Handling

4.1.2.3 SIF_Request

A ZIS places a SIF_Request in your Agent's queue when an Agent sends a request directly to your Agent, or when an Agent sends a request without a SIF_DestinationId and your agent is registered as the Provider for the object requested in SIF_Query, or in the case of SIF_ExtendedQuery when your agent is registered as the Provider of the object specified by the Requester in SIF_ExtendedQuery/SIF_DestinationProvider or SIF_ExtendedQuery/SIF_From/@ObjectName. The ZIS will not send your Agent a SIF_ExtendedQuery unless your Agent has registered its support for that query type using SIF_Provide or SIF_Provision. A SIF_Request is delivered when it is the next message pending delivery in your Agent's queue.

Any error that occurs while generating SIF_Responses during SIF_Request handling MUST be sent to the Requester with SIF_MorePackets set to No, at which point the response stream ends.

StepProcessFlow Control
1Examine SIF_Header/SIF_Contexts to determine the context for the request; if none is specified, the context is SIF_Default.Go to Step 3 if the context is supported.
2

Prepare a SIF_Response message with a copy of SIF_Contexts, SIF_DestinationId set to SIF_SourceId and SIF_RequestMsgId set to SIF_MsgId from the SIF_Request message.

Add a SIF_Error element with the SIF_Error/SIF_Category set to indicate General Message Handling and SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate that the requested context is not supported.

Add SIF_PacketNumber with a value of 1 and set SIF_MorePackets to No.

Send the SIF_Response to the original requester and acknowledge the error to the ZIS.

Message handling complete.
3Examine the SIF_Version element or elements specified in the SIF_Request message. If more than one version is supported, select the highest version number supported.Go to Step 5 if a version is supported.
4

Prepare a SIF_Response message with a copy of SIF_Contexts, SIF_DestinationId set to SIF_SourceId and SIF_RequestMsgId set to SIF_MsgId from the SIF_Request message.

Add a SIF_Error element with the SIF_Error/SIF_Category set to indicate Request and Response and SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate that the requested SIF_Versions are not supported.

Add SIF_PacketNumber with a value of 1 and set SIF_MorePackets to No.

Send the SIF_Response to the original requester and acknowledge the error to the ZIS.

Message handling complete.
5Examine the SIF_MaxBufferSize specified in the SIF_Request message.Go to Step 7 if it is greater than or equal to the minimum buffer size your Agent can support. (The buffer size of individual packets will be handled below).
6

Using the SIF version selected in Step 1, prepare a SIF_Response message with SIF_DestinationId set to SIF_SourceId and SIF_RequestMsgId set to SIF_MsgId from the SIF_Request message.

Add a SIF_Error element with the SIF_Error/SIF_Category set to indicate Request and Response and SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate that the SIF_MaxBufferSize cannot be honored.

Add SIF_PacketNumber with a value of 1 and set SIF_MorePackets to No.

Send the SIF_Response to the original requester and acknowledge the error to the ZIS.

Message handling complete.
7Is SIF_ExtendedQuery specified?If yes, go to Step 10.
6The query type is SIF_Query. Examine the object name being queried in SIF_QueryObject/@ObjectName.Go to Step 8 if the object is supported.
7

Prepare a SIF_Response message using the version chosen in Step 1 with SIF_DestinationId set to SIF_SourceId and SIF_RequestMsgId set to SIF_MsgId from the SIF_Request message.

Add a SIF_Error element with the SIF_Error/SIF_Category set to indicate Request and Response and SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate that the object is not supported.

Add SIF_PacketNumber with a value of 1 and set SIF_MorePackets to No.

Send the SIF_Response to the original requester and acknowledge the error to the ZIS.

Stop processing the message.
8Examine the query represented, if any, by SIF_ConditionGroup, or SIF_Example in the case of objects that support query-by-example, and determine whether it is supported.Go to Step 12 if neither SIF_ConditionGroup nor SIF_Example is present, or if the query represented by SIF_ConditionGroup or SIF_Example is supported.
9

Prepare a SIF_Response message with SIF_DestinationId set to SIF_SourceId and SIF_RequestMsgId set to SIF_MsgId from the SIF_Request message.

Add a SIF_Error element with the SIF_Error/SIF_Category set to indicate Request and Response and SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate that the query is not supported.

Add SIF_PacketNumber with a value of 1 and set SIF_MorePackets to No.

Send the SIF_Response to the original requester and acknowledge the error to the ZIS.

Stop processing the message.
10Examine the query represented by SIF_ExtendedQuery, and determine whether it is supported. Go to Step 12 if the query is supported.
11

Prepare a SIF_Response message with SIF_DestinationId set to SIF_SourceId and SIF_RequestMsgId set to SIF_MsgId from the SIF_Request message.

Add a SIF_Error element with the SIF_Error/SIF_Category set to indicate Request and Response and SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate that the query is not supported.

Add SIF_PacketNumber with a value of 1 and set SIF_MorePackets to No.

Send the SIF_Response to the original requester and acknowledge the error to the ZIS.

Stop processing the message.
12

Note that Push-Mode Agents should acknowledge receipt of the SIF_Request as response generation is typically a long-running operation that will typically lead to HTTP time-outs. As the request will be removed from the Agent's queue, it is RECOMMENDED that the Push-Mode Agent persist the request and its SIF_PacketNumber while generating responses, in case of an application or system failure that prevents it from completing the request processing; upon restarting, the Agent can end the response stream with a SIF_Error, SIF_PacketNumber set to the last successfully transmitted SIF_PacketNumber + 1 and SIF_MorePackets set to No.

If a Push-Mode Agent elects to successfully acknowledge the request before processing, it can do so. Otherwise it should acknowledge receipt of the request upon completion of response generation.

Pull-Mode Agents can choose to acknowledge receipt of the request here or at the end of response generation.

Initialize packet counter to 1.

13Prepare a SIF_Response message with SIF_DestinationId set to SIF_SourceId and SIF_RequestMsgId set to SIF_MsgId from the SIF_Request message. When handling SIF_ExtendedQuery, copy the requested columns into SIF_ExtendedQueryResults/SIF_ColumnHeaders.
14Add one or more of the matching objects into SIF_ObjectData, for SIF_Query, or rows into SIF_ExtendedQueryResult, for SIF_ExtendedQuery, until no more will fit within the specified buffer size. If no objects or rows will fit within SIF_MaxBufferSize, go to Step 15 with the SIF_Error/SIF_Category set to indicate Request and Response and SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate that SIF_MaxBufferSize cannot be honored. Otherwise, note that only requested columns are returned when processing SIF_ExtendedQuery. When processing SIF_Query, if the requester specified only certain elements be returned, that the Responder needs to return only those elements and their parent elements and attributes. Not supporting a requested element/attribute does not exclude the object from the response stream; include the parent elements/attributes of any missing elements, including the object itself. If no errors occur in retrieving/adding matching objects, go to step 16.
15Set SIF_PacketNumber to the current packet counter and SIF_MorePackets to No. Add an appropriate SIF_Error element to the SIF_Response and send the SIF_Response to the ZIS.Go to Step 19.
16Set SIF_PacketNumber to the current packet counter value and set SIF_MorePackets appropriately. Send the SIF_Response to the ZIS.
17Examine the SIF_Ack returned by the ZIS.If an error occurred, stop processing the SIF_Request message. Go to Step 19.
18Determine if more objects or rows match the specified conditions.If yes, increment the packet counter and go to Step 13; otherwise, go to Step 19.
19If your Agent has not yet acknowledged receipt of the incoming request, acknowledge successful receipt of the request, or return a descriptive error to the ZIS.Message handling complete.
Table 4.1.2.3-1: SIF_Request Handling

4.1.2.4 SIF_Response

A ZIS places a SIF_Response in your Agent's queue when a responder sends a response packet to your Agent per a SIF_Request previously sent by your Agent. It is delivered when it is the next message available for delivery to your Agent.

StepProcessFlow Control
1SIF_RequestMsgId indicates which of your SIF_Requests this packet is in response to. Is SIF_Error present? If no, go to Step 3.
2

The Responder's handling of your Agent's SIF_Request has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included. this is the last packet your Agent will receive associated with that request.

If your Agent is a Pull-Mode Agent, acknowledge the message per SIF_Ack (Pull-Mode) above.

If your Agent is a Push-Mode Agent: Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Place 1 (immediate SIF_Ack) in SIF_Status/SIF_Data, and return the SIF_Ack to the ZIS.

Message handling complete. Any resources associated with the request can be released.
3

If your Agent is a Pull-Mode Agent, process the response per your Agent's business rules. When complete or if an error occurs, acknowledge the message and remove it from your Agent's queue per SIF_Ack (Pull-Mode) above.

If your Agent is a Push-Mode Agent, it has one of two options: process the response, then acknowledge it; or acknowledge the response, then process it. The advantage of first processing the response is the ability to return a descriptive error, if necessary, to the ZIS when acknowledging the message. The disadvantage of first processing is that if the processing is long running, the connection from the ZIS to your Agent may time out, which will lead to the response being redelivered to your Agent in another delivery attempt, to possibly run into another time-out. To avoid the latter, it is RECOMMENDED that your Push-Mode Agent first acknowledge the response, then process it, unless response processing is known to always occur within a reasonable amount of time. Agents that first acknowledge then process SHOULD persist the response locally until processing is complete, as the response is removed from your Agent's queue upon successful acknowledgement, otherwise the response will be lost in the case of an application or system error that affects your Agent's ability to complete processing of the response.

Choose an option and process the response according to your Agent's business rules. When acknowledging: Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Place 1 (immediate SIF_Ack) in SIF_Status/SIF_Data in the case of successful procssing, and return the SIF_Ack to the ZIS. If an error has occurred, include a SIF_Error element with an appropriate SIF_Category and SIF_Code and describe the error as needed in SIF_Desc and optionally SIF_ExtendedDesc. Note that indicating a transport error will not remove the message from your Agent's queue, only acknowledge it. The same action can be accomplished indicating 8 (receiver is sleeping) in SIF_Status/SIF_Code.

If an error occurs regardless of the option chosen, it is RECOMMENDED that your Agent publish a SIF_LogEntry Add event.

Message handling complete. If SIF_MorePackets is No, this is the last packet associated with the request your Agent will receive; any resources associated with the request can be released.
Table 4.1.2.4-1: SIF_Event Handling

4.1.2.5 SIF_Ping (Push-Mode only)

The ZIS is pinging your Agent to see if it is reachable, "awake" and/or processing messages.

StepProcessFlow Control
1 Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. If your Agent is "awake," include a SIF_Status element with a SIF_Code of 1 (immediate SIF_Ack). Otherwise you may optionally notify the ZIS that your Agent is asleep by returning a SIF_Code of 8 (receiver is sleeping).  
2 Return the SIF_Ack to the ZIS. Message processing complete (success).
Table 4.1.2.5-1: SIF_Ping Handling

4.1.2.6 SIF_Sleep (Push-Mode only)

The ZIS has changed its state to "asleep" and is either not processing incoming messages or all incoming messages will be acknowledged with a SIF_Ack/SIF_Status/SIF_Code value of 8 (receiver is sleeping); delivery of queued messages to your Agent is halted. Your Agent SHOULD avoid sending messages to the ZIS until receipt of a SIF_Wakeup message, or be prepared to handle transport errors or the aforementioned acknowledgement.

StepProcessFlow Control
1 Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Include a SIF_Status element with a SIF_Code of 1 (immediate SIF_Ack). Change your Agent's ZIS state to "asleep."  
2 Return the SIF_Ack to the ZIS. Message processing complete (success).
Table 4.1.2.6-1: SIF_Sleep Handling

4.1.2.7 SIF_Wakeup (Push-Mode only)

The ZIS has changed its state to "awake" and is processing incoming messages and delivering queued messages again.

StepProcessFlow Control
1 Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Include a SIF_Status element with a SIF_Code of 1 (immediate SIF_Ack). Change your Agent's ZIS state to "awake."  
2 Return the SIF_Ack to the ZIS. Message processing complete (success).
Table 4.1.2.7-1: SIF_Wakeup Handling

4.1.2.8 SIF_CancelRequests (Push-Mode only) (optional)

A ZIS is requesting that your Agent cancel processing of one or more SIF_Request messages. Support for handling of this message is currently optional for Push-Mode Agents. If your Agent does not support SIF_CancelRequests, it returns a Generic Message Handling error upon receipt of the SIF_SystemControl message, error code "Message not supported," per the SIF_Message handling protocol.

StepProcessFlow Control
1 Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Agent's Agent ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Include a SIF_Status element with a SIF_Code of 1 (immediate SIF_Ack).  
2 If your Agent is currently preparing SIF_Response packets for any of the SIF_Request messages specified in the SIF_RequestMsgId element(s), stop processing the request(s). If your Agent has any of the specified SIF_Requests queued locally, remove them from the agent local queue.  
3 Return the SIF_Ack to the ZIS. Message processing complete (success).
Table 4.1.2.8-1: SIF_CancelRequests Handling

4.2 ZIS Protocols

4.2.1 ZIS Messaging Protocols

This section documents how Zone Integration Servers send individual messages, and the resulting post-conditions upon success or failure, along with any necessary steps to take. These correspond to each of the actions a Zone Integration Server can initiate.

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

A ZIS contacts a Push-Mode Agent to deliver SIF_Event, SIF_Request and SIF_Response messages queued for the Agent. This delivery protocol starts with a check on whether there are messages pending, as the protocol can loop as messages are delivered.

StepProcessFlow Control
1 Are there messages queued for the Agent? If yes, go to Step 2. Otherwise messaging protocol complete (success).
2 Is the state of the Agent "asleep?" If yes, the ZIS SHOULD wait until the Agent sends a SIF_Wakeup message or re-registers in Push mode before attempting message delivery. Otherwise the ZIS MUST be prepared to handle transport errors/exceptions and/or the Agent responding with a SIF_Status/SIF_Code of 8 (receiver is sleeping). If no, go to Step 3. Otherwise messaging protocol complete (success).
3 Has the Agent previously invoked SMB? If no, go to Step 6.
4 Iterate through the Agent's queue from the message received first to the most recently received message. Stop at the first SIF_Response or SIF_Request in the queue, if one exists. If one exists, it is the next message to be delivered. Go to Step 7.
5 The only messages queued for the Agent are SIF_Events; try again later, or after a SIF_Response or SIF_Request arrives, or after the Agent has ended SMB by sending a final SIF_Ack. Messaging protocol complete (no message needs to be delivered).
6 The next message to be delivered is the message received first in the Agent's queue.
7 Is SIF_Header/SIF_Security present in the SIF_Message with SIF_EncryptionLevel, SIF_AuthenticationLevel, or both? If no, the message delivery encryption/authentication levels are the minimum encryption/authentication levels set up for the Zone. Go to Step 9.
8 The ZIS MUST guarantee that the minimum encryption and/or authentication levels specified are respected when delivering this message. Use the higher of these and the Zone's minimum encryption and/or authentication levels during message delivery.
9 If a connection is already open to the Push-Mode Agent from a previously delivered message, are the encryption and authentication levels greater than or equal to those needed for the delivery of this message? If there is no connection open, go to Step 11. If there is and the encryption/authentication levels are adequate for delivery, go to Step 13.
10 Attempt to renegotiate the encryption/authentication levels for the connection, or close the connection and attempt to open a new connection with adequate encryption/authentication levels. Go to Step 12.
11 If the registered transport layer is known to not provide adequate encryption/authentication levels (e.g. SIF HTTP), go to Step 12. Otherwise attempt to open a connection to the Agent with adequate encryption/authentication levels, using the appropriate transport layer.
12 Was a connection opened or renegotiated with adequate encryption/authentication levels? If no, the message cannot be delivered; remove it from the Agent's queue. It is RECOMMENDED that your ZIS log the error. Your ZIS MUST post a SIF_LogEntry  Add event with the appropriate error category and code, containing a copy of the SIF_Header of the queued message. SIF_LogEntry/SIF_Desc MUST contain the SIF_SourceId of the Agent that failed to receive the message. Go to Step 1 to start delivery of the next queued message, if desired. Otherwise messaging protocol complete (error).
13 Send the message to the Agent over the connection.
14 Receive SIF_Ack in response. Is SIF_Error present? If yes, go to Step 24.
15 Is SIF_Status/SIF_Code 1 (immediate SIF_Ack)? If no, go to Step 17.
16 The Agent has successfully acknowledged receipt of the message; remove it from the Agent's queue. Go to Step 1 to start delivery of the next queued message, if desired. Otherwise messaging protocol complete (success).
17 Is SIF_Status/SIF_Code 2 (intermediate SIF_Ack)? If no, go to Step 21.
18 The Agent is invoking SMB. Is the delivered message a SIF_Event? If yes, go to Step 20.
19 The Agent has violated protocol; remove the message from the Agent's queue. It is RECOMMENDED that your ZIS log the error. Your ZIS MUST post a SIF_LogEntry  Add event with the appropriate error category of 13 (SMB Error) and code 2 (SMB can only be invoked for SIF_Event), containing a copy of the SIF_Header of the queued message. SIF_LogEntry/SIF_Desc MUST contain the SIF_SourceId of the Agent that committed the protocol error. Go to Step 1 to start delivery of the next queued message, if desired. Otherwise messaging protocol complete (error).
20 The Agent has invoked SMB on this SIF_Event. Persist that the Agent has invoked SMB along with the SIF_MsgId of the event. The event stays in the agent's queue as blocked, and all other events are frozen until the Agent eventually ends SMB by sending a final SIF_Ack with this SIF_MsgId in SIF_OriginalMsgId, or by sending a SIF_Wakeup or by re-registering. Go to Step 1 to start delivery of the next queued message, if desired. Otherwise messaging protocol complete (success).
21 Is SIF_Status/SIF_Code 8 (receiver is sleeping)? If no, go to Step 23.
22 The Agent is asleep. Re-attempt delivery later. Messaging protocol complete (success).
23 Messaging protocol has failed due to a SIF_Status/SIF_Code of 7 (already have this SIF_MsgId). The ZIS cannot correct this, as the SIF_MsgId originates from an Agent and can't be changed without other repercussions. Remove the message from the Agent's queue. It is RECOMMENDED that your ZIS log the error. Your ZIS MUST post a SIF_LogEntry  Add event with the appropriate error category and code, containing a copy of the SIF_Header of the queued message. SIF_LogEntry/SIF_Desc MUST contain the SIF_SourceId of the Agent that did not receive the message. Go to Step 1 to start delivery of the next queued message, if desired. Otherwise messaging protocol complete (error).
24 Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included. If SIF_Category does not indicate a transport error, remove the message from the Agent's queue. Otherwise re-attempt delivery of this message later. It is RECOMMENDED that your ZIS log the error. Your ZIS MAY post a SIF_LogEntry  Add event with the appropriate error category and code, containing a copy of the SIF_Header of the queued message. SIF_LogEntry/SIF_Desc MUST contain the SIF_SourceId of the Agent that indicated the error. Go to Step 1 to start delivery of the next queued message, if desired. Otherwise messaging protocol complete (error).
Table 4.2.1.1-1: SIF_Message Delivery Protocol

4.2.1.2 SIF_Ping (to a Push-mode Agent)

A ZIS can "ping" a Push-Mode Agent or check that it's "awake" by sending a SIF_Ping message to the Agent. If the Agent returns a successful acknowledgement, it is awake; the Agent may also reply that it is asleep. As a Push-Mode Agent may be offline completely, Zone Integration Servers should be prepared to handle transport errors directly or wrapped in a SIF_Ack/SIF_Error by underlying code.

StepProcessFlow Control
1 Prepare a SIF_SystemControl message with SIF_Header containing a new GUID in SIF_MsgId, the Zone ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place an empty SIF_Ping element in SIF_SystemControlData. Send SIF_Message to Agent over appropriate transport.
2 Receive SIF_Ack in response. Is SIF_Error present? If yes, go to Step 8.
3 Is SIF_Status/SIF_Code 1? If no, go to Step 5.
4 The Agent is awake. Messaging protocol complete (success).
5 Is SIF_Status/SIF_Code 8 (receiver is sleeping)? If no, go to Step 7.
6 The Agent is asleep. Messaging protocol complete (success).
7 Messaging protocol has failed due to a SIF_Status/SIF_Code of 7 (your ZIS sent a duplicate SIF_MsgId). Messaging protocol complete (failure).
8 Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included. Messaging protocol complete (failure).
Table 4.2.1.2-1: SIF_Ping Protocol

4.2.1.3 SIF_Sleep (to a Push-mode Agent)

A ZIS can send a SIF_Sleep message to a Push-Mode Agent to change its state to "sleeping," indicating that it will either be offline or acknowleding incoming messages with a SIF_Status/SIF_Code of 8 (receiver is sleeping), and that it will not be delivering messages to the Agent until it "wakes up" by sending a SIF_Wakeup message.

StepProcessFlow Control
1 Prepare a SIF_Message/SIF_SystemControl message with SIF_Header containing a new GUID in SIF_MsgId, your Zone ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place an empty SIF_Sleep element in SIF_SystemControlData. Send SIF_Message to Agent over appropriate transport.
2 Receive SIF_Ack in response. Is SIF_Error present? If yes, go to Step 6.
3 Is SIF_Status/SIF_Code 1? If no, go to Step 5.
4 The Agent has successfully acknowledged your SIF_Sleep and should not be expecting further message delivery until your ZIS sends a SIF_Wakeup. Messaging protocol complete (success).
5 Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (Agent is asleep) or 7 (your ZIS sent a duplicate SIF_MsgId). Messaging protocol complete (failure).
6 Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included. Messaging protocol complete (failure).
Table 4.2.1.3-1: SIF_Sleep Protocol

4.2.1.4 SIF_Wakeup (to a Push-mode Agent)

A ZIS can send a SIF_Wakeup message to a Push-Mode Agent to change its state to "awake;" i.e., that it is ready to process incoming messages and deliver queued messages again.

StepProcessFlow Control
1 Prepare a SIF_Message/SIF_SystemControl message with SIF_Header containing a new GUID in SIF_MsgId, your Zone ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place an empty SIF_Wakeup element in SIF_SystemControlData. Send SIF_Message to Agent over appropriate transport.
2 Receive SIF_Ack in response. Is SIF_Error present? If yes, go to Step 6.
3 Is SIF_Status/SIF_Code 1? If no, go to Step 5.
4 The Agent has successfully acknowledged your "awake" status. Messaging protocol complete (success).
5 Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (Agent is asleep) or 7 (your ZIS sent a duplicate SIF_MsgId). Messaging protocol complete (failure).
6 Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included. Messaging protocol complete (failure).
Table 4.2.1.4-1: SIF_Wakeup Protocol

4.2.1.5 SIF_CancelRequests (to a Push-mode Agent)

A ZIS can send a SIF_CancelRequests message to a Push-Mode Agent after receiving a SIF_CancelRequests messages from another agent, as per the SIF_CancelRequests message handling protocol. As support for this message is currently optional for Push-Mode Agents, the ZIS should be prepared to handle a Generic Message Handling error from the Agent upon receipt of the SIF_SystemControl message, error code "Message not supported."

StepProcessFlow Control
1 Prepare a SIF_Message/SIF_SystemControl message with SIF_Header containing a new GUID in SIF_MsgId, your Zone ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place a SIF_CancelRequests element in SIF_SystemControlData.  
2Place the requests that should be cancelled in SIF_RequestMsgIds/SIF_RequestMsgId. While it is not used by the Push-Mode Agent, set the NotificationType to None. Send SIF_Message to Agent over appropriate transport.
3 Receive SIF_Ack in response. Is SIF_Error present? If yes, go to Step 7.
4 Is SIF_Status/SIF_Code 1? If no, go to Step 6.
5 The Agent has successfully acknowledged your SIF_CancelRequests and should have cancelled any corresponding response activity. Messaging protocol complete (success).
6 Messaging protocol has failed due to a SIF_Status/SIF_Code of 8 (Agent is asleep) or 7 (your ZIS sent a duplicate SIF_MsgId). Messaging protocol complete (failure).
7 Messaging protocol has failed due to a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included. If the SIF_Error is a Generic Message Handling error, error code "Message not supported," go to Step 8. Otherwise messaging protocol complete (failure).
8 The Agent does not support SIF_CancelRequests. Messaging protocol complete (success).
Table 4.2.1.5-1: SIF_CancelRequests Protocol

4.2.2 ZIS Message Handling Protocols

This section documents how Zone Integration Servers should respond to incoming messages, and the resulting post-conditions upon success or failure, along with any necessary steps to take.

Note that in handling any SIF_Message, the ZIS can return a SIF_Ack with SIF_Status/SIF_Code 8 (receiver is sleeping) or 7 (already have this SIF_MsgId from you) if a duplicate message is detected. These responses are omitted from the handling protocols below.

4.2.2.1 SIF_Message

When a message is received, the ZIS should first validate the XML message. If the message is not SIF_Register, the ZIS should determine whether the sender is registered in the zone. If errors are found, a SIF_Ack with a SIF_Error element should be returned to the caller and no further processing should occur. If no errors are found, message processing proceeds according to message type. Subsequent message processing sections are assured of receiving well-formed and/or valid XML, and all non-SIF_Register message processing sections are assured that the agent is indeed registered with the zone.

StepProcessFlow Control
1Validate incoming XML message. Message validation is optional. The Version attribute of SIF_Message can be used to indicate the appropriate message definition.If not performing message validation, go to Step 3 if XML is well-formed. If performing message validation, go to Step 3 if message is well-formed and valid.
2Prepare a SIF_Ack containing a SIF_Error element. (Note that if XML is not well-formed, or invalid and the well-formed XML is not made available by the XML parser, SIF_SourceId and SIF_MsgId will not be available from the incoming XML message. If this is the case, include SIF_OriginalSourceId and SIF_OriginalMsgId in the SIF_Ack as empty elements with xsi:nil set to true as necessary to indicate the current message.) Set SIF_Error/SIF_Category to indicate XML Validation and place the appropriate error code and description in SIF_Error/SIF_Code and SIF_Error/SIF_Desc. Place any additional parser information into SIF_Error/SIF_ExtendedDesc. Return the SIF_Ack to caller. If it can be determined the message is a SIF_Response, see SIF_Response Handling below, Step 13, to send an error SIF_Response to the requester.Stop processing this message.
3Examine the Version attribute of the message.If the version is supported, go to Step 5.
4Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to Generic Message Handling, indicating that the message is not supported in SIF_Error/SIF_Code and SIF_Error/SIF_Desc. Return the SIF_Ack to the caller. If this message is a SIF_Response, see SIF_Response Handling below, Step 13, to send an error SIF_Response to the requester.Stop processing this message.
5Examine message's SIF_Header to retrieve the SIF_SourceId and the message to get the message type. If message type is not SIF_Register, determine if the sender identified by SIF_SourceId is registered.If message type is SIF_Register or if the sender's SIF_SourceId is registered, go to Step 7.
6Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to Access and Permissions, indicating that the sender is not registered in SIF_Error/SIF_Code and SIF_Error/SIF_Desc. Return the SIF_Ack to the caller. If this message is a SIF_Response, see SIF_Response Handling below, Step 13, to send an error SIF_Response to the requester.Stop processing the message.
7Forward message to the proper handler based on the message type.
Table 4.2.2.1-1: SIF_Message Handling

4.2.2.2 SIF_Register

Before an agent can participate in a zone, it must register itself in order to provide the data that the ZIS needs to interact with the agent. This process is handled using a SIF_Register message.

StepProcessFlow Control
1If ZIS implementation limits SIF_SourceId values in some way, examine SIF_SourceId and determine whether it is valid.If implementation allows any SIF_SourceId or if the SIF_SourceId is valid, go to Step 3.
2Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Registration and SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate that SIF_SourceId is invalid. Return the SIF_Ack to the caller.Stop processing this message.
3If ZIS implementation requires previous permissions to register, examine SIF_SourceId and determine whether sender is permitted to register.If implementation allows any sender to register or if sender is permitted to register, go to Step 5.
4Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Access and Permissions and SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the lack of permission to register. Return the SIF_Ack to the caller.Stop processing this message.
5Examine SIF_Version element(s) and determine if the ZIS can handle the version(s).Go to Step 7 if the ZIS can handle the SIF version(s) specified by agent.
6Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Registration and SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate that the ZIS cannot handle SIF messages in a version requested. Place the unsupported version in SIF_Error/SIF_ExtendedDesc. Return the SIF_Ack to the caller.Stop processing this message.
7Examine SIF_MaxBufferSize and verify that it is greater than or equal to the minimum value for the ZIS.Go to Step 9 if SIF_MaxBufferSize is large enough.
8Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Registration and SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate that the SIF_MaxBufferSize is too small to be supported by the ZIS. Return the SIF_Ack to the callerStop processing this message.
9If the supplied value of SIF_Mode is Push, verify that the SIF_Protocol element is provided and that the protocol information appears sufficient for contacting the agent in Push mode and that the ZIS supports the Accept-Encoding SIF_Protocol/SIF_Property, if specified.Go to Step 11 if SIF_Mode is Pull or SIF_Protocol information appears valid.
10Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Registration and SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate that the protocol is not supported, a secure transport is required, or that the ZIS does not support the supplied Accept-Encoding value. Return the SIF_Ack to the caller.Stop processing this message.
11Store data from the SIF_Register message into the agent's database profile.
12Prepare a SIF_Ack containing a SIF_Status element indicating success, placing the agent's access control permissions in SIF_Status/SIF_Data/SIF_AgentACL. Return the SIF_Ack to the caller.Stop processing this message.
Table 4.2.2.2-1: SIF_Register Handling

An agent may also send the SIF_Register message when already registered. In this case, the ZIS should re-register the agent in the same manner as defined for initial registration. Any existing provision and subscription entries, as well as any pending messages, maintained by the ZIS for the agent should remain intact. Upon successful re-registration, any new or updated registration settings for the agent, including push mode protocol information, take effect after the ZIS has returned a successful SIF_Ack for the SIF_Register message.

4.2.2.3 SIF_Unregister

When an agent is going be removed from a Zone, the agent must send a SIF_Unregister message. When a ZIS receives this message from an agent, it performs those steps—ignoring SIF_Ack preparation and delivery—outlined for the SIF_Unprovide and SIF_Unsubscribe messages for any agent provisions or subscriptions, respectively. The ZIS then discards any messages pending for the agent. The ZIS will also remove any registration information and remove the agent from its list of registered agents.

It is recommended that the ZIS not remove access control data from its database as a replacement agent may be installed. Keeping the access permissions is optional, however.

StepProcessFlow Control
1Examine message and retrieve the SIF_SourceId of the message. The ZIS must remove the agent from its list of registered agents. Perform SIF_Unprovide functionality for any objects the agent is providing. Perform SIF_Unsubscribe functionality for any objects to which the agent is subscribed. Discard any pending messages for the agent.
2Prepare a SIF_Ack containing a SIF_Status element indicating success. Return the SIF_Ack to caller.Stop processing the message.
Table 4.2.2.3-1: SIF_Unregister Handling

4.2.2.4 SIF_Provide

An agent makes an object available to be requested by a process called Provision that is represented by the SIF_Provide message.

The SIF_Provide message can contain provision requests for multiple objects. The ZIS must treat all of the objects as a set; if there is an error with one of the objects then there should be no change to the Providers database.

StepProcessFlow Control
1Prepare a SIF_Ack.Go to Step 3.
2Examine the message to determine whether any more objects are being provided.Go to Step 11 if there are no further object provisions to process for this message.
3Retrieve the name of the next object to be provided. If not otherwise performed in initial message validation, check whether the object name is valid (e.g. valid/supported object, not SIF_ZoneStatus).If object name is valid, go to Step 5.
4Add a SIF_Error element to the SIF_Ack. Set SIF_Error/SIF_Category to indicate Provision and set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the object is invalid. Place the name of the invalid object in SIF_Error/SIF_ExtendedDesc.Go to Step 14.
5If no SIF_Context is specified, the context is SIF_Default. Otherwise check that each SIF_Context supplied in SIF_Contexts is supported.If they are all supported, go to Step 7.
6Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Generic Message Handling. Set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate a context is not supported. Place the name of the context in SIF_Error/SIF_ExtendedDesc.Go to Step 14.
7Using the SIF_SourceId, consult the ACL to determine if the sender has the proper access and permissions for this object in each of the specified contexts.If sender has the proper access and permissions, go to Step 9.
8Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Access and Permissions. Set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the sender lacks permission to provide this object. Place the name of the object in SIF_Error/SIF_ExtendedDesc.Go to Step 14.
9Check the Providers database to see if this object has already been provided in the contexts specified.If the object does not have a provider in the contexts specified, go to Step 11.
10Is the current provider the same as the SIF_SourceId of this message?If the provider differs from the SIF_SourceId of this message, go to Step 14. Otherwise go to Step 2.
11Add a record in the Providers database to indicate that SIF_SourceId is the provider of this object in the given contexts. If an error occurs, add a SIF_Error element to the SIF_Ack.If an error occurs, go to Step 13; otherwise go to Step 2.
12Add a SIF_Error element to the SIF_Ack. Set SIF_Error/SIF_Category to indicate Provision and set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate that the object already has a provider. Place the name of the provider in SIF_Error/SIF_ExtendedDesc.Go to Step 14.
13Add a SIF_Status element indicating success to the SIF_Ack. Return the SIF_Ack to the caller.Stop processing the message.
14Undo all changes to the Providers database. Return the SIF_Ack to the caller.Stop processing the message.
Table 4.2.2.4-1: SIF_Provide Handling

4.2.2.5 SIF_Unprovide

If an agent wishes to withdraw an object previously provided, the SIF_Unprovide message is used.

The SIF_Unprovide message can contain multiple objects. The ZIS must treat all of the objects as a set; if there is an error with one of the objects then there should be no change to the Providers database.

StepProcessFlow Control
1Prepare a SIF_Ack.Go to Step 3.
2Examine the message to determine whether any more objects are being unprovided.Go to Step 7 if there are no further objects to process for this message.
3Examine the message and retrieve the name of an object to be unprovided. If not otherwise performed in initial message validation, check whether the object name is valid (e.g. valid/supported object, not SIF_ZoneStatus).Go to Step 5 if the object name is valid.
4Add a SIF_Error element to the SIF_Ack. Set SIF_Error/SIF_Category to indicate Provision and set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the object is invalid. Place the name of the invalid object in SIF_Error/SIF_ExtendedDesc.Go to Step 10.
5If no SIF_Context is specified, the context is SIF_Default. Otherwise check that each SIF_Context supplied in SIF_Contexts is supported.If they are all supported, go to Step 7.
6Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Generic Message Handling. Set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate a context is not supported. Place the name of the context in SIF_Error/SIF_ExtendedDesc.Go to Step 10.
7If it exists, remove the records in the Providers database that marks SIF_SourceId as the provider of this object for the given contexts. If an error occurs, add a SIF_Error element to the SIF_Ack.If an error occurs, go to Step 10.
8Leave all pending SIF_Requests for the object in the responder's queue, as they may include SIF_Requests routed explicitly to the responder using SIF_DestinationId.Go to Step 2.
9Add a SIF_Status element indicating success to the SIF_Ack. Return the SIF_Ack to the callerStop processing the message.
10Undo all changes to the Providers database. Return the SIF_Ack to the caller.Stop processing the message.
Table 4.2.2.5-1: SIF_Unprovide Handling

4.2.2.6 SIF_Subscribe

An agent requests to receive SIF_Events for an object by a process called Subscription that is represented by the SIF_Subscribe message.

The SIF_Subscribe message can contain subscription requests for multiple objects. The ZIS must treat all of the objects as a set, if there is an error with one of the objects then there should be no change to the Subscribers database.

StepProcessFlow Control
1Prepare a SIF_Ack.Go to Step 3.
2Examine the message to determine whether any more subscriptions need to be processed.Go to Step 9 if there are no further subscriptions to process in this message.
3Retrieve the name of the next object to be subscribed to. If not otherwise performed in initial message validation, check whether the object name is valid (e.g., valid/supported object with events reported).If the object name is valid, go to Step 5.
4Add a SIF_Error element to the SIF_Ack. Set SIF_Error/SIF_Category to indicate Subscription and set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the object is invalid. Place the name of the invalid object in SIF_Error/SIF_ExtendedDesc.Go to Step 12.
5If no SIF_Context is specified, the context is SIF_Default. Otherwise check that each SIF_Context supplied in SIF_Contexts is supported.If they are all supported, go to Step 7.
6Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Generic Message Handling. Set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate a context is not supported. Place the name of the context in SIF_Error/SIF_ExtendedDesc.Go to Step 12.
7Using the SIF_SourceId, consult the ACL to determine if the sender has the proper access and permissions for this object and contexts.If sender has the proper access and permissions, go to Step 9.
8Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Access and Permissions. Set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the sender lacks permission to subscribe to this object. Place the name of the object in SIF_Error/SIF_ExtendedDesc.Go to Step 12.
9Check the Subscribers database to see if the caller is already subscribed to this object for the specified contexts.If the caller is already subscribed to this object, go to Step 2.
10Add a record in the Subscribers database to indicate that SIF_SourceId is a subscriber of this object's SIF_Events in the specified contexts. If an error occurs, add a SIF_Error element to the SIF_Ack.If an error occurs go to Step 12; otherwise go to Step 2.
9Add a SIF_Status element indicating success to the SIF_Ack. Return the SIF_Ack to the caller.Stop processing the message.
12Undo all changes to the Subscribers database. Return the SIF_Ack to the caller.Stop processing the message.
Table 4.2.2.6-1: SIF_Subscribe Handling

4.2.2.7 SIF_Unsubscribe

If an agent wishes to cancel one or more subscriptions, the SIF_Unsubscribe message is used. Events already queued for delivery prior to unsubscription will be delivered.

The SIF_Unsubscribe message can contain subscription requests for multiple objects. The ZIS must treat all of the objects as a set, if there is an error with one of the objects then there should be no change to the Subscribers database.

StepProcessFlow Control
1Prepare a SIF_Ack.Go to Step 3.
2Examine the message to determine whether any more unsubscriptions need to be processed.Go to Step 6 if there are no further objects to process in the message.
3Retrieve the name of the next object. If not otherwise performed in initial message validation, check whether the object name is valid (e.g. valid/supported object with events reported).If the object name is valid, go to Step 5.
4Add a SIF_Error element to the SIF_Ack. Set SIF_Error/SIF_Category to indicate Subscription and set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the object is invalid. Place the name of the invalid object in SIF_Error/SIF_ExtendedDesc.Go to Step 9.
5If no SIF_Context is specified, the context is SIF_Default. Otherwise check that each SIF_Context supplied in SIF_Contexts is supported.If they are all supported, go to Step 7.
6Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Generic Message Handling. Set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate a context is not supported. Place the name of the context in SIF_Error/SIF_ExtendedDesc.Go to Step 12.
7If it exists, remove the record in the Subscribers database that marks SIF_SourceId as a subscriber of this object's SIF_Events in the specified contexts. If an error occurs, add a SIF_Error element to the SIF_Ack.If an error occurs go to Step 9, otherwise go to Step 2.
8Add a SIF_Status element indicating success to the SIF_Ack. Return the SIF_Ack to the caller.Stop processing the message.
9Undo all changes to the Subscribers database. Return the SIF_Ack to the caller.Stop processing the message.
Table 4.2.2.7-1: SIF_Unsubscribe Handling

4.2.2.8 SIF_Provision

An Agent is registering its support for various messages with regard to various objects. Settings supplied replace any previously recorded settings for the Agent.

StepProcessFlow Control
1Prepare SIF_Ack. 
2Process SIF_ProvideObjects as provide.On error go to step 13.
3Process objects not in SIF_ProvideObjects as unprovide.On error go to step 13.
4Process SIF_SubscribeObjects as subscribe.On error go to step 13.
5Process objects not in SIF_SubscribeObjects as unsubscribe.On error go to step 13.
6Process SIF_PublishAddObjects.On error go to step 13.
7Process SIF_PublishChangeObjects.On error go to step 13.
8Process SIF_PublishDeleteObjects.On error go to step 13.
9Process SIF_RequestObjects.On error go to step 13.
10Process SIF_RespondObjects.On error go to step 13.
11Save changes. 
12Return success SIF_Ack.Stop processing.
13Roll back any changes. 
14Return error SIF_Ack.Stop processing.
Table 4.2.2.8-1: SIF_Provision Handling

4.2.2.9 SIF_Event

When an application has made a change in an object that is part of the Zone and for which the application has declared the ability to generate SIF_Events, the agent will send a SIF_Event message to its Zone Integration Server so the framework may distribute it.

StepProcessFlow Control
1Examine message and retrieve the name of the object. Check whether the object name is valid (e.g. valid/supported object with events reported).If object name is valid, go to Step 3.
2Add a SIF_Error element to the SIF_Ack. Set SIF_Error/SIF_Category to indicate Event Reporting and set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the event is invalid. Place the name of the invalid object in SIF_Error/SIF_ExtendedDesc. Return the SIF_Ack to the caller.Stop processing the message.
3If no SIF_Context is specified, the context is SIF_Default. Otherwise check that each SIF_Context supplied in SIF_Contexts is supported.If they are all supported, go to Step 5.
4Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Generic Message Handling. Set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate a context is not supported. Place the name of the context in SIF_Error/SIF_ExtendedDesc. Return the SIF_Ack to the caller.Stop processing the message.
5Using the SIF_SourceId, consult the ACL to determine if the sender has the proper access and permissions for this object in the specified contexts.If sender has the proper access and permissions, go to Step 7.
6Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Access and Permissions. Set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the sender lacks permission to publish events pertaining to this object (use general SIF_Event error code, or specific Add, Change, Delete codes). Place the name of the object in SIF_Error/SIF_ExtendedDesc. Return the SIF_Ack to the caller.Stop processing the message.
7Check the Subscriber database to see if there are any subscribers in the specified contexts for the SIF_Event.Go to Step 9 if there are no subscribers for this object.
8 Create a new message for this SIF_Event and place a copy into each subscribing agent's queue. If more than one context is specified for the event, only one copy of the event is placed in the subscribing agent's queue. If the event cannot be placed into an individual agent's queue due to the agent's maximum buffer size or because the subscribing agent does not support the message version of the SIF_Event, it is recommended that the ZIS log the inability to deliver the event. In addition, the ZIS MUST report a SIF_LogEntry event with the appropriate error category and code, containing a copy of the SIF_Header from the original message. SIF_LogEntry/SIF_Desc must contain the SourceId of the agent that has failed to receive the message.
9Prepare a SIF_Ack containing a SIF_Status element indicating success. Return a SIF_Ack to the caller.Stop processing the message.
Table 4.2.2.9-1: SIF_Event Handling

4.2.2.10 SIF_Request

When an agent needs information from a Zone context it sends a SIF_Request message to the ZIS. If the SIF_Request's header does not contain a SIF_DestinationId element, the ZIS will route the message to the Provider of the object referenced in the SIF_Request. If the header contains a SIF_DestinationId, the ZIS will route the message to the application referenced in the SIF_DestinationId if the security policies of the zone permit such routing. The ZIS will return a SIF_Ack message to the requesting agent to indicate whether or not it was able to process the SIF_Request message.

After the ZIS returns a success SIF_Ack to the requester, the ZIS will route the SIF_Request to the responder and the requesting agent may expect to receive one or more SIF_Response messages sent by the responder. However, the responder may not be currently on-line or it may not be able to immediately satisfy the SIF_Request. Therefore, requesting agents must not depend upon a timely response to their SIF_Request.

If the ZIS returns an error SIF_Ack, the requesting agent will not receive any SIF_Response messages from a responder.

StepProcessFlow Control
1Prepare a SIF_Ack.
2Retrieve the name of the object from the ObjectName attribute of SIF_Query/SIF_QueryObject and check whether it's a valid/supported object.Go to Step 4 if the object name is valid.
3Add a SIF_Error element to the SIF_Ack. Set SIF_Error/SIF_Category to indicate Request and Response and set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the object name is invalid. Place the name of the invalid object in SIF_Error/SIF_ExtendedDesc. Return the SIF_Ack to the caller.Stop processing the message.
4If no SIF_Context is specified, the context is SIF_Default. Otherwise check that the context supplied in SIF_Contexts is supported. If more than one context is specified, go to Step 5.If the context is supported, go to Step 6.
5Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Generic Message Handling. Set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate a specified context is not supported or that multiple contexts are not supported, depending on the error. Place the name of the context in SIF_Error/SIF_ExtendedDesc. Return the SIF_Ack to the caller.Stop processing the message.
6Using the SIF_SourceId, consult the ACL to determine if the sender has the proper access and permissions for this object in the applicable contexr.If sender has the proper access and permissions, go to Step 8.
7Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Access and Permissions. Set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the sender lacks permission to request this object. Place the name of the object in SIF_Error/SIF_ExtendedDesc. Return the SIF_Ack to the caller.Stop processing the message.
8Examine the SIF_Request header looking for a SIF_DestinationIdGo to Step 11 if a SIF_DestinationId was located.
9No SIF_DestinationId was found. Examine the Providers database to locate the responder for the requested object in the applicable context.Go to Step 12 if a Provider was located.
10Add a SIF_Error element with the SIF_Error/SIF_Category set to indicate Request and Response and SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate that no provider was found. Return the SIF_Ack to the caller.Stop processing the message.
11A SIF_DestinationId was specified indicating the responder. Confirm that the agent specified in SIF_DestinationId has permission to send SIF_Response messages for the requested data object in the applicable context.Go to Step 10 if the agent does not have the necessary permission.
12If it can be determined from ACL settings or settings recorded by SIF_Provision and/or SIF_Provide that the Responder cannot handle a SIF_Query for a given object or SIF_ExtendedQuery for any referenced object, or that the Responder doesn't handle extended queries in general, add a SIF_Error element with the applicable SIF_Error/SIF_Category and SIF_Error/SIF_Code (object not supported, query not supported, or SIF_ExtendedQuery not supported). Place an appropriate error message in SIF_Desc and/or SIF_ExtendedDesc. Return the SIF_Ack to the caller.Stop processing the message.
13 Deposit the SIF_Request in the responder's queue. If the request cannot be placed into an individual agent's queue due to the agent's maximum buffer size or because the destination agent does not support the message version of the SIF_Request, it is recommended that the ZIS log the inability to deliver the request. In addition, the ZIS MUST report a SIF_LogEntry event with the appropriate error category and code, containing a copy of the SIF_Header from this message. SIF_LogEntry/SIF_Desc MUST contain the SourceId of the agent that has failed to receive the request.
14Return a SIF_Ack, with SIF_Status set to 0, to the caller to indicate that SIF_Request has been sent.Stop processing the message.
Table 4.2.2.10-1: SIF_Request Handling

4.2.2.11 SIF_Response

When receiving a SIF_Response packet from an agent responding to a SIF_Request, the ZIS MUST perform the validation protocol below.

StepProcessFlow Control
1Prepare a SIF_Ack.
2Using the supplied SIF_RequestMsgId, look up the SIF_Request that initiated this response. Go to Step 4 if the SIF_Request is found.
3Add a SIF_Error element to the SIF_Ack. Set SIF_Error/SIF_Category to indicate Request and Response and set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the SIF_RequestMsgId is invalid. Place SIF_RequestMsgId in SIF_Error/SIF_ExtendedDesc. Return the SIF_Ack to the caller.Stop processing the message.
4Examine the SIF_MaxBufferSize specified in the SIF_Request message and compare it to the size of the SIF_Response packet.If the SIF_Response packet is smaller than or equal to the SIF_MaxBufferSize specified in the original request, go to Step 6.
5Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate indicate Request and Response. Set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the SIF_MaxBufferSize is incorrect. Place a description of the SIF_MaxBufferSize and the actual size of the message received in SIF_Error/SIF_ExtendedDesc. Return the SIF_Ack to the caller.Go to step 13.
6Examine the SIF_DestinationId specified in the SIF_Response and compare it to the SIF_SourceId of the original request.If the SIF_DestinationId is correct, go to Step 8.
7Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate indicate Request and Response. Set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the SIF_DestinationId is incorrect. Place a description of the SIF_DestinationId specified and the SIF_DestinationId expected in SIF_Error/SIF_ExtendedDesc. Return the SIF_Ack to the caller.Go to step 13.
8Examine the SIF_PacketNumber specified in the SIF_Response. If this is the first SIF_Response packet received, the SIF_PacketNumber must be set to a value of 1. Subsequent packets must be received in order with the SIF_PacketNumber set to 1 + the previous SIF_PacketNumber.If the SIF_PacketNumber is correct, go to Step 10.
9Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate indicate Request and Response. Set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the SIF_PacketNumber is incorrect. Place a description of the SIF_PacketNumber specified and the SIF_PacketNumber expected in SIF_Error/SIF_ExtendedDesc. Return the SIF_Ack to the caller.Go to step 13.
10Examine the SIF_Version specified in the SIF_Response and compare it to the SIF_Versions allowed in the original request.If the SIF version matches one of the SIF Versions requested in the SIF_Request, go to Step 12.
11Prepare a SIF_Ack containing a SIF_Error element. Set SIF_Error/SIF_Category to indicate Request and Response. Set SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the SIF_Version is incorrect. Place a description of the version of the SIF_Response and versions allowed by the SIF_Request in SIF_Error/SIF_ExtendedDesc. Return the SIF_Ack to the caller.Go to step 13.
12Place the SIF_Response packet in the requesting agent's queue.Message processing is complete. Stop processing the message.
13

Prepare a SIF_Response message with SIF_DestinationId set to SIF_SourceId and SIF_RequestMsgId set to SIF_MsgId from the SIF_Request message.

Add a SIF_Error element with the SIF_Error/SIF_Category set to indicate Request and Response and SIF_Error/SIF_Code and SIF_Error/SIF_Desc to indicate the reason that the SIF_Response packet was rejected.

Add SIF_PacketNumber with a value set to set to 1 + the previous SIF_PacketNumber and SIF_MorePackets to No.

Send the SIF_Response to the original requester. In addition, the ZIS MUST report a SIF_LogEntry event with the appropriate error category and code, containing a copy of the SIF_Header from the request. SIF_LogEntry/SIF_ExtendedDesc should contain information about why the message failed SIF_Response validation.

Stop processing the message.

The ZIS must also guarantee that no additional SIF_Response packets for this SIF_Request will be accepted. Depending on the implementation, the ZIS may need to alter the SIF_Request cache it maintains to signal that the SIF_Request is no longer valid.

The ZIS may remove the SIF_Request from the cache as the stream is closed.

Table 4.2.2.11-1: SIF_Response Handling
4.2.2.11.1 Implementation Notes

The ZIS must maintain a reliable list of all open SIF_Requests in order to satisfy the Quality of Service validations that are applied to SIF_Responses above. It is envisioned that once a SIF_Response has been completed, either by receiving the last packet or by failing one of the validations applied below, knowledge of the initiating SIF_Request will no longer need to be maintained by the ZIS. If the responding agent attempts to send any more SIF_Responses for a failed SIF_Request, it will automatically fail at Step 2 and get the error response specified in Step 3. Notification of the failed SIF_Response would have already been sent to the requesting agent.

There remain three cases where a requesting agent will not receive a complete SIF_Response for a request.

  1. The responding agent never replies with a SIF_Response.
  2. The responding agent starts replying, but never finishes the SIF_Response by sending a SIF_Response with the SIF_MorePackets element set to "No".
  3. The responding agent attempts a reply with a SIF_Response but the ZIS is unable to parse the message enough to read the SIF_RequestMsgId. If this case occurs, and the responding agent sends a subsequent SIF_Response that is parseable, it is likely that the requesting agent will be notified of the problem because subsequent SIF_Response packets will not pass the SIF_PacketNumber validation.

Management of the SIF_Request cache that is maintained by the ZIS is left up to the ZIS implementation. The ZIS is required to maintain the SIF_Requests for a reasonable amount of time. If the ZIS eventually removes SIF_Requests that have been cached for a long period of time, that option must be able to be configured by the ZIS administrator.

When an open request cache entry is removed by the administrator or a timeout of the record, the ZIS should publish a SIF_LogEntry and a SIF_Response/SIF_Error indicating the reason it was removed.

4.2.2.12 SIF_Ping

An Agent is pinging your ZIS to see if it is reachable, "awake" and/or processing messages.

StepProcessFlow Control
1 Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Zone ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. If your ZIS is "awake," include a SIF_Status element with a SIF_Code of 0 (success). Otherwise you may optionally notify the Agent that your ZIS is asleep by returning a SIF_Code of 8 (receiver is sleeping).  
2 Return the SIF_Ack to the Agent. Message processing complete (success).
Table 4.2.2.12-1: SIF_Ping Handling

4.2.2.13 SIF_Sleep

The Agent wants its state changed to "asleep." Upon successful state change, your ZIS SHOULD avoid sending messages to a Push-Mode Agent until receipt of a SIF_Wakeup message or that Agent re-registers, or be prepared to handle transport errors or the aforementioned acknowledgement. Whether the Agent is registered in Push or Pull mode, this state is communicated to other Agents in SIF_ZoneStatus and MUST be persisted accordingly. In addition to sending a SIF_Wakeup or SIF_Register, a Pull-Mode Agent can also change its state to "awake" by sending a SIF_GetMessage.

StepProcessFlow Control
1 Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Zone ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Include a SIF_Status element with a SIF_Code of 0 (success). Change the state of the Agent to "asleep."  
2 Return the SIF_Ack to the Agent. Message processing complete (success).
Table 4.2.2.13-1: SIF_Sleep Handling

4.2.2.14 SIF_Wakeup

An Agent wants its state changed to "awake," notifying the ZIS and other Agents of the state change. A ZIS MUST persist this state in order to communicate it to other Agents via SIF_ZoneStatus. When a Push-Mode Agent changes its state to "awake," the ZIS may also resume delivery of queued messages to the Agent.

StepProcessFlow Control
1 Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Zone ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Include a SIF_Status element with a SIF_Code of 0 (success). Change the Agent's state to "awake."  
2 Return the SIF_Ack to the Agent. Message processing complete (success).
Table 4.2.2.14-1: SIF_Wakeup Handling

4.2.2.15 SIF_GetZoneStatus

An Agent is requesting the status of the zone.

StepProcessFlow Control
1 Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Zone ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Include a SIF_Status element with a SIF_Code of 0 (success). Reflect the current state of the zone in SIF_Status/SIF_Data/SIF_ZoneStatus.  
2 Return the SIF_Ack to the Agent. Message processing complete (success).
Table 4.2.2.15-1: SIF_GetZoneStatus Handling

4.2.2.16 SIF_GetAgentACL

An Agent is requesting its access control permissions.

StepProcessFlow Control
1 Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Zone ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Include a SIF_Status element with a SIF_Code of 0 (success). Communicate the Agent's ACL permissions in SIF_Status/SIF_Data/SIF_AgentACL.  
2 Return the SIF_Ack to the Agent. Message processing complete (success).
Table 4.2.2.16-1: SIF_GetZoneStatus Handling

4.2.2.17 SIF_CancelRequests

If an Agent abandons or restarts a data collection using SIF_Requests, whether or not the response stream has started, it is RECOMMENDED that it send one or more SIF_CancelRequests messages to the ZIS. Upon receipt of the SIF_CancelRequests message, the ZIS deletes corresponding SIF_Request messages from Agent queues and deletes its own state/tracking information regarding each request. Doing the latter ensures that if a Responder is still processing a request, the ZIS effectively ends the response stream upon receipt of the next SIF_Response packet by returning a SIF_Error with a SIF_Category of 8 (Request and Response Error) and a SIF_Code of 10 (invalid SIF_RequestMsgId specified in SIF_Response). No changes to responding Agent behaviors are required as all agents in the SIF 2.x lifecycle have the capability to handle this error state.

When cancelling SIF_Requests, the ZIS also has the ability to send a SIF_CancelRequests message to Push-Mode Agents. Pull-Mode Responders cannot receive these messages, but any pending response handling is cancelled per the ZIS behavior above. When dealing with Push-Mode Agents, ZIS implementations must bear in mind that support for this message is optional for Push-Mode Agents.

When a cancelling Agent specifies a NotificationType of Standard, it is the responsibility of the ZIS to end the response stream to the requesting Agent by sending a SIF_Response packet with a SIF_MorePackets of No on the Responder's behalf.

StepProcessFlow Control
1 Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Zone ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. Include a SIF_Status element with a SIF_Code of 0 (success). Return the SIF_Ack to the Agent. (There are no error return values that apply to this message.) Go to Step 2.
2 For each SIF_RequestMsgId element, perform the following steps. If all SIF_RequestMsgId elements have been processed, processing is complete.
3 Using the supplied SIF_RequestMsgId, look up the SIF_Request that initiated this response. Go to Step 2 if the SIF_Request is not found, or has already been completed with a "final" SIF_Response packet (SIF_MorePackets = No).
4 Examine the SIF_SourceId specified in the SIF_Request message and compare it to the SIF_SourceId in the SIF_SystemControl message. If the SIF_SourceId is not the same, go to Step 2.
5 Close out the SIF_Request tracking state for the request so that no further tracking is performed.  
6 If the responding Agent has already received the request and is running in Push mode, send a SIF_CancelRequests message to that Agent. (Note: This could also be accomplished by packaging up all SIF_RequestMsgIds that apply to the same responding Agent and sending a single SIF_CancelRequests message.)  
7 Examine the value of SIF_NotificationType. If set to Standard, go to Step 8. If set to None, go to Step 10.
8 Prepare a SIF_Response message with SIF_DestinationId set to SIF_SourceId and SIF_RequestMsgId set to SIF_MsgId from the SIF_Request message.  
9

Add a SIF_Error element with the SIF_Category set to indicate Request and Response, with SIF_Code and SIF_Desc indicating 18 (SIF_Request cancelled by requesting agent).

Add SIF_PacketNumber with a value set to the previous SIF_PacketNumber + 1. Set SIF_MorePackets to No.

Place the SIF_Response in the requester's queue.

 
10 Determine if there are any more SIF_RequestMsgId elements left to process. Go to Step 2 if there are more SIF_RequestMsgId elements, otherwise processing is complete.
Table 4.2.2.17-1: SIF_CancelRequests Handling

4.2.2.18 SIF_GetMessage

A Pull-Mode Agent is requesting the next message in its queue.

StepProcessFlow Control
1 Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Zone ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. Place the incoming SIF_Header/SIF_SourceId and SIF_Header/SIF_MsgId in SIF_OriginalSourceId and SIF_OriginalMsgId, respectively. If the Agent sending SIF_GetMessage is registered as a Pull-Mode Agent, go to step 3.  
2 The Agent is a Push-Mode Agent and is not allowed to send SIF_GetMessage. Include a SIF_Error/SIF_Category of 5 (Registration) and a SIF_Error/SIF_Code of 9 (Agent is registered in Push mode). Populate SIF_Desc and optionally SIF_ExtendedDesc as desired. Return the SIF_Ack to the Agent. Message processing complete.
3 If the recorded state of the Pull-Mode Agent is "asleep," change that state to "awake." Is there a message available in the Agent's message queue, subject to Selective Message Blocking? If yes, go to step 5.  
4 There is no message currently available for the Agent. Include a SIF_Status/SIF_Code of 9 (no messages available). Return the SIF_Ack to the Agent. Message processing complete.
5 The next available message in the Agent's queue, subject to Selective Message Blocking, can be delivered (it will be removed from the queue later per successful handling of a SIF_Ack from the Pull-Mode Agent). If SIF_Security is specified on the message and the connection from the Pull-Mode Agent does not meet the specified minimum encryption and/or authentication levels, or if the connection does not meet minimum encryption/authentication levels in the Zone, remove the message from the Agent's queue and return an appropriate SIF_Error. Otherwise include a SIF_Status/SIF_Code of 0 (success) and place the message in SIF_Status/SIF_Data. Message processing complete.
Table 4.2.2.18-1: SIF_GetMessage Handling

4.2.2.19 SIF_Ack (from a Push-Mode Agent)

A Push-Mode Agent is sending a final SIF_Ack to end Selective Message Blocking (SMB).

StepProcessFlow Control
1Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Zone ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. 
2Is SIF_Status/SIF_Code 3 (final SIF_Ack)?If yes, go to Step 3.
2

The Agent has violated protocol. End SMB if it has been invoked by the Agent and remove the blocked SIF_Event from the Agent's queue. Indicate SIF_Error/SIF_Category of 13 (SMB Error) and SIF_Error/SIF_Code  3 (final SIF_Ack expected).

It is RECOMMENDED that your ZIS log the error. Your ZIS MAY post a SIF_LogEntry  Add event with the same error category and code above, containing a copy of the SIF_Header of the message.

Return the SIF_Ack to the Agent. Message handling complete (error).
3 Does SIF_OriginalMsgId match the SIF_MsgId for the SIF_Event that was blocked in SMB, if any? If yes, go to Step 5.
4

The Agent has violated protocol. As there can be only one event blocked by SMB, end SMB for the agent and remove the blocked SIF_Event from the Agent's queue, if any. Indicate SIF_Error/SIF_Category of 13 (SMB Error) and SIF_Error/SIF_Code  4 (incorrect SIF_MsgId in final SIF_Ack).

It is RECOMMENDED that your ZIS log the error. Your ZIS MAY post a SIF_LogEntry  Add event with the same error category and code above, containing a copy of the SIF_Header of the message.

Return the SIF_Ack to the Agent. Message handling complete (error).
5SMB has been ended by the Agent. Removed the blocked SIF_Event from the Agent's queue. Place 0 in SIF_Status/SIF_Code. Return the SIF_Ack to the Agent. Message handling complete (success).
Table 4.2.2.19-1: SIF_Ack Handling

4.2.2.20 SIF_Ack (from a Pull-Mode Agent)

A Pull-Mode Agent is acknowledging a message it has retrieved using SIF_GetMessage. This typically leads to the message in question being removed from the Agent's queue. The Agent may also invoke Selective Message Blocking when acknowledging an event, blocking delivery of subsequent SIF_Events until Selective Message Blocking is ended by the Agent.

StepProcessFlow Control
1Prepare a SIF_Ack message with SIF_Header containing a new GUID in SIF_MsgId, your Zone ID in SIF_SourceId and the current time in SIF_Timestamp; other SIF_Header elements do not apply. 
2Is SIF_Error present?If yes, go to Step 14.
3Is SIF_Status/SIF_Code 1 (immediate SIF_Ack)?If no, go to Step 5.
4If no message matches SIF_OriginalMsgId, set SIF_Error/SIF_Category to 12 (Generic Message Handling) and SIF_Error/SIF_Code to 6 (no such message). Otherwise remove the identified message from the Agent's queue and set SIF_Status/SIF_Code to 0.Return SIF_Ack. Message handling complete.
5Is SIF_Status/SIF_Code 2 (intermediate SIF_Ack)?If no, go to Step 7.
6If no message matches SIF_OriginalMsgId, set SIF_Error/SIF_Category to 12 (Generic Message Handling) and SIF_Error/SIF_Code to 6 (no such message). If the message identified is not a SIF_Event, set SIF_Category to 13 (SMB Error) and SIF_Code to 2 (SMB can only be invoked on a SIF_Event). Otherwise invoke SMB on the identified SIF_Event, persisting SIF_OriginalMsgId, and set SIF_Status/SIF_Code to 0. This event is blocked and all SIF_Events are frozen.Return SIF_Ack. Message handling complete.
7Is SIF_Status/SIF_Code 3 (final SIF_Ack)?If no, go to Step 9.
8If SMB has not been invoked or the message identified by SIF_OriginalMsgId doesn't exist or doesn't match the SIF_Event blocked by SMB, set SIF_Error/SIF_Category to 13 (SMB Error) and SIF_Error/SIF_Code to 4 (incorrect SIF_MsgId in final SIF_Ack). (In the case of SMB having been invoked but the message not matching, end SMB, remove the message blocked by SMB from the Agent's queue and unfreeze delivery of events.) Otherwise end SMB, remove the identified message from the Agent's queue and unfreeze delivery of events. Set SIF_Status/SIF_Code to 0.Return SIF_Ack. Message handling complete.
9Is SIF_Status/SIF_Code 7 (already have this SIF_MsgId from you)?If no, go to Step 11.
10The ZIS cannot correct this, as the SIF_MsgId originates from an Agent and can't be changed without other repercussions. Remove the message from the Agent's queue. Set SIF_Status/SIF_Code to 0.Return SIF_Ack. Message handling complete.
11Is SIF_Status/SIF_Code 8 (receiver is sleeping)?If no, go to Step 13.
12The Agent is stating it cannot process the message at this time; leave it as the next message to be delivered. Set SIF_Status/SIF_Code to 0.Return SIF_Ack. Message handling complete.
13

The Agent has violated protocol. Indicate SIF_Error/SIF_Category of 12 (Generic Message Handling Error) and SIF_Error/SIF_Code 5 (protocol error). of the message.

Return SIF_Ack. Message handling complete.
14 The Agent has indicated a SIF_Error condition. See Error Codes with SIF_Category and SIF_Code, and examine SIF_Desc and SIF_ExtendedDesc, if included. If SIF_Category does not indicate a transport error, remove the message from the Agent's queue. Otherwise it remains the next message to be delivered. Set SIF_Status/SIF_Code to 0.Return SIF_Ack. Message handling complete.
Table 4.2.2.20-1: SIF_Ack Handling

5 Infrastructure

This section presents the XML structure for Infrastructure common elements, messages and objects in a tabular format for readers less versed in parsing formal XML schema definitions.

The Char(acteristics) column for all of the tables in this section use the following codes:

CodeCharacteristic
MMandatory element or attribute
OOptional element or attribute
CConditional element or attribute
MRMandatory and repeatable element
OROptional and repeatable element
CRConditional and repeatable element

Mandatory elements and attributes MUST be provided in the Infrastructure messages in which they appear. Infrastructure data objects (SIF_ZoneStatus, SIF_AgentACL) can be subject to SIF's request/response and event models; when impacted by these models (in a SIF_Event or in a SIF_Response), these objects follow the same conventions as listed in Data Model.

5.1 Common Elements

5.1.1 SIF_Message

The SIF_Message element is the root element of all SIF messages.

SIF_Message
Figure 5.1.1-1: SIF_Message SIF_Message xmlns Version SIF_Ack SIF_Event SIF_Provide SIF_Provision SIF_Register SIF_Request SIF_Response SIF_Subscribe SIF_SystemControl SIF_Unprovide SIF_Unregister SIF_Unsubscribe
 Element/@AttributeCharDescriptionType
 SIF_Message 

Contains one of the SIF message types.

 
choice of:

SIF_Ack
SIF_Event
SIF_Provide
SIF_Provision
SIF_Register
SIF_Request
SIF_Response
SIF_Subscribe
SIF_SystemControl
SIF_Unprovide
SIF_Unregister
SIF_Unsubscribe
@xmlnsC

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/au/infrastructure/2.x . This XML namespace value will remain the same until the next major release of SIF (3.0).

Note that one SIF_Message may be contained within another when a ZIS delivers a Pull-Mode Agent's next message in a SIF_Ack response to a SIF_GetMessage from the Pull-Mode Agent. If the default namespace specified for the child SIF_Message is the same as the default namespace of the parent SIF_Message, the xmlns attribute for the child message MAY be omitted.

 
xs:anyURI
@VersionM

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.3. This attribute can be used by ZIS and agent implementations to choose schema files to validate the message's XML.

 
VersionType
Table 5.1.1-1: SIF_Message
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> ... </SIF_Message>
Example 5.1.1-1: SIF_Message

5.1.2 SIF_Header

SIF_Header is a common message header for all SIF messages.

SIF_Header
Figure 5.1.2-1: SIF_Header SIF_HeaderDataModelType SIF_MsgId SIF_Timestamp SIF_Security SIF_SecureChannel SIF_AuthenticationLevel SIF_EncryptionLevel SIF_SourceId SIF_DestinationId SIF_Contexts
 Element/@AttributeCharDescriptionType
 SIF_HeaderM

Header information associated with a message.

 
 
 SIF_MsgIdM

SIF_MsgId is a globally unique message identifier from the Agent or ZIS that sends out the message.

 
MsgIdType
 SIF_TimestampM

Timestamp of when the message was sent.

 
xs:dateTime
 SIF_SecurityO

This element allows an originating agent to specify security requirements that the ZIS must ensure upon delivery of the message to recipient agents. SIF_Security is only examined and processed by a ZIS on SIF_Request, SIF_Response and SIF_Event messages. In this version of the specification, SIF_Security is ignored on all other messages; its use on other messages is reserved for future versions of this specification.

 
 
 SIF_Security/SIF_SecureChannel
     
M

The originating agent uses this element to specify security requirements for the channel between the ZIS and any recipient agents at delivery time. The ZIS must ensure these requirements are met for this message when delivered to other agents.

 
 
 SIF_Security/SIF_SecureChannel/
     SIF_AuthenticationLevel
M

The minimum level of authentication required by the message originator to be considered a secure channel upon message delivery to other agents.

 
SIF_AuthenticationLevel
 SIF_Security/SIF_SecureChannel/
     SIF_EncryptionLevel
M

The minimum level of encryption required by the message originator to be considered a secure channel upon message delivery to other agents.

 
SIF_EncryptionLevel
 SIF_SourceIdM

The SIF_SourceId is the ID of the originator of the message. Each source needs to have a zone unique case-sensitive identifier.

 
xs:token
xs:maxLength64
 SIF_DestinationIdC

This element represents the ID of the recipient of the message and may be present as follows:

SIF_Response messages MUST have this element set to the SIF_SourceId of the originator of the SIF_Request message. The ZIS will use this information to route the SIF_Response to the requesting agent.

SIF_Request messages MAY have this element set to the ID of a specific agent if the requesting agent wishes to direct the SIF_Request to a specific responder. If present, the ZIS will route the SIF_Request to the agent referenced in the element subject to the access control policies in effect for the zone.

This element SHOULD NOT be used in any other SIF Infrastructure messages. If the element is present, it will be ignored by the ZIS.

 
xs:token
xs:maxLength64
 SIF_ContextsO

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.

 
SIF_Contexts
Table 5.1.2-1: SIF_Header
<SIF_Header> <SIF_MsgId>A3E90785EFDA330DACB00785EFDA330D</SIF_MsgId> <SIF_Timestamp>2006-02-18T14:30:00-05:00</SIF_Timestamp> <SIF_SourceId>RamseySIS</SIF_SourceId> </SIF_Header>
Example 5.1.2-1: SIF_Header
<SIF_Header> <SIF_MsgId>A3E90785EFDA330DACB00785EFDA330E</SIF_MsgId> <SIF_Timestamp>2006-03-11T08:39:49-08:00</SIF_Timestamp> <SIF_Security> <SIF_SecureChannel> <SIF_AuthenticationLevel>3</SIF_AuthenticationLevel> <SIF_EncryptionLevel>4</SIF_EncryptionLevel> </SIF_SecureChannel> </SIF_Security> <SIF_SourceId>RamseyLIB</SIF_SourceId> <SIF_DestinationId>RamseySIS</SIF_DestinationId> </SIF_Header>
Example 5.1.2-2: SIF_Header

5.1.3 SIF_EncryptionLevel

The minimum level of encryption required by the message originator to be considered a secure channel upon message delivery to other agents.

SIF_EncryptionLevel
Figure 5.1.3-1: SIF_EncryptionLevel SIF_EncryptionLevel
 Element/@AttributeCharDescriptionType
 SIF_EncryptionLevel 

The minimum level of encryption required by the message originator to be considered a secure channel upon message delivery to other agents.

 
values:
0
No encryption required
1
Symmetric key length of at least 40 bits is to be used
2
Symmetric key length of at least 56 bits is to be used
3
Symmetric key length of at least 80 bits is to be used
4
Symmetric key length of at least 128 bits is to be used
Table 5.1.3-1: SIF_EncryptionLevel

5.1.4 SIF_AuthenticationLevel

The minimum level of authentication required by the message originator to be considered a secure channel upon message delivery to other agents.

SIF_AuthenticationLevel
Figure 5.1.4-1: SIF_AuthenticationLevel SIF_AuthenticationLevel
 Element/@AttributeCharDescriptionType
 SIF_AuthenticationLevel 

The minimum level of authentication required by the message originator to be considered a secure channel upon message delivery to other agents.

 
values:
0
No authentication required and a valid certificate does not need to be presented.
1
A valid certificate must be presented.
2
A valid certificate from a trusted certificate authority must be presented.
3
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.
Table 5.1.4-1: SIF_AuthenticationLevel

5.1.5 SIF_Contexts

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.

SIF_Contexts
Figure 5.1.5-1: SIF_Contexts SIF_Contexts SIF_Context
 Element/@AttributeCharDescriptionType
 SIF_Contexts 

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.

 
List
 SIF_ContextMR SIF_Context
Table 5.1.5-1: SIF_Contexts

5.1.6 SIF_Context

The name of a SIF Context that applies to a message or operation.

SIF_Context
Figure 5.1.6-1: SIF_Context SIF_Context
 Element/@AttributeCharDescriptionType
 SIF_Context 

The name of a SIF Context that applies to a message or operation.

 
xs:token
xs:maxLength64
Table 5.1.6-1: SIF_Context

5.1.7 SIF_Protocol

Contains protocol information regarding a ZIS or Agent.

SIF_Protocol
Figure 5.1.7-1: SIF_Protocol SIF_Protocol Type Secure SIF_URL SIF_Property SIF_Name SIF_Value
 Element/@AttributeCharDescriptionType
 SIF_ProtocolC

Contains protocol information regarding a ZIS or Agent.

 
 
@TypeM

The type of protocol to use (HTTPS, HTTP or an implementation-defined protocol).

 
union of:

DefinedProtocolsType
xs:token
@SecureM

Whether the protocol provides a secure channel.

 
values:
Yes
No
 SIF_URLC

This element is required if the protocol is HTTPS or HTTP. It contains the https or http URL for contacting the agent.

 
xs:anyURI
xs:maxLength256
 SIF_PropertyOR

May contain zero or more SIF_Property elements containing SIF_Name/SIF_Value pairs describing any protocol settings required to ensure proper communication.

 
 
 SIF_Property/SIF_NameM

Property name.

 
xs:token
xs:maxLength64
 SIF_Property/SIF_ValueM

Property value.

 
xs:string
xs:maxLength256
Table 5.1.7-1: SIF_Protocol

5.1.8 SIF_Status

This element is used to signal a successful response.

SIF_Status
Figure 5.1.8-1: SIF_Status SIF_Status SIF_Code SIF_Desc SIF_Data SIF_Message SIF_AgentACL SIF_ZoneStatus
 Element/@AttributeCharDescriptionType
 SIF_Status 

This element is used to signal a successful response.

 
 
 SIF_CodeM InfrastructureStatusCodeType
 SIF_DescO

An optional textual description/equivalent of SIF_Code.

 
xs:string
xs:maxLength1024
 SIF_DataO

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.

 
choice of:

SIF_Message
SIF_AgentACL
SIF_ZoneStatus
Table 5.1.8-1: SIF_Status

5.1.9 SIF_Error

This element is used to signal an unsuccessful response.

SIF_Error
Figure 5.1.9-1: SIF_Error SIF_ErrorDataModelType SIF_Category SIF_Code SIF_Desc SIF_ExtendedDesc
 Element/@AttributeCharDescriptionType
 SIF_Error 

This element is used to signal an unsuccessful response.

 
 
 SIF_CategoryM InfrastructureErrorCategoryType
 SIF_CodeM

See Error Codes.

 
union of:

InfrastructureXMLValidationErrorType
InfrastructureEncryptionErrorType
InfrastructureAuthenticationErrorType
InfrastructureAccessAndPermissionErrorType
InfrastructureRegistrationErrorType
InfrastructureProvisionErrorType
InfrastructureSubscriptionErrorType
InfrastructureRequestAndResponseErrorType
InfrastructureEventReportingAndProcessingErrorType
InfrastructureTransportErrorType
InfrastructureSystemErrorType
InfrastructureGenericMessageHandlingErrorType
xs:token
 SIF_DescM

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:string
xs:maxLength1024
 SIF_ExtendedDescO

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:string
Table 5.1.9-1: SIF_Error

5.1.10 SIF_Query

SIF's default query mechanism.
SIF_Query
Figure 5.1.10-1: SIF_Query SIF_QueryDataModelType SIF_QueryObject ObjectName SIF_Element SIF_ConditionGroup Type SIF_Conditions Type SIF_Condition SIF_Element SIF_Operator SIF_Value SIF_Example
 Element/@AttributeCharDescriptionType
 SIF_Query SIF's default query mechanism.  
 SIF_QueryObjectM

This is the object that is being queried for.

 
 
@ObjectNameM

The actual name of the object that is being queried for.

 
SIF_RequestObjectNamesType
 SIF_QueryObject/SIF_Element
     
OR

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.

Note that this is a means to filter or select a subset of elements/attributes from a matching object; specifying elements/attributes here that do not occur in or are not supported in a matching object does not exclude that matching object from being returned. Include any existing parent elements/attributes of the elements/attributes that are requested but not present.

 
xs:normalizedString
 SIF_ConditionGroupC

Either SIF_ConditionGroup or SIF_Example may optionally be specified to present conditions matching objects should satisfy.

SIF_ConditionGroup represents the conditions that the queried object(s) must meet. If conditions are specified, only those objects that meet the conditions are returned; otherwise, all objects of the specified name are returned.

 
 
@TypeM

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.

 
values:
And
Or
None
 SIF_ConditionGroup/SIF_Conditions
     
MR

This construct allows for nested conditions.

 
 
@TypeM

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.

 
values:
And
Or
None
 SIF_ConditionGroup/SIF_Conditions/
     SIF_Condition
MR

This element represents an individual condition.

 
 
 SIF_ConditionGroup/SIF_Conditions/
     SIF_Condition/SIF_Element
     
M

This is the element/attribute being queried. See below for syntax.

 
xs:normalizedString
 SIF_ConditionGroup/SIF_Conditions/
     SIF_Condition/SIF_Operator
     
M

The comparison operator for the condition.

 
values:
EQ
Equals
LT
Less Than
GT
Greater Than
LE
Less Than Or Equals
GE
Greater Than Or Equals
NE
Not Equals
 SIF_ConditionGroup/SIF_Conditions/
     SIF_Condition/SIF_Value
M

SIF_Value is the data that is used to compare with the value of the element or attribute.

 
xs:string
 SIF_ExampleC

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 select objects; wider use may be considered in future versions of this specification.

 
SIF_ExampleObjectType
Table 5.1.10-1: SIF_Query

5.1.10.1 SIF_ConditionGroup

The SIF_Query element may have a SIF_ConditionGroup element that may have one or more SIF_Conditions elements. A SIF_Conditions element may contain one or more SIF_Condition elements. Each SIF_Condition element defines a search criterion, which contains the following sub-elements. For example, if you wished to request the LibraryPatronStatus object for all teachers, the SIF_ConditionGroup would be:

<SIF_ConditionGroup Type="None"> <SIF_Conditions Type="None"> <SIF_Condition> <SIF_Element>@SIF_RefObject</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>StaffPersonal</SIF_Value> </SIF_Condition> </SIF_Conditions> </SIF_ConditionGroup>
Example 5.1.10.1-1

If you wished to request the LibraryPatronStatus object for a specific teacher then the SIF_ConditionGroup would be:

<SIF_ConditionGroup Type="None"> <SIF_Conditions Type="And"> <SIF_Condition> <SIF_Element>@SIF_RefObject</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>StaffPersonal</SIF_Value> </SIF_Condition> <SIF_Condition> <SIF_Element>@SIF_RefId</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>D3E34B359D75101A8C3D00AA001A1652</SIF_Value> </SIF_Condition> </SIF_Conditions> </SIF_ConditionGroup>
Example 5.1.10.1-2
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Request> <SIF_Header> <SIF_MsgId>A3E90785EFDA330DACB00785EFDA330D</SIF_MsgId> <SIF_Timestamp>2006-02-18T20:39:12-08:00</SIF_Timestamp> <SIF_SourceId>RamseyLIB</SIF_SourceId> </SIF_Header> <SIF_Version>2.*</SIF_Version> <SIF_MaxBufferSize>1048576</SIF_MaxBufferSize> <SIF_Query> <SIF_QueryObject ObjectName="StudentPersonal" /> <SIF_ConditionGroup Type="None"> <SIF_Conditions Type="None"> <SIF_Condition> <SIF_Element>Name/LastName</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>Smith</SIF_Value> </SIF_Condition> </SIF_Conditions> </SIF_ConditionGroup> </SIF_Query> </SIF_Request> </SIF_Message>
Example 5.1.10.1-3: SIF_ConditionGroup querying into an object

5.1.10.2 SIF_Element Syntax

To reference individual elements/attributes in query criteria for objects, and in lists of individual elements/attributes to be returned from matching objects, SIF defines a path syntax which is based on a small subset of [XPath], for use in SIF_Element. Elements are specified by name (e.g. Name) and attributes are specified by name, prefixed with @ (e.g. @Type). Namespace prefixes may precede element/attribute names as necessary (e.g. @xml:lang) and reference the current prefix-to-namespace mappings within the XML of the request. To reference child elements or attributes of child elements, a path notation is used where each element/attribute in the path is separated by / (e.g. Name/FirstName , Name/@Type ). The object's element is the root element and is not included when referencing child elements (e.g. Name/FirstName , not StudentPersonal/Name/FirstName ); no / is required when referencing attributes of the object itself (e.g. @RefId, not StudentPersonal/@RefId) .

SIF_Condition/SIF_Element may also contain XPath predicates (e.g. [@Type='04'] ) to allow for more precise matching, especially with regard to repeatable elements with "key" attributes. The following SIF_Condition would match object withs any FirstName of Cameron:

<SIF_Condition> <SIF_Element>Name/FirstName</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>Cameron</SIF_Value> </SIF_Condition>
Example 5.1.10.2-1

Using a predicate allows the requester to specifically query the person's name of record ( 04 ) vs. his/her previous, professional, current legal name, etc.

<SIF_Condition> <SIF_Element>Name[@Type='04']/FirstName</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>Cameron</SIF_Value> </SIF_Condition>
Example 5.1.10.2-2

Predicate expressions supported in SIF are limited to or, and, =, element/attribute names with optional prefixes and accessing nested elements/attributes using /.

5.1.11 SIF_ExtendedQuery

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.

Note that matching rows are generated solely based on the SIF_From clause, with optional join criteria, optionally limited/filtered by the SIF_Where clause. If a repeatable element is requested as a column in SIF_Select, this does not generate multiple rows for each occurrence of matching elements; all elements are returned in the corresponding column within a single row.

SIF_ExtendedQuery
Figure 5.1.11-1: SIF_ExtendedQuery SIF_ExtendedQueryDataModelType SIF_DestinationProvider SIF_Select Distinct RowCount SIF_Element Alias ObjectName SIF_From ObjectName SIF_Join Type SIF_JoinOn SIF_LeftElement ObjectName SIF_RightElement ObjectName SIF_Where SIF_ConditionGroup Type SIF_Conditions Type SIF_Condition SIF_Element ObjectName SIF_Operator SIF_Value SIF_OrderBy SIF_Element ObjectName Ordering
 Element/@AttributeCharDescriptionType
 SIF_ExtendedQuery 

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.

Note that matching rows are generated solely based on the SIF_From clause, with optional join criteria, optionally limited/filtered by the SIF_Where clause. If a repeatable element is requested as a column in SIF_Select, this does not generate multiple rows for each occurrence of matching elements; all elements are returned in the corresponding column within a single row.

 
 
 SIF_DestinationProviderO

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.

 
SIF_RequestObjectNamesType
 SIF_SelectM

Identifies which data elements/attribute are to be returned as columns in each matching row.

 
 
@DistinctM

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:boolean
@RowCountM

The maximum number of rows to return. If All, return all rows, otherwise return the top rows up to the maximum row count indicated.

 
union of:

xs:positiveInteger

additional values:

All
 SIF_Select/SIF_ElementMR

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:normalizedString
@AliasO

Optional caption for the column.

 
xs:normalizedString
xs:maxLength64
@ObjectNameM

The name of the object from which to retrieve element/attributes.

 
SIF_RequestObjectNamesType
 SIF_FromM

Join specification for the query if more than one object is being queried. If only one object is being queried, specify it without the SIF_Join clause. This clause generates the matching rows returned, optionally limited/filtered by the SIF_Where clause. Each object referenced in the SIF_Select, SIF_Where and SIF_OrderBy clauses must be included here.

 
 
@ObjectNameM

The name of the object to query.

 
SIF_RequestObjectNamesType
 SIF_From/SIF_JoinOR

Additional objects to query, with join conditions specifying the relationships between objects.

 
 
@TypeM

Type of relational join.

 
values:
Inner
LeftOuter
RightOuter
FullOuter
 SIF_From/SIF_Join/SIF_JoinOn
     
MR

Specifies the conditions for the join.

 
 
 SIF_From/SIF_Join/SIF_JoinOn/
     SIF_LeftElement
M

Specifies the left-side element/attribute on which to constrain the join. Currently only support for keys/RefIds/RefId references is required.

 
xs:normalizedString
@ObjectNameM

Name of the object that contains the element/attribute.

 
SIF_RequestObjectNamesType
 SIF_From/SIF_Join/SIF_JoinOn/
     SIF_RightElement
M

Specifies right left-side element/attribute on which to constrain the join. Currently only support for keys/RefIds/RefId references is required.

 
xs:normalizedString
@ObjectNameM

Name of the object that contains the element/attribute.

 
SIF_RequestObjectNamesType
 SIF_WhereO

Optionally specifies conditions to limit/filter rows resulting from the SIF_From clause.

 
 
 SIF_Where/SIF_ConditionGroup
     
M

Conditions that matching rows must meet.

 
 
@TypeM

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.

 
values:
And
Or
None
 SIF_Where/SIF_ConditionGroup/
     SIF_Conditions
MR

This construct allows for nested conditions.

 
 
@TypeM

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.

 
values:
And
Or
None
 SIF_Where/SIF_ConditionGroup/
     SIF_Conditions/SIF_Condition
     
MR

This element represents an individual condition.

 
 
 SIF_Where/SIF_ConditionGroup/
     SIF_Conditions/SIF_Condition/
     SIF_Element
M

This is the element/attribute being queried.

 
xs:normalizedString
@ObjectNameM

The name of the object containing the element/attribute.

 
SIF_RequestObjectNamesType
 SIF_Where/SIF_ConditionGroup/
     SIF_Conditions/SIF_Condition/
     SIF_Operator
M

The comparison operator for the condition.

 
values:
EQ
Equals
LT
Less Than
GT
Greater Than
LE
Less Than Or Equals
GE
Greater Than Or Equals
NE
Not Equals
 SIF_Where/SIF_ConditionGroup/
     SIF_Conditions/SIF_Condition/
     SIF_Value
M

SIF_Value is the data that is used to compare with the value of the element or attribute.

 
xs:string
 SIF_OrderByO

An optional list of elements/attributes by which to sort the resulting rows.

 
 
 SIF_OrderBy/SIF_ElementMR

Indicates the element/attribute by which to sort.

 
xs:normalizedString
@ObjectNameM

The name of the object containing the element/attribute.

 
SIF_RequestObjectNamesType
@OrderingM

Whether to order the element/attribute in ascending or descending order.

 
values:
Ascending
Descending
Table 5.1.11-1: SIF_ExtendedQuery
<SIF_ExtendedQuery> <SIF_Select Distinct="false" RowCount="All"> <SIF_Element ObjectName="StudentPersonal" /> </SIF_Select> <SIF_From ObjectName="StudentPersonal" /> </SIF_ExtendedQuery>
Example 5.1.11-1: Selecting all StudentPersonal objects
<SIF_ExtendedQuery> <SIF_Select Distinct="false" RowCount="All"> <SIF_Element ObjectName="StudentPersonal">*</SIF_Element> </SIF_Select> <SIF_From ObjectName="StudentPersonal" /> </SIF_ExtendedQuery>
Example 5.1.11-2: Selecting all attributes and immediate child elements of StudentPersonal as columns from all StudentPersonal objects
<SIF_ExtendedQuery> <SIF_Select Distinct="false" RowCount="All"> <SIF_Element ObjectName="StudentPersonal">@RefId</SIF_Element> <SIF_Element ObjectName="StudentPersonal">Name/FirstName</SIF_Element> <SIF_Element ObjectName="StudentPersonal">Name/LastName</SIF_Element> <SIF_Element ObjectName="StudentPersonal">EmailList</SIF_Element> </SIF_Select> <SIF_From ObjectName="StudentPersonal" /> </SIF_ExtendedQuery>
Example 5.1.11-3: Selecting specific attributes and elements from all StudentPersonal objects
<SIF_ExtendedQuery> <SIF_Select Distinct="true" RowCount="All"> <SIF_Element ObjectName="StudentPersonal" /> <SIF_Element ObjectName="StudentSchoolEnrollment" Alias="Student Entry Date">EntryDate</SIF_Element> </SIF_Select> <SIF_From ObjectName="StudentPersonal"> <SIF_Join Type="Inner"> <SIF_JoinOn> <SIF_LeftElement ObjectName="StudentPersonal">@RefId</SIF_LeftElement> <SIF_RightElement ObjectName="StudentSchoolEnrollment">@StudentPersonalRefId</SIF_RightElement> </SIF_JoinOn> </SIF_Join> </SIF_From> <SIF_Where> <SIF_ConditionGroup Type="And"> <SIF_Conditions Type="And"> <SIF_Condition> <SIF_Element ObjectName="StudentSchoolEnrollment">@SchoolInfoRefId</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>A3E90785EFDA330DACB00785EFDA330D</SIF_Value> </SIF_Condition> <SIF_Condition> <SIF_Element ObjectName="StudentSchoolEnrollment">@SchoolYear</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>2007</SIF_Value> </SIF_Condition> <SIF_Condition> <SIF_Element ObjectName="StudentSchoolEnrollment">@MembershipType</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>Home</SIF_Value> </SIF_Condition> </SIF_Conditions> <SIF_Conditions Type="Or"> <SIF_Condition> <SIF_Element ObjectName="StudentSchoolEnrollment">@TimeFrame</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>Current</SIF_Value> </SIF_Condition> <SIF_Condition> <SIF_Element ObjectName="StudentSchoolEnrollment">@TimeFrame</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>Future</SIF_Value> </SIF_Condition> </SIF_Conditions> </SIF_ConditionGroup> </SIF_Where> <SIF_OrderBy> <SIF_Element ObjectName="StudentPersonal" Ordering="Ascending">Name/LastName</SIF_Element> </SIF_OrderBy> </SIF_ExtendedQuery>
Example 5.1.11-4: Selecting StudentPersonal objects along with each student's EntryDate from StudentSchoolEnrollment for a specific school, school year and other StudentSchoolEnrollment values, sorted by student's last name
<SIF_ExtendedQuery> <SIF_Select Distinct="false" RowCount="All"> <SIF_Element ObjectName="StudentPersonal" /> <SIF_Element ObjectName="StudentSchoolEnrollment" /> <SIF_Element ObjectName="SchoolInfo">SchoolName</SIF_Element> </SIF_Select> <SIF_From ObjectName="StudentPersonal"> <SIF_Join Type="Inner"> <SIF_JoinOn> <SIF_LeftElement ObjectName="StudentPersonal">@RefId</SIF_LeftElement> <SIF_RightElement ObjectName="StudentSchoolEnrollment">@StudentPersonalRefId</SIF_RightElement> </SIF_JoinOn> </SIF_Join> <SIF_Join Type="Inner"> <SIF_JoinOn> <SIF_LeftElement ObjectName="StudentSchoolEnrollment">@SchoolInfoRefId</SIF_LeftElement> <SIF_RightElement ObjectName="SchoolInfo">@RefId</SIF_RightElement> </SIF_JoinOn> </SIF_Join> </SIF_From> <SIF_Where> <SIF_ConditionGroup Type="None"> <SIF_Conditions Type="None"> <SIF_Condition> <SIF_Element ObjectName="StudentPersonal">@RefId</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>12345678901234567890123456789012</SIF_Value> </SIF_Condition> </SIF_Conditions> </SIF_ConditionGroup> </SIF_Where> </SIF_ExtendedQuery>
Example 5.1.11-5: Selecting a specific StudentPersonal's StudentSchoolEnrollment objects, along with the corresponding school name for each enrollment

5.1.11.1 Mapping SIF_Query to SIF_ExtendedQuery

While there are differences in how matching objects are returned, note that all non-SIF_Example SIF_Query-based requests can be mapped to a corresponding SIF_ExtendedQuery-based request:

1 Place SIF_Query/SIF_QueryObject/@ObjectName in SIF_ExtendedQuery/SIF_From/@ObjectName.
2 If elements/attributes are specified in SIF_Query/SIF_QueryObject/SIF_Element, place them in SIF_ExtendedQuery/SIF_Select/SIF_Element with @ObjectName set to SIF_Query/SIF_QueryObject/@ObjectName. Otherwise in SIF_Select, specify an empty SIF_Element element with @ObjectName set to SIF_Query/SIF_QueryObject/@ObjectName.
3 If SIF_Query/SIF_ConditionGroup exists, place it in SIF_ExtendedQuery/SIF_Where setting @ObjectName to SIF_Query/SIF_QueryObject/@ObjectName in every occurrence of SIF_Element.
4 Set SIF_Select/@Distinct to false and SIF_Select/@RowCount to All.
Table 5.1.11.1-1: Mapping SIF_Query to SIF_ExtendedQuery
<SIF_Query> <SIF_QueryObject ObjectName="StudentPersonal"> <SIF_Element>Name/FirstName</SIF_Element> <SIF_Element>Name/LastName</SIF_Element> </SIF_QueryObject> <SIF_ConditionGroup Type="None"> <SIF_Conditions Type="None"> <SIF_Condition> <SIF_Element>@RefId</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>F0F29E6AE742498D9CB91CBB3BE6890E</SIF_Value> </SIF_Condition> </SIF_Conditions> </SIF_ConditionGroup> </SIF_Query>
Example 5.1.11.1-1: Input SIF_Query
<SIF_ExtendedQuery> <SIF_Select Distinct="false" RowCount="All"> <SIF_Element ObjectName="StudentPersonal">Name/FirstName</SIF_Element> <SIF_Element ObjectName="StudentPersonal">Name/LastName</SIF_Element> </SIF_Select> <SIF_From ObjectName="StudentPersonal" /> <SIF_Where> <SIF_ConditionGroup Type="None"> <SIF_Conditions Type="None"> <SIF_Condition> <SIF_Element ObjectName="StudentPersonal">@RefId</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>F0F29E6AE742498D9CB91CBB3BE6890E</SIF_Value> </SIF_Condition> </SIF_Conditions> </SIF_ConditionGroup> </SIF_Where> </SIF_ExtendedQuery>
Example 5.1.11.1-2: Corresponding SIF_ExtendedQuery

5.1.12 SIF_ExtendedQueryResults

This element provides a wrapper for data returned in response to a SIF_ExtendedQuery. Used in SIF_Response and SIF_ReportObject.

SIF_ExtendedQueryResults
Figure 5.1.12-1: SIF_ExtendedQueryResults SIF_ExtendedQueryResultsDataModelType SIF_ColumnHeaders SIF_Element ObjectName Alias xsi:type SIF_Rows R C
 Element/@AttributeCharDescriptionType
 SIF_ExtendedQueryResults 

This element provides a wrapper for data returned in response to a SIF_ExtendedQuery. Used in SIF_Response and SIF_ReportObject.

 
 
 SIF_ColumnHeadersM

Provides the element/attribute and caption information for each column supplied in SIF_ExtendedQuery. The order must correspond to the order of the elements as requested in SIF_ExtendedQuery.

 
 
 SIF_ColumnHeaders/SIF_Element
     
MR

The element/attribute specified for the column in SIF_ExtendedQuery.

 
xs:normalizedString
@ObjectNameM

The object in which the element/attribute occurs.

 
SIF_RequestObjectNamesType
@AliasO

The caption for the column, if specified in SIF_ExtendedQuery.

 
xs:normalizedString
xs:maxLength64
@xsi:typeO

Optionally allows type of column value to be explicitly communicated.

 
 
 SIF_RowsM

A list of matching rows resulting from the supplied SIF_ExtendedQuery. Note that the complete list of rows may span multiple SIF_Response messages, per the SIF_MaxBufferSize supplied in SIF_Request. If there are no matching rows, this is an empty list.

 
 
 SIF_Rows/ROR

An individual matching row resulting from the supplied SIF_ExtendedQuery.

 
 
 SIF_Rows/R/CMR

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.

 
SelectedContentType
Table 5.1.12-1: SIF_ExtendedQueryResults
<SIF_ExtendedQueryResults> <SIF_ColumnHeaders> <SIF_Element ObjectName="StudentPersonal" /> <SIF_Element ObjectName="StudentSchoolEnrollment" /> <SIF_Element ObjectName="SchoolInfo">SchoolName</SIF_Element> </SIF_ColumnHeaders> <SIF_Rows> <R> <C> <StudentPersonal RefId="12345678901234567890123456789012"> <!--...--> </StudentPersonal> </C> <C> <StudentSchoolEnrollment RefId="AED4AEF825284D7E9F082EBBEB1999FA" StudentPersonalRefId="12345678901234567890123456789012" SchoolInfoRefId="AED4AEF825284D7E9F082EBBEBB12345" MembershipType="Home" TimeFrame="Current" SchoolYear="2007"> <!--...--> </StudentSchoolEnrollment> </C> <C> <SchoolName>SIFA High</SchoolName> </C> </R> <R> <C> <StudentPersonal RefId="12345678901234567890123456789012"> <!--...--> </StudentPersonal> </C> <C> <StudentSchoolEnrollment RefId="AED4AEF825284D7E9F082EBBEB1999FA" StudentPersonalRefId="12345678901234567890123456789012" SchoolInfoRefId="ED4AEF825284D7E9F082EBBEBB678902" MembershipType="Concurrent" TimeFrame="Current" SchoolYear="2007"> <!--...--> </StudentSchoolEnrollment> </C> <C> <SchoolName>SIFA University</SchoolName> </C> </R> </SIF_Rows> </SIF_ExtendedQueryResults>
Example 5.1.12-1: SIF_ExtendedQueryResults

5.2 Messages

5.2.1 SIF_Ack

This message is used as an acknowledgement for infrastructure messages. All infrastructure messages will return a SIF_Ack as a result to indicate if the request was successful or not. A SIF_Ack must contain either a SIF_Status element acknowledging a successful result or a SIF_Error element describing the failure. The SIF_Error element contains a standardized error number as well as a description of the error.

A successful SIF_Ack is typically returned to the caller containing a SIF_Header, SIF_OriginalSourceId, SIF_OriginalMsgId and the SIF_Status element. In situations where additional information needs to be returned to the caller, a SIF_Data element can be added to the SIF_Status element.

In addition, successful SIF_Ack messages may also be sent to the ZIS under two conditions. The first is when a pull-mode agent requests that a message is to be removed from its queue. The second is when an agent which has invoked SMB wishes to end SMB handling. In that case, the agent sends a "Final" SIF_Ack to the ZIS. In each instance the ZIS returns a SIF_Ack in response to the agent's SIF_Ack message.

SIF_Ack
Figure 5.2.1-1: SIF_Ack SIF_Ack SIF_Header SIF_OriginalSourceId SIF_OriginalMsgId SIF_Status SIF_Error
 Element/@AttributeCharDescriptionType
 SIF_AckM

This message is used as an acknowledgement to an infrastructure message.

 
 
 SIF_HeaderM

Header information associated with this message.

 
SIF_Header
 SIF_OriginalSourceIdM

The SIF_SourceId of the infrastructure message for which the SIF_Ack serves as a response.

 
xs:token
 SIF_OriginalMsgIdM

The SIF_MsgId of the infrastructure message for which the SIF_Ack message serves as a response.

 
MsgIdType
 SIF_StatusC

This element is used to signal a successful response.

 
SIF_Status
 SIF_ErrorC

This element is used to signal an unsuccessful response.

 
SIF_Error
Table 5.2.1-1: SIF_Ack
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>AB1058CD3261545A31905937B265CE01</SIF_MsgId> <SIF_Timestamp>2006-02-18T08:39:40-08:00</SIF_Timestamp> <SIF_SourceId>SifInfo_TestZIS</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseyLib</SIF_OriginalSourceId> <SIF_OriginalMsgId>1298ACEF3261545A31905937B265CE01</SIF_OriginalMsgId> <SIF_Status> <SIF_Code>0</SIF_Code> <SIF_Data> <SIF_Message Version="2.3"> <SIF_Request> <SIF_Header> <SIF_MsgId>A3E90785EFDA330DACB00785EFDA330D</SIF_MsgId> <SIF_Timestamp>2006-02-18T08:39:02-08:00</SIF_Timestamp> <SIF_SourceId>RamseySIS</SIF_SourceId> </SIF_Header> <SIF_Version>2.*</SIF_Version> <SIF_MaxBufferSize>1048576</SIF_MaxBufferSize> <SIF_Query> <SIF_QueryObject ObjectName="LibraryPatronStatus" /> <SIF_ConditionGroup Type="None"> <SIF_Conditions Type="None"> <SIF_Condition> <SIF_Element>@SIF_RefObject</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>StaffPersonal</SIF_Value> </SIF_Condition> </SIF_Conditions> </SIF_ConditionGroup> </SIF_Query> </SIF_Request> </SIF_Message> </SIF_Data> </SIF_Status> </SIF_Ack> </SIF_Message>
Example 5.2.1-1: SIF_Ack Status Message
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>CD5087FE3261545A31905937B265CE01</SIF_MsgId> <SIF_Timestamp>2006-02-18T08:39:40-08:00</SIF_Timestamp> <SIF_SourceId>RamseyLIB</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseySIS</SIF_OriginalSourceId> <SIF_OriginalMsgId>1945CD783261545A31905937B265CE01</SIF_OriginalMsgId> <SIF_Error> <SIF_Category>3</SIF_Category> <SIF_Code>5</SIF_Code> <SIF_Desc>Sender's certificate is not trusted</SIF_Desc> <SIF_ExtendedDesc>Agent requires certificate issued by ISD11 CA</SIF_ExtendedDesc> </SIF_Error> </SIF_Ack> </SIF_Message>
Example 5.2.1-2: SIF_Ack Error Message

5.2.2 SIF_Event

SIF_Event is used to deliver event objects as defined in SIF. Events represent the availability of a new data object, changes to, or deletions of data object.

SIF_Event
Figure 5.2.2-1: SIF_Event SIF_Event SIF_Header SIF_ObjectData SIF_EventObject ObjectName Action
 Element/@AttributeCharDescriptionType
 SIF_EventM

SIF_Event is used to deliver event objects as defined in SIF.

 
 
 SIF_HeaderM

Header information associated with this message.

 
SIF_Header
 SIF_ObjectDataM  
 SIF_ObjectData/SIF_EventObject
     
M

Contains the actual object (partial or whole) that is being added, changed or deleted.

 
SIF_EventObjectType
@ObjectNameM

This is the name of the object being added, changed or deleted.

 
SIF_SubscribeObjectNamesType
@ActionM

This is the action associated with the object that is being conveyed by this SIF_Event.

 
values:
Add
Delete
Change
Table 5.2.2-1: SIF_Event
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Event> <SIF_Header> <SIF_MsgId>AB34DC093261545A31905937B265CE01</SIF_MsgId> <SIF_Timestamp>2006-02-18T20:39:12-08:00</SIF_Timestamp> <SIF_SourceId>RamseySIS</SIF_SourceId> </SIF_Header> <SIF_ObjectData> <SIF_EventObject ObjectName="StudentPersonal" Action="Change"> <StudentPersonal RefId="D3E34B359D75101A8C3D00AA001A1652"> <PersonInfo> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>03 9637-2289</Number> <Extension>72289</Extension> <ListedStatus>Y</ListedStatus> </PhoneNumber> <PhoneNumber Type="0888"> <Number>0437-765-234</Number> <ListedStatus>N</ListedStatus> </PhoneNumber> </PhoneNumberList> </PersonInfo> </StudentPersonal> </SIF_EventObject> </SIF_ObjectData> </SIF_Event> </SIF_Message>
Example 5.2.2-1: SIF_Event Message with StudentPersonal changes

5.2.3 SIF_Provide

The SIF_Provide message is used to attempt registering as the provider of one or more data objects.

SIF_Provide
Figure 5.2.3-1: SIF_Provide SIF_Provide SIF_Header SIF_Object ObjectName SIF_ExtendedQuerySupport SIF_Contexts
 Element/@AttributeCharDescriptionType
 SIF_ProvideM

The SIF_Provide message is used for advertising the provision of data objects.

 
 
 SIF_HeaderM

Header information associated with this message.

 
SIF_Header
 SIF_ObjectMR

This is the object that is being provided.

 
 
@ObjectNameM

The actual name of the object that is being provided.

 
SIF_ProvideObjectNamesType
 SIF_Object/SIF_ExtendedQuerySupport
     
O

Whether or not the Agent supports SIF_ExtendedQuery for this object.

 
xs:boolean
 SIF_Object/SIF_ContextsO

The contexts in which the object is being provided; if omitted, the context is SIF_Default.

 
SIF_Contexts
Table 5.2.3-1: SIF_Provide
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Provide> <SIF_Header> <SIF_MsgId>34DC87FE3261545A31905937B265CE01</SIF_MsgId> <SIF_Timestamp>2006-02-18T20:39:12-08:00</SIF_Timestamp> <SIF_SourceId>RamseySIS</SIF_SourceId> </SIF_Header> <SIF_Object ObjectName="StudentPersonal" /> <SIF_Object ObjectName="StudentSchoolEnrollment" /> </SIF_Provide> </SIF_Message>
Example 5.2.3-1: SIF_Provide

5.2.4 SIF_Provision

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.

SIF_Provision
Figure 5.2.4-1: SIF_Provision SIF_Provision SIF_Header SIF_ProvideObjects SIF_Object ObjectName SIF_ExtendedQuerySupport SIF_Contexts SIF_SubscribeObjects SIF_Object ObjectName SIF_Contexts SIF_PublishAddObjects SIF_Object ObjectName SIF_Contexts SIF_PublishChangeObjects SIF_Object ObjectName SIF_Contexts SIF_PublishDeleteObjects SIF_Object ObjectName SIF_Contexts SIF_RequestObjects SIF_Object ObjectName SIF_ExtendedQuerySupport SIF_Contexts SIF_RespondObjects SIF_Object ObjectName SIF_ExtendedQuerySupport SIF_Contexts
 Element/@AttributeCharDescriptionType
 SIF_Provision 

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.

 
 
 SIF_HeaderM

Header information associated with this message.

 
SIF_Header
 SIF_ProvideObjectsM

A list of objects an Agent wishes to provide.

 
 
 SIF_ProvideObjects/SIF_Object
     
OR  
@ObjectNameM

The name of each object.

 
SIF_ProvideObjectNamesType
 SIF_ProvideObjects/SIF_Object/
     SIF_ExtendedQuerySupport
O

Whether or not SIF_ExtendedQuery is supported with regard to this object.

 
xs:boolean
 SIF_ProvideObjects/SIF_Object/
     SIF_Contexts
O

Applicable contexts for stated object support. If omitted, the context defaults to SIF_Default.

 
SIF_Contexts
 SIF_SubscribeObjectsM

A list of objects to which an Agent wishes to subscribe.

 
 
 SIF_SubscribeObjects/SIF_Object
     
OR  
@ObjectNameM

The name of each object.

 
SIF_SubscribeObjectNamesType
 SIF_SubscribeObjects/SIF_Object/
     SIF_Contexts
O

Applicable contexts for stated object support. If omitted, the context defaults to SIF_Default.

 
SIF_Contexts
 SIF_PublishAddObjectsM

A list of objects for which an Agent wishes to publish Add events.

 
 
 SIF_PublishAddObjects/SIF_Object
     
OR  
@ObjectNameM

The name of each object.

 
SIF_SubscribeObjectNamesType
 SIF_PublishAddObjects/SIF_Object/
     SIF_Contexts
O

Applicable contexts for stated object support. If omitted, the context defaults to SIF_Default.

 
SIF_Contexts
 SIF_PublishChangeObjectsM

A list of objects for which an Agent wishes to publish Change events.

 
 
 SIF_PublishChangeObjects/
     SIF_Object
OR  
@ObjectNameM

The name of each object.

 
SIF_SubscribeObjectNamesType
 SIF_PublishChangeObjects/
     SIF_Object/SIF_Contexts
O

Applicable contexts for stated object support. If omitted, the context defaults to SIF_Default.

 
SIF_Contexts
 SIF_PublishDeleteObjectsM

A list of objects for which an Agent wishes to publish Delete events.

 
 
 SIF_PublishDeleteObjects/
     SIF_Object
OR  
@ObjectNameM

The name of each object.

 
SIF_SubscribeObjectNamesType
 SIF_PublishDeleteObjects/
     SIF_Object/SIF_Contexts
O

Applicable contexts for stated object support. If omitted, the context defaults to SIF_Default.

 
SIF_Contexts
 SIF_RequestObjectsM

A list of objects an Agent wishes to request.

 
 
 SIF_RequestObjects/SIF_Object
     
OR  
@ObjectNameM

The name of each object.

 
SIF_RequestObjectNamesType
 SIF_RequestObjects/SIF_Object/
     SIF_ExtendedQuerySupport
O

Optionally specify whether or not SIF_ExtendedQuery may be sent in requests for this object.

 
xs:boolean
 SIF_RequestObjects/SIF_Object/
     SIF_Contexts
O

Applicable contexts for stated object support. If omitted, the context defaults to SIF_Default.

 
SIF_Contexts
 SIF_RespondObjectsM

A list of objects for which an Agent wishes to handle requests, whether or not it is the Provider for each object. Note that this list MUST include those objects specified in SIF_ProvideObjects.

 
 
 SIF_RespondObjects/SIF_Object
     
OR  
@ObjectNameM

The name of each object.

 
SIF_RequestObjectNamesType
 SIF_RespondObjects/SIF_Object/
     SIF_ExtendedQuerySupport
O

Whether or not SIF_ExtendedQuery is supported with regard to this object.

 
xs:boolean
 SIF_RespondObjects/SIF_Object/
     SIF_Contexts
O

Applicable contexts for stated object support. If omitted, the context defaults to SIF_Default.

 
SIF_Contexts
Table 5.2.4-1: SIF_Provision
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Provision> <SIF_Header> <SIF_MsgId>A10F92EB649F4A648B5BFC44C7FD965C</SIF_MsgId> <SIF_Timestamp>2006-08-18T11:23:11-08:00</SIF_Timestamp> <SIF_SourceId>RamseySIS</SIF_SourceId> </SIF_Header> <SIF_ProvideObjects> <SIF_Object ObjectName="StudentPersonal" /> <SIF_Object ObjectName="StudentSchoolEnrollment" /> </SIF_ProvideObjects> <SIF_SubscribeObjects> <SIF_Object ObjectName="PersonPicture" /> </SIF_SubscribeObjects> <SIF_PublishAddObjects> <SIF_Object ObjectName="StudentPersonal" /> <SIF_Object ObjectName="StudentSchoolEnrollment" /> </SIF_PublishAddObjects> <SIF_PublishChangeObjects> <SIF_Object ObjectName="StudentPersonal" /> <SIF_Object ObjectName="StudentSchoolEnrollment" /> </SIF_PublishChangeObjects> <SIF_PublishDeleteObjects> <SIF_Object ObjectName="StudentPersonal" /> <SIF_Object ObjectName="StudentSchoolEnrollment" /> </SIF_PublishDeleteObjects> <SIF_RequestObjects> <SIF_Object ObjectName="PersonPicture" /> </SIF_RequestObjects> <SIF_RespondObjects> <SIF_Object ObjectName="StudentPersonal" /> <SIF_Object ObjectName="StudentSchoolEnrollment" /> </SIF_RespondObjects> </SIF_Provision> </SIF_Message>
Example 5.2.4-1: SIF_Provision Example

5.2.5 SIF_Register

SIF_Register is the message for registering an agent with a ZIS. An agent must be registered before it sends out other SIF messages. SIF_Register serves to provide the ZIS with the sender's identification information as well as to provide the information that the ZIS will need to contact this agent, should it register in Push mode.

Once a sender registers in the ZIS with the SIF_Register message, the sender can use the SIF_SourceId value in the header of all other outgoing messages as its identification. It is not necessary to send a SIF_Register message each time your agent starts up but it is not an error to do so. If there are any blocked events in the Agent's queue when a ZIS receives the SIF_Register message, the blocks will be removed.

SIF_Register
Figure 5.2.5-1: SIF_Register SIF_Register SIF_Header SIF_Name SIF_Version SIF_MaxBufferSize SIF_Mode SIF_Protocol SIF_NodeVendor SIF_NodeVersion SIF_Application SIF_Vendor SIF_Product SIF_Version SIF_Icon
 Element/@AttributeCharDescriptionType
 SIF_RegisterM

SIF_Register is the message for registering an agent with a ZIS.

 
 
 SIF_HeaderM

Header information associated with this message.

 
SIF_Header
 SIF_NameM

This is the descriptive name of the agent that is registering (i.e. Ramsey Media Center).

 
xs:normalizedString
xs:maxLength64
 SIF_VersionMR

Specifies the SIF Implementation Specification version(s) defining messages the agent can receive. If the ZIS cannot communicate in this format, it should reject the request.

The format of SIF_Version values can be found in Version Numbers. In a SIF_Register message, an individual SIF_Version element may also contain the following wildcards:

* - Any SIF version

<major version>.* - Any minor version plus revisions within a major version (e.g., 1.*)

<major version>.<minor version><r>* - Any revision within a minor version (e.g., 1.1r*)

Note: As wildcarding was first introduced in version 1.1 of the specification, 1.* does not match versions 1.0, 1.0r1 or 1.0r2. 1.1 or later agents that register with 1.* and wish to also receive messages from pre-1.1 agents must include SIF_Version element(s) with the supported pre-1.1 versions.

 
VersionWithWildcardsType
 SIF_MaxBufferSizeM

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:unsignedInt
 SIF_ModeM

Specifies the communication mode (Pull or Push) as chosen by the message sender.

 
values:
Push
Pull
 SIF_ProtocolC

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.

 
SIF_Protocol
 SIF_NodeVendorO

The vendor of the SIF agent.

 
xs:normalizedString
xs:maxLength256
 SIF_NodeVersionO

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.

Examples
2.0.1.11

xs:normalizedString
xs:maxLength32
 SIF_ApplicationO

Contains information about the vendor of the product that the agent represents.

 
 
 SIF_Application/SIF_Vendor
     
M

The name of the company of the product that this agent supports.

 
xs:normalizedString
xs:maxLength256
 SIF_Application/SIF_Product
     
M

The name of the product that this agent supports.

 
xs:normalizedString
xs:maxLength256
 SIF_Application/SIF_Version
     
M

The version of the product. This field is informative only.

 
xs:normalizedString
xs:maxLength32
 SIF_IconO

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:anyURI
Table 5.2.5-1: SIF_Register
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Register> <SIF_Header> <SIF_MsgId>14BA09653261545A31905937B265CE01</SIF_MsgId> <SIF_Timestamp>2006-02-18T20:39:12-06:00</SIF_Timestamp> <SIF_SourceId>AcmeAgent</SIF_SourceId> </SIF_Header> <SIF_Name>Acme Agent for WAP 2.x</SIF_Name> <SIF_Version>2.3</SIF_Version> <SIF_MaxBufferSize>524288</SIF_MaxBufferSize> <SIF_Mode>Push</SIF_Mode> <SIF_Protocol Type="HTTPS" Secure="Yes"> <SIF_URL>https://AcmeHost:8030/StudentAdmin</SIF_URL> </SIF_Protocol> <SIF_NodeVersion>2.0.1.20</SIF_NodeVersion> <SIF_Application> <SIF_Vendor>Acme Consulting</SIF_Vendor> <SIF_Product>Web Administration Portal 5.x</SIF_Product> <SIF_Version>5.1.2</SIF_Version> </SIF_Application> </SIF_Register> </SIF_Message>
Example 5.2.5-1: SIF_Register

5.2.6 SIF_Request

This message is used to request information in SIF data objects from other SIF nodes. It optionally specifies the query criteria with which to match objects, as well as an optional subset of elements to be returned for matching objects.

SIF_Request
Figure 5.2.6-1: SIF_Request SIF_Request SIF_Header SIF_Version SIF_MaxBufferSize SIF_Query SIF_ExtendedQuery
 Element/@AttributeCharDescriptionType
 SIF_RequestM

SIF_Request is used to request information in SIF data objects from other SIF nodes.

 
 
 SIF_HeaderM

Header information associated with this message.

 
SIF_Header
 SIF_VersionMR

Specifies which SIF Implementation 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.

 
VersionWithWildcardsType
 SIF_MaxBufferSizeM

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:unsignedInt
 SIF_QueryC

Either SIF_Query or SIF_ExtendedQuery must be specified, which contain the criteria to be used to match response objects.

 
SIF_Query
 SIF_ExtendedQueryC SIF_ExtendedQuery
Table 5.2.6-1: SIF_Request
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Request> <SIF_Header> <SIF_MsgId>A3E90785EFDA330DACB00785EFDA330D</SIF_MsgId> <SIF_Timestamp>2006-02-18T20:39:12-08:00</SIF_Timestamp> <SIF_SourceId>RamseySIS</SIF_SourceId> </SIF_Header> <SIF_Version>2.*</SIF_Version> <SIF_MaxBufferSize>1048576</SIF_MaxBufferSize> <SIF_Query> <SIF_QueryObject ObjectName="LibraryPatronStatus" /> <SIF_ConditionGroup Type="None"> <SIF_Conditions Type="None"> <SIF_Condition> <SIF_Element>@SIF_RefObject</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>StaffPersonal</SIF_Value> </SIF_Condition> </SIF_Conditions> </SIF_ConditionGroup> </SIF_Query> </SIF_Request> </SIF_Message>
Example 5.2.6-1: SIF_Request

5.2.7 SIF_Response

SIF_Response is used to respond to a SIF_Request message. A response may span multiple SIF_Response messages.

SIF_Response
Figure 5.2.7-1: SIF_Response SIF_Response SIF_Header SIF_RequestMsgId SIF_PacketNumber SIF_MorePackets SIF_Error SIF_ObjectData SIF_ExtendedQueryResults
 Element/@AttributeCharDescriptionType
 SIF_ResponseM

SIF_Response is used to respond to a SIF_Request message.

 
 
 SIF_HeaderM

Header information associated with this message. The SIF_DestinationId needs to be the SIF_SourceId of the original SIF_Request message being processed.

 
SIF_Header
 SIF_RequestMsgIdM

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.

 
MsgIdType
 SIF_PacketNumberM

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.

The receiver of a SIF_Response message, with the help of the SIF_MorePackets and SIF_PacketNumber element in each incoming SIF_Response message, will be able to interpret and process each SIF_Response as part of a complete response to a previous SIF_Request.

 
xs:positiveInteger
 SIF_MorePacketsM

This element provides an indication as to whether there are more packets besides this one to make up a complete response.

The necessity of this element stems from the requirement on an agent to break response data to fit into the SIF_MaxBufferSize provided in the SIF_Request. Agents may also break response data into multiple packets for the benefit of improving performance or for circumventing limitations of the underlying network infrastructure.

When this element's value is equal to No, it is an indication from the sender to the receiver that it has already sent out all the packets that make up a complete response for a SIF_Request as indicated by the SIF_RequestMsgId element.

 
values:
Yes
No
 SIF_ErrorC

The responder returns SIF_Error, SIF_ObjectData or SIF_ExtendedQueryResults.

This element allows the Responder to report an error condition that occurs while processing the SIF_Request.

If a SIF_Error element is present, the requesting agent must not expect to receive further SIF_Responses to the SIF_Request.

 
SIF_Error
 SIF_ObjectDataC

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.

 
SIF_ResponseObjectsType
 SIF_ExtendedQueryResultsC

This element contains the elements requested by SIF_ExtendedQuery in SIF_Request.

 
SIF_ExtendedQueryResults
Table 5.2.7-1: SIF_Response
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Response> <SIF_Header> <SIF_MsgId>1BCD10580EF250789012AC0554321EA2</SIF_MsgId> <SIF_Timestamp>2006-02-18T08:39:40-08:00</SIF_Timestamp> <SIF_SourceId>SISAgent</SIF_SourceId> <SIF_DestinationId>NetworkAgent</SIF_DestinationId> </SIF_Header> <SIF_RequestMsgId>FE1078BA3261545A319059376B3A4898</SIF_RequestMsgId> <SIF_PacketNumber>1</SIF_PacketNumber> <SIF_MorePackets>No</SIF_MorePackets> <SIF_ObjectData> <StudentPersonal RefId="E3E34B359D75101A8C3D00AA00184753"> <PersonInfo> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Fred</GivenName> <FullName>Fred Smith</FullName> </Name> </PersonInfo> </StudentPersonal> </SIF_ObjectData> </SIF_Response> </SIF_Message>
Example 5.2.7-1: Sample single-packet SIF_Response to a SIF_Request for the Name element from a StudentPersonal object
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Response> <SIF_Header> <SIF_MsgId>322925BC9818433E8090D5110EE61DA3</SIF_MsgId> <SIF_Timestamp>2006-04-18T08:39:40-08:00</SIF_Timestamp> <SIF_SourceId>SISAgent</SIF_SourceId> <SIF_DestinationId>NetworkAgent</SIF_DestinationId> </SIF_Header> <SIF_RequestMsgId>FE1078BA3261545A31905937B265CE01</SIF_RequestMsgId> <SIF_PacketNumber>1</SIF_PacketNumber> <SIF_MorePackets>Yes</SIF_MorePackets> <SIF_ObjectData> <StudentPersonal RefId="E3E34B359D75101A8C3D00AA00184753"> <PersonInfo> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Fred</GivenName> <FullName>Fred Smith</FullName> </Name> </PersonInfo> </StudentPersonal> </SIF_ObjectData> </SIF_Response> </SIF_Message>
Example 5.2.7-2: SIF_Response (first packet)
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Response> <SIF_Header> <SIF_MsgId>322925BC9818433E8090D51256786BC9</SIF_MsgId> <SIF_Timestamp>2006-04-18T08:39:49-08:00</SIF_Timestamp> <SIF_SourceId>SISAgent</SIF_SourceId> <SIF_DestinationId>NetworkAgent</SIF_DestinationId> </SIF_Header> <SIF_RequestMsgId>FE1078BA3261545A31905937B265CE01</SIF_RequestMsgId> <SIF_PacketNumber>2</SIF_PacketNumber> <SIF_MorePackets>No</SIF_MorePackets> <SIF_ObjectData> <StudentPersonal RefId="F14B5B359D75101A8C3D00AA00184753"> <PersonInfo> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Alice</GivenName> <FullName>Alice Smith</FullName> </Name> </PersonInfo> </StudentPersonal> </SIF_ObjectData> </SIF_Response> </SIF_Message>
Example 5.2.7-3: SIF_Response (second packet)
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Response> <SIF_Header> <SIF_MsgId>F557D40A1367455E9F01DED76E29260C</SIF_MsgId> <SIF_Timestamp>2006-04-18T08:43:08-08:00</SIF_Timestamp> <SIF_SourceId>SISAgent</SIF_SourceId> <SIF_DestinationId>NetworkAgent</SIF_DestinationId> </SIF_Header> <SIF_RequestMsgId>971D7C7EF2684C7081A7765BF89FAD14</SIF_RequestMsgId> <SIF_PacketNumber>1</SIF_PacketNumber> <SIF_MorePackets>No</SIF_MorePackets> <SIF_ObjectData /> </SIF_Response> </SIF_Message>
Example 5.2.7-4: SIF_Response with no matching objects

5.2.8 SIF_Subscribe

This message is used to subscribe to event objects that are contained in this message.

SIF_Subscribe
Figure 5.2.8-1: SIF_Subscribe SIF_Subscribe SIF_Header SIF_Object ObjectName SIF_Contexts
 Element/@AttributeCharDescriptionType
 SIF_SubscribeM

This message is used to subscribe to event objects that are contained in this message.

 
 
 SIF_HeaderM

Header information associated with this message.

 
SIF_Header
 SIF_ObjectMR  
@ObjectNameM

The actual name of the object that is being subscribed to. All valid SIF_Events for this object will be routed to the subscriber.

 
SIF_SubscribeObjectNamesType
 SIF_Object/SIF_ContextsO

The contexts to which the subscription applies; if omitted, the context is SIF_Default.

 
SIF_Contexts
Table 5.2.8-1: SIF_Subscribe
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Subscribe> <SIF_Header> <SIF_MsgId>AB2065FD3261545A31905937B265CE01</SIF_MsgId> <SIF_Timestamp>2006-02-18T20:39:12-08:00</SIF_Timestamp> <SIF_SourceId>RamseyLIB</SIF_SourceId> </SIF_Header> <SIF_Object ObjectName="StudentPersonal" /> <SIF_Object ObjectName="StaffPersonal" /> </SIF_Subscribe> </SIF_Message>
Example 5.2.8-1: SIF_Subscribe

5.2.9 SIF_SystemControl

A SIF_SystemControl message is designed to control the flow of data between an agent and ZIS or vice-versa, and to synchronously retrieve data available from the ZIS. The SIF_SystemControl message is a container for a number of specialized control messages. SIF_SystemControl messages are handled immediately by receivers and are not persisted in a message queue for later delivery.

SIF_SystemControl
Figure 5.2.9-1: SIF_SystemControl SIF_SystemControl SIF_Header SIF_SystemControlData SIF_Ping SIF_Sleep SIF_Wakeup SIF_GetMessage SIF_GetZoneStatus SIF_GetAgentACL SIF_CancelRequests
 Element/@AttributeCharDescriptionType
 SIF_SystemControlM

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.

 
 
 SIF_HeaderM

Header information associated with this message.

 
SIF_Header
 SIF_SystemControlDataM

This element holds the sub-message being sent.

 
choice of:

SIF_Ping
SIF_Sleep
SIF_Wakeup
SIF_GetMessage
SIF_GetZoneStatus
SIF_GetAgentACL
SIF_CancelRequests
Table 5.2.9-1: SIF_SystemControl
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_SystemControl> <SIF_Header> <SIF_MsgId>C332B8A9DFA5480AB89B6B6F62BE57B3</SIF_MsgId> <SIF_Timestamp>2006-12-27T08:39:40-08:00</SIF_Timestamp> <SIF_SourceId>RamseyLIB</SIF_SourceId> </SIF_Header> <SIF_SystemControlData> <SIF_Ping /> </SIF_SystemControlData> </SIF_SystemControl> </SIF_Message>
Example 5.2.9-1: SIF_SystemControl

5.2.10 SIF_Ping

SIF_Ping is sent to detect if a ZIS or push-mode agent is ready to receive and process messages.

SIF_Ping
Figure 5.2.10-1: SIF_Ping SIF_Ping
 Element/@AttributeCharDescriptionType
 SIF_PingM

This sub-message detects if an a Push-Mode Agent or ZIS is ready to receive and process messages.

 
EMPTY
Table 5.2.10-1: SIF_Ping
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_SystemControl> <SIF_Header> <SIF_MsgId>C332B8A9DFA5480AB89B6B6F62BE57B3</SIF_MsgId> <SIF_Timestamp>2006-12-27T08:39:40-08:00</SIF_Timestamp> <SIF_SourceId>RamseyLIB</SIF_SourceId> </SIF_Header> <SIF_SystemControlData> <SIF_Ping /> </SIF_SystemControlData> </SIF_SystemControl> </SIF_Message>
Example 5.2.10-1: SIF_Ping
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>AE9E2BD747B94F4D8545E41F482854C8</SIF_MsgId> <SIF_Timestamp>2006-10-14T14:23:20-08:00</SIF_Timestamp> <SIF_SourceId>RamseySIS</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseyZIS</SIF_OriginalSourceId> <SIF_OriginalMsgId>9812ABFD3261545A31905937B265CE01</SIF_OriginalMsgId> <SIF_Status> <SIF_Code>1</SIF_Code> </SIF_Status> </SIF_Ack> </SIF_Message>
Example 5.2.10-2: SIF_SystemControl—SIF_Ping ("Okay" status)
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>3C11DFF1451C4E9A8A1F07E03C1D7FBB</SIF_MsgId> <SIF_Timestamp>2006-10-14T14:24:31-08:00</SIF_Timestamp> <SIF_SourceId>RamseySIS</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseyZIS</SIF_OriginalSourceId> <SIF_OriginalMsgId>9812ABFD3261545A31905937B265CE01</SIF_OriginalMsgId> <SIF_Status> <SIF_Code>8</SIF_Code> <SIF_Desc>Receiver is sleeping</SIF_Desc> </SIF_Status> </SIF_Ack> </SIF_Message>
Example 5.2.10-3: SIF_SystemControl—SIF_Ping ("Receiver is sleeping" status)
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>1594A3B29DD34786B5EA77998899F49F</SIF_MsgId> <SIF_Timestamp>2006-10-14T14:24:31-08:00</SIF_Timestamp> <SIF_SourceId>RamseyZIS</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseySIS</SIF_OriginalSourceId> <SIF_OriginalMsgId>9812ABFD3261545A31905937B265CE01</SIF_OriginalMsgId> <SIF_Error> <SIF_Category>10</SIF_Category> <SIF_Code>4</SIF_Code> <SIF_Desc>Unable to establish connection</SIF_Desc> <SIF_ExtendedDesc>Error 10061: Connection refused</SIF_ExtendedDesc> </SIF_Error> </SIF_Ack> </SIF_Message>
Example 5.2.10-4: SIF_SystemControl—SIF_Ping (Transport error returned)

5.2.11 SIF_Sleep

The SIF_Sleep message allows an agent to notify a ZIS or a ZIS to notify a push-mode agent that it must not send any more messages to the sender of the SIF_Sleep. After the sender receives a SIF_Ack indicating that the message was received, the receiver must not send any further messages to the sender.

This message provides the ability to signal an agent or ZIS that the sender will be unable to process further messages until some time in the future. Reasons for sending a SIF_Sleep message include the sender is unable to process more data because of limited resources (i.e. disk storage, network bandwidth, etc.), or the sender is being temporarily shutdown and will be unable to receive messages.

Since the sender may send a SIF_Sleep message for a variety of reasons, if the receiver sends messages after a SIF_Sleep message but prior to receiving a SIF_Wakeup or SIF_Register message from the sender, an error must be returned. A transport error will occur or be returned if a connection cannot be established with the sender, or the sender may choose to receive the connection but return an error.

If the sender is an agent, the ZIS will continue to hold any messages for the agent in the queue but the ZIS will not send those messages until a SIF_Wakeup (or SIF_Register) message is received. If an agent is processing a message requiring additional SIF_Requests to be sent to the ZIS and a SIF_Sleep message is received from the ZIS, the agent will not be able to retrieve the additional data. The agent must abort the processing of the message and only attempt to process the message after receiving a SIF_Wakeup message from the ZIS.

An agent or ZIS is not required to be able to send SIF_Sleep messages. However, if an agent or ZIS has the ability to send a SIF_Sleep, it must also be able to send a SIF_Wakeup. Although the sending of SIF_Sleep is optional, an agent or ZIS must always be able to process and respond appropriately to these messages if received.

SIF_Sleep
Figure 5.2.11-1: SIF_Sleep SIF_Sleep
 Element/@AttributeCharDescriptionType
 SIF_SleepM

This sub-message tells a receiver not to send any more messages to the sender.

 
EMPTY
Table 5.2.11-1: SIF_Sleep
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_SystemControl> <SIF_Header> <SIF_MsgId>1594A3B29DD34786B5EA77998899F49F</SIF_MsgId> <SIF_Timestamp>2006-10-14T14:28:19-08:00</SIF_Timestamp> <SIF_SourceId>RamseyZIS</SIF_SourceId> </SIF_Header> <SIF_SystemControlData> <SIF_Sleep /> </SIF_SystemControlData> </SIF_SystemControl> </SIF_Message>
Example 5.2.11-1: SIF_Sleep
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>9F5167FA5CA848F99EB27544B314AF4D</SIF_MsgId> <SIF_Timestamp>2006-10-14T14:29:09-08:00</SIF_Timestamp> <SIF_SourceId>RamseySIS</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseyZIS</SIF_OriginalSourceId> <SIF_OriginalMsgId>1594A3B29DD34786B5EA77998899F49F</SIF_OriginalMsgId> <SIF_Status> <SIF_Code>1</SIF_Code> </SIF_Status> </SIF_Ack> </SIF_Message>
Example 5.2.11-2: SIF_Ack with "Okay" status in response to SIF_Sleep

5.2.12 SIF_Wakeup

When the "sleeping" agent or ZIS is ready to resume message processing, it will send a SIF_Wakeup message. This will signal the receiver that the sender is now able to process messages. Sending a SIF_Wakeup message without a previous SIF_Sleep message is permissible and is not considered an error.

If there are any blocked events in the Agent's queue when a ZIS receives the SIF_Wakeup message, the blocks will be removed.

Since a ZIS may choose to stop sending messages to an agent if a connection cannot be made with that agent, it is recommended that an agent send a SIF_Wakeup message to the ZIS upon agent startup.

An agent or ZIS is not required to be able to send SIF_Wakeup messages. Although the sending of SIF_Wakeup is optional, an agent or ZIS must always be able to process and respond to these messages correctly if received.

SIF_Wakeup
Figure 5.2.12-1: SIF_Wakeup SIF_Wakeup
 Element/@AttributeCharDescriptionType
 SIF_WakeupM

This message tells a receiver that the sender is able to process messages.

 
EMPTY
Table 5.2.12-1: SIF_Wakeup
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_SystemControl> <SIF_Header> <SIF_MsgId>715A32E026B0495A826DF84E821949BD</SIF_MsgId> <SIF_Timestamp>2006-10-14T15:34:22-08:00</SIF_Timestamp> <SIF_SourceId>RamseyZIS</SIF_SourceId> </SIF_Header> <SIF_SystemControlData> <SIF_Wakeup /> </SIF_SystemControlData> </SIF_SystemControl> </SIF_Message>
Example 5.2.12-1: SIF_Wakeup
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>5631E28868E3482EAA51B6CDE4145957</SIF_MsgId> <SIF_Timestamp>2006-10-14T15:34:48-08:00</SIF_Timestamp> <SIF_SourceId>RamseySIS</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseyZIS</SIF_OriginalSourceId> <SIF_OriginalMsgId>715A32E026B0495A826DF84E821949BD</SIF_OriginalMsgId> <SIF_Status> <SIF_Code>1</SIF_Code> </SIF_Status> </SIF_Ack> </SIF_Message>
Example 5.2.12-2: SIF_Ack with an "Okay" status in response to SIF_Wakeup

5.2.12.1 SIF_Sleep/SIF_Wakeup versus SIF_Register/SIF_Unregister

Using the SIF_Wakeup message is the preferred method of communicating that an agent or ZIS is ready to process messages. This is preferable over the use of a SIF_Register message because a SIF_Register message specifies protocol information while the SIF_Sleep/SIF_Wakeup pair communicates flow control information. However, when a SIF_Register message is processed, the receiver must behave like a SIF_Wakeup message was also received.

It is important to note that while SIF_Sleep and SIF_Wakeup are opposites of one another, this is not the case with SIF_Register and SIF_Unregister. This is because a SIF_Unregister command removes essential agent configuration information such as the provision and subscription lists, which will not be specified by a subsequent SIF_Register command. (SIF_Unregister also causes any messages pending delivery to the agent to be purged from the agent's queue.) In other words, a SIF_Register alone will not reverse the effects of a SIF_Unregister.

5.2.13 SIF_GetMessage

The SIF_GetMessage message provides the mechanism for an agent to pull message from a ZIS. An agent sends a SIF_GetMessage and the ZIS returns the next available message, subject to Selective Message Blocking, wrapped in a SIF_Ack with a SIF_Status/SIF_Code of 0 and the message in the SIF_Status/SIF_Data element. If there are no messages to be returned, the ZIS returns a value of 9 in SIF_Status/SIF_Code.

If an agent is not registered with a mode of Pull the ZIS will return a SIF_Ack with an error category of Registration and an error code indicating the agent is registered in Push mode.

SIF_GetMessage
Figure 5.2.13-1: SIF_GetMessage SIF_GetMessage
 Element/@AttributeCharDescriptionType
 SIF_GetMessageM

This message tells the ZIS to return the first available message to the agent, subject to Selective Message Blocking.

 
EMPTY
Table 5.2.13-1: SIF_GetMessage
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_SystemControl> <SIF_Header> <SIF_MsgId>B0E80A74265A4A75ADDC0ECC50AEF737</SIF_MsgId> <SIF_Timestamp>2006-10-14T15:54:32-08:00</SIF_Timestamp> <SIF_SourceId>RamseySIS</SIF_SourceId> </SIF_Header> <SIF_SystemControlData> <SIF_GetMessage /> </SIF_SystemControlData> </SIF_SystemControl> </SIF_Message>
Example 5.2.13-1: SIF_GetMessage
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>9861A45AAC364607938A7DB440514DDF</SIF_MsgId> <SIF_Timestamp>2006-10-14T15:54:42-08:00</SIF_Timestamp> <SIF_SourceId>RamseyZIS</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseySIS</SIF_OriginalSourceId> <SIF_OriginalMsgId>B0E80A74265A4A75ADDC0ECC50AEF737</SIF_OriginalMsgId> <SIF_Status> <SIF_Code>0</SIF_Code> <SIF_Data> <SIF_Message Version="2.3"> <SIF_Event> <SIF_Header> <SIF_MsgId>AB34DC093261545A31905937B265CE01</SIF_MsgId> <SIF_Timestamp>2006-10-14T15:40:12-08:00</SIF_Timestamp> <SIF_SourceId>RamseySIS</SIF_SourceId> </SIF_Header> <SIF_ObjectData> <SIF_EventObject ObjectName="StudentPersonal" Action="Change"> <StudentPersonal RefId="D3E34B359D75101A8C3D00AA001A1652"> <PersonInfo> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>03 9637-2289</Number> <Extension>72289</Extension> <ListedStatus>Y</ListedStatus> </PhoneNumber> <PhoneNumber Type="0888"> <Number>0437-765-234</Number> <ListedStatus>N</ListedStatus> </PhoneNumber> </PhoneNumberList> </PersonInfo> </StudentPersonal> </SIF_EventObject> </SIF_ObjectData> </SIF_Event> </SIF_Message> </SIF_Data> </SIF_Status> </SIF_Ack> </SIF_Message>
Example 5.2.13-2: SIF_Ack in response to SIF_GetMessage
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>9861A45AAC364607938A7DB440514DDF</SIF_MsgId> <SIF_Timestamp>2006-10-14T15:54:42-08:00</SIF_Timestamp> <SIF_SourceId>RamseyZIS</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseySIS</SIF_OriginalSourceId> <SIF_OriginalMsgId>B0E80A74265A4A75ADDC0ECC50AEF737</SIF_OriginalMsgId> <SIF_Status> <SIF_Code>9</SIF_Code> </SIF_Status> </SIF_Ack> </SIF_Message>
Example 5.2.13-3: SIF_Ack in response to SIF_GetMessage (no message in queue)

5.2.14 SIF_GetZoneStatus

The SIF_GetZoneStatus message provides the agent with the ability to synchronously retrieve the current status of the zone, by-passing the asynchronous nature of retrieving the zone status by sending a SIF_Request for SIF_ZoneStatus and waiting for the arrival of the SIF_ZoneStatus response at the top of its queue. Agents may also use the asynchronous model for requesting SIF_ZoneStatus, if and when desired.

SIF_GetZoneStatus
Figure 5.2.14-1: SIF_GetZoneStatus SIF_GetZoneStatus
 Element/@AttributeCharDescriptionType
 SIF_GetZoneStatusM

This message tells the ZIS to return the current SIF_ZoneStatus in a SIF_Ack.

 
EMPTY
Table 5.2.14-1: SIF_GetZoneStatus
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_SystemControl> <SIF_Header> <SIF_MsgId>91401B5073F54AB1AEBC63E51764C77A</SIF_MsgId> <SIF_Timestamp>2006-10-14T16:09:54-08:00</SIF_Timestamp> <SIF_SourceId>RamseySIS</SIF_SourceId> </SIF_Header> <SIF_SystemControlData> <SIF_GetZoneStatus /> </SIF_SystemControlData> </SIF_SystemControl> </SIF_Message>
Example 5.2.14-1: SIF_GetZoneStatus
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>C4BF5F868EEC4A41AF7DAF316C4E89DC</SIF_MsgId> <SIF_Timestamp>2006-10-14T16:10:42-08:00</SIF_Timestamp> <SIF_SourceId>RamseyZIS</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseySIS</SIF_OriginalSourceId> <SIF_OriginalMsgId>91401B5073F54AB1AEBC63E51764C77A</SIF_OriginalMsgId> <SIF_Status> <SIF_Code>0</SIF_Code> <SIF_Data> <SIF_ZoneStatus ZoneId="SIFExampleZone">...</SIF_ZoneStatus> </SIF_Data> </SIF_Status> </SIF_Ack> </SIF_Message>
Example 5.2.14-2: SIF_Ack containing SIF_ZoneStatus

5.2.15 SIF_GetAgentACL

The SIF_GetAgentACL message provides the agent with the ability to synchronously retrieve its Access Control List permissions in the Zone via SIF_AgentACL. Agents may also use the asynchronous model of SIF_Request for requesting SIF_AgentACL, if and when desired.

SIF_GetAgentACL
Figure 5.2.15-1: SIF_GetAgentACL SIF_GetAgentACL
 Element/@AttributeCharDescriptionType
 SIF_GetAgentACLM

This message tells the ZIS to return the Agent's ACL permissions in a SIF_Ack.

 
EMPTY
Table 5.2.15-1: SIF_GetAgentACL

5.2.16 SIF_CancelRequests

The SIF_SystemControl—SIF_CancelRequests message allows an Agent or ZIS to notify a ZIS or Push-Mode Agent, respectively, that the specified SIF_Requests should be cancelled, whether pending or in process. Handling by a Push-Mode Agent is optional; if unsupported, the Agent returns a Generic Message Handling error upon receipt of the SIF_SystemControl message, error code "Message not supported."

SIF_CancelRequests
Figure 5.2.16-1: SIF_CancelRequests SIF_CancelRequests SIF_NotificationType SIF_RequestMsgIds SIF_RequestMsgId
 Element/@AttributeCharDescriptionType
 SIF_CancelRequestsM

This sub-message asks a receiver (ZIS or Push-Mode Agent) to cancel the specified SIF_Requests, pending or in process.

 
 
 SIF_NotificationTypeM values:
Standard
ZIS will send a "final" SIF_Response for each cancelled SIF_Request.
None
No further SIF_Responses for these requests will be placed in the Agent's queue.
 SIF_RequestMsgIdsM The list of SIF_Requests to cancel.  List
 SIF_RequestMsgIds/SIF_RequestMsgId
     
MR This is the SIF_MsgId of the SIF_Request message being cancelled.  MsgIdType
Table 5.2.16-1: SIF_CancelRequests
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_SystemControl> <SIF_Header> <SIF_MsgId>C332B8A9DFA5480AB89B6B6F62BE57B3</SIF_MsgId> <SIF_Timestamp>2006-12-27T08:39:40-08:00</SIF_Timestamp> <SIF_SourceId>AcmeAgent</SIF_SourceId> </SIF_Header> <SIF_SystemControlData> <SIF_CancelRequests> <SIF_NotificationType>None</SIF_NotificationType> <SIF_RequestMsgIds> <SIF_RequestMsgId>C332B8A9DFA5480AB89B6B6F62BE57B3</SIF_RequestMsgId> <SIF_RequestMsgId>1058ABCDE028D076F08365109BE7C892</SIF_RequestMsgId> </SIF_RequestMsgIds> </SIF_CancelRequests> </SIF_SystemControlData> </SIF_SystemControl> </SIF_Message>
Example 5.2.16-1: SIF_CancelRequests

5.2.17 SIF_Unprovide

This message performs the opposite function of SIF_Provide. It removes the message sender as a provider of the data objects contained in this message.

SIF_Unprovide
Figure 5.2.17-1: SIF_Unprovide SIF_Unprovide SIF_Header SIF_Object ObjectName SIF_Contexts
 Element/@AttributeCharDescriptionType
 SIF_UnprovideM

This message performs the opposite function of SIF_Provide.

 
 
 SIF_HeaderM

Header information associated with this message.

 
SIF_Header
 SIF_ObjectMR

This is the object that is being removed from the provider list.

 
 
@ObjectNameM

The actual name of the object that is being removed.

 
SIF_ProvideObjectNamesType
 SIF_Object/SIF_ContextsO

The contexts from which the object is being removed; if omitted, the context is SIF_Default.

 
SIF_Contexts
Table 5.2.17-1: SIF_Unprovide
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Unprovide> <SIF_Header> <SIF_MsgId>76EFAB543261545A31905937B265CE01</SIF_MsgId> <SIF_Timestamp>2006-02-18T20:39:12-08:00</SIF_Timestamp> <SIF_SourceId>RamseySIS</SIF_SourceId> </SIF_Header> <SIF_Object ObjectName="StudentPersonal" /> <SIF_Object ObjectName="StaffPersonal" /> </SIF_Unprovide> </SIF_Message>
Example 5.2.17-1: SIF_Unprovide

5.2.18 SIF_Unregister

This message allows an agent to remove any association it has with the ZIS. By sending this message, the ZIS will remove all provisions and subscriptions it maintains for the sender and discards any messages pending for the agent.

SIF_Unregister
Figure 5.2.18-1: SIF_Unregister SIF_Unregister SIF_Header
 Element/@AttributeCharDescriptionType
 SIF_UnregisterM

This message is used to unregister an agent from a Zone.

 
 
 SIF_HeaderM

Header information contained in the message.

 
SIF_Header
Table 5.2.18-1: SIF_Unregister
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Unregister> <SIF_Header> <SIF_MsgId>1057FABD3261545A31905937B265CE01</SIF_MsgId> <SIF_Timestamp>2006-02-18T20:39:12-08:00</SIF_Timestamp> <SIF_SourceId>RamseyFOOD</SIF_SourceId> </SIF_Header> </SIF_Unregister> </SIF_Message>
Example 5.2.18-1: SIF_Unregister

5.2.19 SIF_Unsubscribe

This message performs the opposite function of SIF_Subscribe. It removes the message sender as a subscriber to the SIF_Events contained in this message.

SIF_Unsubscribe
Figure 5.2.19-1: SIF_Unsubscribe SIF_Unsubscribe SIF_Header SIF_Object ObjectName SIF_Contexts
 Element/@AttributeCharDescriptionType
 SIF_UnsubscribeM

This message is used to unsubscribe from SIF_Events.

 
 
 SIF_HeaderM

Header information associated with this message.

 
SIF_Header
 SIF_ObjectMR  
@ObjectNameM

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.

 
SIF_SubscribeObjectNamesType
 SIF_Object/SIF_ContextsO

The applicable contexts; if omitted, the context is SIF_Default.

 
SIF_Contexts
Table 5.2.19-1: SIF_Unsubscribe
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Unsubscribe> <SIF_Header> <SIF_MsgId>101AE3703261545A31905937B265CE01</SIF_MsgId> <SIF_Timestamp>2006-02-18T20:39:12-08:00</SIF_Timestamp> <SIF_SourceId>RamseyFOOD</SIF_SourceId> </SIF_Header> <SIF_Object ObjectName="StudentPersonal" /> <SIF_Object ObjectName="StaffPersonal" /> </SIF_Unsubscribe> </SIF_Message>
Example 5.2.19-1: SIF_Unsubscribe

5.3 Objects

5.3.1 SIF_AgentACL

This object provides an Agent its access control list (ACL) settings in the Zone. It does not communicate which objects the Agent is currently registered as providing, subscribing, publishing, requesting, or responding; it simply lists the ACL rights granted to the Agent in the Zone. When objects are absent from any of the access lists, the Agent does not have the necessary rights to perform the given action on the object. While an Agent may asynchronously request this object from the ZIS via SIF_Request, it is typically returned synchronously in response to the SIF_SystemControl message SIF_GetAgentACL; it is also returned synchronously in response to SIF_Register.

Typically only Change events are reported.

SIF_AgentACL
Figure 5.3.1-1: SIF_AgentACL SIF_AgentACL SIF_ProvideAccess SIF_Object ObjectName SIF_Contexts SIF_SubscribeAccess SIF_Object ObjectName SIF_Contexts SIF_PublishAddAccess SIF_Object ObjectName SIF_Contexts SIF_PublishChangeAccess SIF_Object ObjectName SIF_Contexts SIF_PublishDeleteAccess SIF_Object ObjectName SIF_Contexts SIF_RequestAccess SIF_Object ObjectName SIF_Contexts SIF_RespondAccess SIF_Object ObjectName SIF_Contexts SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 SIF_AgentACL 

This object provides an Agent its access control list (ACL) settings in the Zone.

 
 
 SIF_ProvideAccessM

Access control list by object for SIF_Provide and corresponding section in SIF_Provision.

 
List
 SIF_ProvideAccess/SIF_Object
     
OR  
@ObjectNameM

The name of each object.

 
ObjectNameType
 SIF_ProvideAccess/SIF_Object/
     SIF_Contexts
M

List of contexts in which rights for the given action/object apply.

 
SIF_Contexts
 SIF_SubscribeAccessM

Access control list by object for SIF_Subscribe and corresponding section in SIF_Provision.

 
List
 SIF_SubscribeAccess/SIF_Object
     
OR  
@ObjectNameM

The name of each object.

 
ObjectNameType
 SIF_SubscribeAccess/SIF_Object/
     SIF_Contexts
M

List of contexts in which rights for the given action/object apply.

 
SIF_Contexts
 SIF_PublishAddAccessM

Access control list by object for corresponding section in SIF_Provision, whether the Agent has the right to publish Add events.

 
List
 SIF_PublishAddAccess/SIF_Object
     
OR  
@ObjectNameM

The name of each object.

 
ObjectNameType
 SIF_PublishAddAccess/SIF_Object/
     SIF_Contexts
M

List of contexts in which rights for the given action/object apply.

 
SIF_Contexts
 SIF_PublishChangeAccessM

Access control list by object for corresponding section in SIF_Provision, whether the Agent has the right to publish Change events.

 
List
 SIF_PublishChangeAccess/SIF_Object
     
OR  
@ObjectNameM

The name of each object.

 
ObjectNameType
 SIF_PublishChangeAccess/SIF_Object/
     SIF_Contexts
M

List of contexts in which rights for the given action/object apply.

 
SIF_Contexts
 SIF_PublishDeleteAccessM

Access control list by object for corresponding section in SIF_Provision, whether the Agent has the right to publish Delete events.

 
List
 SIF_PublishDeleteAccess/SIF_Object
     
OR  
@ObjectNameM

The name of each object.

 
ObjectNameType
 SIF_PublishDeleteAccess/SIF_Object/
     SIF_Contexts
M

List of contexts in which rights for the given action/object apply.

 
SIF_Contexts
 SIF_RequestAccessM

Access control list by object for SIF_Request and corresponding section in SIF_Provision.

 
List
 SIF_RequestAccess/SIF_Object
     
OR  
@ObjectNameM

The name of each object.

 
ObjectNameType
 SIF_RequestAccess/SIF_Object/
     SIF_Contexts
M

List of contexts in which rights for the given action/object apply.

 
SIF_Contexts
 SIF_RespondAccessM

Access control list by object for corresponding section in SIF_Provision, whether the Agent has the right to respond to requests for an object regardless of being the Provider of that object.

 
List
 SIF_RespondAccess/SIF_Object
     
OR  
@ObjectNameM

The name of each object.

 
ObjectNameType
 SIF_RespondAccess/SIF_Object/
     SIF_Contexts
M

List of contexts in which rights for the given action/object apply.

 
SIF_Contexts
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 5.3.1-1: SIF_AgentACL
<SIF_AgentACL> <SIF_ProvideAccess> <SIF_Object ObjectName="StudentPersonal"> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> </SIF_ProvideAccess> <SIF_SubscribeAccess> <SIF_Object ObjectName="Authentication"> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> </SIF_SubscribeAccess> <SIF_PublishAddAccess> <SIF_Object ObjectName="StudentPersonal"> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> </SIF_PublishAddAccess> <SIF_PublishChangeAccess> <SIF_Object ObjectName="StudentPersonal"> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> </SIF_PublishChangeAccess> <SIF_PublishDeleteAccess> <SIF_Object ObjectName="StudentPersonal"> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> </SIF_PublishDeleteAccess> <SIF_RequestAccess> <SIF_Object ObjectName="Authentication"> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> </SIF_RequestAccess> <SIF_RespondAccess> <SIF_Object ObjectName="StudentPersonal"> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> </SIF_RespondAccess> </SIF_AgentACL>
Example 5.3.1-1: SIF_AgentACL

5.3.2 SIF_LogEntry

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.

SIF_Events are reported for this object.

SIF_LogEntry
Figure 5.3.2-1: SIF_LogEntry SIF_LogEntry Source LogLevel SIF_LogEntryHeader SIF_Header SIF_OriginalHeader SIF_Header SIF_Category SIF_Code SIF_ApplicationCode SIF_Desc SIF_ExtendedDesc SIF_LogObjects SIF_LogObject ObjectName SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 SIF_LogEntry 

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.

 
 
@SourceM

The SIF node that logged this entry.

 
values:
Agent
ZIS
@LogLevelM

The level of the log entry herein described.

 
values:
Info
Warning
Error
 SIF_LogEntryHeaderM

This is a copy of the SIF_Event/SIF_Header in the message that added this SIF_LogEntry to the zone. This copy facilitates querying log entries with regard to source, time, optionally destination, etc.

 
 
 SIF_LogEntryHeader/SIF_Header
     
M SIF_Header
 SIF_OriginalHeaderO

If this log entry references a previous SIF_Message, this element contains a copy of the referenced message's SIF_Header.

 
 
 SIF_OriginalHeader/SIF_Header
     
M SIF_Header
 SIF_CategoryC

A SIF_LogEntry category. May be omitted for informational-type postings, where typically a textual description will suffice.

Note that categories may be combined with the Source attribute of SIF_LogEntry to differentiate agent error conditions from ZIS error conditions.

 
values:
1
Success
2
Data Issues with Success Result
3
Data Issues with Failure Result
4
Error Conditions
 SIF_CodeO

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.

 
union of:

SIF_LogEntrySuccessCategoryType
SIF_LogEntryDataIssuesWithSuccessResultType
SIF_LogEntryDataIssuesWithFailureResultType
SIF_LogEntryAgentErrorConditionType
SIF_LogEntryZISErrorConditionType
 SIF_ApplicationCodeO

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:normalizedString
xs:maxLength64
 SIF_DescM

A textual description of the error.

 
xs:string
xs:maxLength1024
 SIF_ExtendedDescO

Any extended error description.

 
xs:string
 SIF_LogObjectsO List
 SIF_LogObjects/SIF_LogObject
     
MR

Any SIF data objects to which this log entry may apply.

 
SIF_LogEntryExtendedContentType
@ObjectNameM

The name of the SIF object referenced (e.g. StudentPersonal).

 
SIF_RequestObjectNamesType
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 5.3.2-1: SIF_LogEntry
<SIF_LogEntry Source="Agent" LogLevel="Error"> <SIF_LogEntryHeader> <SIF_Header> <SIF_MsgId>83252CE5C5F14FD88607F645224E4CAA</SIF_MsgId> <SIF_Timestamp>2006-08-19T10:36:00-05:00</SIF_Timestamp> <SIF_SourceId>RamseySISAgent</SIF_SourceId> </SIF_Header> </SIF_LogEntryHeader> <SIF_Category>4</SIF_Category> <SIF_Code>1</SIF_Code> <SIF_Desc>Agent has run out of memory and will shut down</SIF_Desc> <SIF_ExtendedDesc>OutOfMemoryException: ...</SIF_ExtendedDesc> </SIF_LogEntry>
Example 5.3.2-1: SIF_LogEntry when an agent encounters a system failure
<SIF_LogEntry Source="Agent" LogLevel="Error"> <SIF_LogEntryHeader> <SIF_Header> <SIF_MsgId>BA86894B795A4EB7A45093AD1CDBA54C</SIF_MsgId> <SIF_Timestamp>2006-08-19T10:39:00-05:00</SIF_Timestamp> <SIF_SourceId>RamseySISAgent</SIF_SourceId> </SIF_Header> </SIF_LogEntryHeader> <SIF_OriginalHeader> <SIF_Header> <SIF_MsgId>74234DCB460A4BCB8937B07467EA73CC</SIF_MsgId> <SIF_Timestamp>2006-08-19T10:29:00-05:00</SIF_Timestamp> <SIF_SourceId>RamseyLibraryAgent</SIF_SourceId> </SIF_Header> </SIF_OriginalHeader> <SIF_Category>3</SIF_Category> <SIF_Code>2</SIF_Code> <SIF_ApplicationCode>-33</SIF_ApplicationCode> <SIF_Desc>Could not delete student John Smith due to business rule</SIF_Desc> <SIF_LogObjects> <SIF_LogObject ObjectName="StudentPersonal"> <StudentPersonal RefId="76D3A70232FE40D7A5D43A7A317EAEF9"> <AlertMessages> <AlertMessage Type="Legal">This is the Legal Alert for Joe Student</AlertMessage> </AlertMessages> <LocalId>P00001</LocalId> <StateProvinceId>WB0025</StateProvinceId> <ElectronicIdList> <ElectronicId Type="Barcode">206654</ElectronicId> </ElectronicIdList> <Name Type="04"> <LastName>Student</LastName> <FirstName>Joe</FirstName> <MiddleName /> <PreferredName>Joe</PreferredName> </Name> <Demographics> <Gender>M</Gender> </Demographics> <AddressList> <Address Type="0123"> <Street> <Line1>6799 33rd Ave.</Line1> <StreetNumber>6799</StreetNumber> <StreetName>33rd</StreetName> <StreetType>Ave.</StreetType> </Street> <City>Chicago</City> <StateProvince>IL</StateProvince> <Country>US</Country> <PostalCode>60660</PostalCode> </Address> </AddressList> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>(312) 555-1234</Number> </PhoneNumber> </PhoneNumberList> <EmailList> <Email Type="Primary">Joe.Student@anyschool.com</Email> </EmailList> <OnTimeGraduationYear>2007</OnTimeGraduationYear> </StudentPersonal> </SIF_LogObject> </SIF_LogObjects> </SIF_LogEntry>
Example 5.3.2-2: SIF_LogEntry when an agent fails to delete a student
<SIF_LogEntry Source="Agent" LogLevel="Info"> <SIF_LogEntryHeader> <SIF_Header> <SIF_MsgId>64B0CC6CFB314A328E520A102229CBC8</SIF_MsgId> <SIF_Timestamp>2006-08-19T10:46:00-05:00</SIF_Timestamp> <SIF_SourceId>RamseySISAgent</SIF_SourceId> </SIF_Header> </SIF_LogEntryHeader> <SIF_Desc>Agent starting synchronization</SIF_Desc> </SIF_LogEntry>
Example 5.3.2-3: SIF_LogEntry when an agent starts synchronizing data
<SIF_LogEntry Source="ZIS" LogLevel="Error"> <SIF_LogEntryHeader> <SIF_Header> <SIF_MsgId>BC1D982CEC5F49D998169930FE5B271C</SIF_MsgId> <SIF_Timestamp>2006-08-19T10:49:00-05:00</SIF_Timestamp> <SIF_SourceId>RamseyZIS</SIF_SourceId> </SIF_Header> </SIF_LogEntryHeader> <SIF_OriginalHeader> <SIF_Header> <SIF_MsgId>74234DCB460A4BCB8937B07467EA73CC</SIF_MsgId> <SIF_Timestamp>2006-08-19T10:29:00-05:00</SIF_Timestamp> <SIF_SourceId>RamseyLibraryAgent</SIF_SourceId> </SIF_Header> </SIF_OriginalHeader> <SIF_Category>4</SIF_Category> <SIF_Code>2</SIF_Code> <SIF_Desc>Could not deliver StudentPicture Add to RamseyLibraryAgent (127,546 bytes) due to maximum buffer size of 16,384 bytes.</SIF_Desc> </SIF_LogEntry>
Example 5.3.2-4: SIF_LogEntry when a ZIS fails to deliver a message due to buffer size limitations

5.3.3 SIF_ZoneStatus

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.

Change events are supported on SIF_ZoneStatus.

SIF_ZoneStatus
Figure 5.3.3-1: SIF_ZoneStatus SIF_ZoneStatus ZoneId SIF_Name SIF_Icon SIF_Vendor SIF_Name SIF_Product SIF_Version SIF_Providers SIF_Provider SourceId SIF_ObjectList SIF_Object ObjectName SIF_ExtendedQuerySupport SIF_Contexts SIF_Subscribers SIF_Subscriber SourceId SIF_ObjectList SIF_Object ObjectName SIF_Contexts SIF_AddPublishers SIF_Publisher SourceId SIF_ObjectList SIF_Object ObjectName SIF_Contexts SIF_ChangePublishers SIF_Publisher SourceId SIF_ObjectList SIF_Object ObjectName SIF_Contexts SIF_DeletePublishers SIF_Publisher SourceId SIF_ObjectList SIF_Object ObjectName SIF_Contexts SIF_Responders SIF_Responder SourceId SIF_ObjectList SIF_Object ObjectName SIF_ExtendedQuerySupport SIF_Contexts SIF_Requesters SIF_Requester SourceId SIF_ObjectList SIF_Object ObjectName SIF_ExtendedQuerySupport SIF_Contexts SIF_SIFNodes SIF_SIFNode Type SIF_Name SIF_Icon SIF_NodeVendor SIF_NodeVersion SIF_Application SIF_Vendor SIF_Product SIF_Version SIF_SourceId SIF_Mode SIF_Protocol SIF_VersionList SIF_Version SIF_AuthenticationLevel SIF_EncryptionLevel SIF_MaxBufferSize SIF_Sleeping SIF_SupportedAuthentication SIF_ProtocolName SIF_SupportedProtocols SIF_Protocol SIF_SupportedVersions SIF_Version SIF_AdministrationURL SIF_Contexts SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 SIF_ZoneStatus 

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.

 
 
@
key
ZoneIdM

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:token
 SIF_NameM

The descriptive name for the zone.

 
xs:normalizedString
 SIF_IconO

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:anyURI
 SIF_VendorO

Contains information about the vendor that wrote this ZIS.

 
 
 SIF_Vendor/SIF_NameM

The name of the company that wrote the ZIS.

 
xs:normalizedString
 SIF_Vendor/SIF_ProductM

The product name assigned by the vendor to identify this ZIS.

 
xs:normalizedString
 SIF_Vendor/SIF_VersionM

The version of the vendor's product—not necessarily the SIF version.

 
xs:normalizedString
 SIF_ProvidersC

Encompasses all the providers registered with this ZIS. This element is mandatory if there are providers registered with the ZIS.

 
List
 SIF_Providers/SIF_Provider
     
MR  
@SourceIdM

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:token
xs:maxLength64
 SIF_Providers/SIF_Provider/
     SIF_ObjectList
M List
 SIF_Providers/SIF_Provider/
     SIF_ObjectList/SIF_Object
     
MR  
@ObjectNameM

The name of the object being provided by this SIF node.

 
ObjectNameType
 SIF_Providers/SIF_Provider/
     SIF_ObjectList/SIF_Object/
     SIF_ExtendedQuerySupport
M xs:boolean
 SIF_Providers/SIF_Provider/
     SIF_ObjectList/SIF_Object/
     SIF_Contexts
M SIF_Contexts
 SIF_SubscribersC

Encompasses all the subscribers registered with this ZIS. This element is mandatory if there are subscribers registered with the ZIS.

 
List
 SIF_Subscribers/SIF_Subscriber
     
MR  
@SourceIdM

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:token
xs:maxLength64
 SIF_Subscribers/SIF_Subscriber/
     SIF_ObjectList
M List
 SIF_Subscribers/SIF_Subscriber/
     SIF_ObjectList/SIF_Object
     
MR  
@ObjectNameM

The name of the object being subscribed to by this SIF node.

 
ObjectNameType
 SIF_Subscribers/SIF_Subscriber/
     SIF_ObjectList/SIF_Object/
     SIF_Contexts
M SIF_Contexts
 SIF_AddPublishersC

Encompasses all the Add SIF_Event publishers registered with this zone.

 
List
 SIF_AddPublishers/SIF_Publisher
     
MR  
@SourceIdM

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:token
xs:maxLength64
 SIF_AddPublishers/SIF_Publisher/
     SIF_ObjectList
M List
 SIF_AddPublishers/SIF_Publisher/
     SIF_ObjectList/SIF_Object
     
MR  
@ObjectNameM

The name of the object being published by this agent.

 
ObjectNameType
 SIF_AddPublishers/SIF_Publisher/
     SIF_ObjectList/SIF_Object/
     SIF_Contexts
M SIF_Contexts
 SIF_ChangePublishersC

Encompasses all the Change SIF_Event publishers registered with this zone.

 
List
 SIF_ChangePublishers/SIF_Publisher
     
MR  
@SourceIdM

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:token
xs:maxLength64
 SIF_ChangePublishers/SIF_Publisher/
     SIF_ObjectList
M List
 SIF_ChangePublishers/SIF_Publisher/
     SIF_ObjectList/SIF_Object
     
MR  
@ObjectNameM

The name of the object being published by this agent.

 
ObjectNameType
 SIF_ChangePublishers/SIF_Publisher/
     SIF_ObjectList/SIF_Object/
     SIF_Contexts
M SIF_Contexts
 SIF_DeletePublishersC

Encompasses all the Delete SIF_Event publishers registered with this zone.

 
List
 SIF_DeletePublishers/SIF_Publisher
     
MR  
@SourceIdM

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:token
xs:maxLength64
 SIF_DeletePublishers/SIF_Publisher/
     SIF_ObjectList
M List
 SIF_DeletePublishers/SIF_Publisher/
     SIF_ObjectList/SIF_Object
     
MR  
@ObjectNameM

The name of the object being published by this agent.

 
ObjectNameType
 SIF_DeletePublishers/SIF_Publisher/
     SIF_ObjectList/SIF_Object/
     SIF_Contexts
M SIF_Contexts
 SIF_RespondersC

Encompasses all the responders registered with this zone.

 
List
 SIF_Responders/SIF_Responder
     
MR  
@SourceIdM

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:token
xs:maxLength64
 SIF_Responders/SIF_Responder/
     SIF_ObjectList
M List
 SIF_Responders/SIF_Responder/
     SIF_ObjectList/SIF_Object
     
MR  
@ObjectNameM

The name of the object for which the agent can respond to requests.

 
ObjectNameType
 SIF_Responders/SIF_Responder/
     SIF_ObjectList/SIF_Object/
     SIF_ExtendedQuerySupport
M xs:boolean
 SIF_Responders/SIF_Responder/
     SIF_ObjectList/SIF_Object/
     SIF_Contexts
M SIF_Contexts
 SIF_RequestersC

Encompasses all the requesters registered with this zone.

 
List
 SIF_Requesters/SIF_Requester
     
MR  
@SourceIdM

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:token
xs:maxLength64
 SIF_Requesters/SIF_Requester/
     SIF_ObjectList
M List
 SIF_Requesters/SIF_Requester/
     SIF_ObjectList/SIF_Object
     
MR  
@ObjectNameM

The name of the object being requested by this agent.

 
ObjectNameType
 SIF_Requesters/SIF_Requester/
     SIF_ObjectList/SIF_Object/
     SIF_ExtendedQuerySupport
M xs:boolean
 SIF_Requesters/SIF_Requester/
     SIF_ObjectList/SIF_Object/
     SIF_Contexts
M SIF_Contexts
 SIF_SIFNodesC

Encompasses all of the nodes registered with the ZIS. This element is mandatory if there are SIF nodes registered.

 
List
 SIF_SIFNodes/SIF_SIFNodeMR  
@TypeM

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.

 
values:
Agent
ZIS
 SIF_SIFNodes/SIF_SIFNode/
     SIF_Name
M

The descriptive name of the SIF node (i.e. Ramsey Food Services).

 
xs:normalizedString
 SIF_SIFNodes/SIF_SIFNode/
     SIF_Icon
O

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:anyURI
 SIF_SIFNodes/SIF_SIFNode/
     SIF_NodeVendor
O

The vendor of the SIF agent.

 
xs:normalizedString
xs:maxLength256
 SIF_SIFNodes/SIF_SIFNode/
     SIF_NodeVersion
O

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.

Examples
2.0.1.11

xs:normalizedString
xs:maxLength32
 SIF_SIFNodes/SIF_SIFNode/
     SIF_Application
O

Contains information about the vendor of the product that the agent represents.

 
 
 SIF_SIFNodes/SIF_SIFNode/
     SIF_Application/SIF_Vendor
     
M

The name of the company of the product that this agent supports.

 
xs:normalizedString
xs:maxLength256
 SIF_SIFNodes/SIF_SIFNode/
     SIF_Application/SIF_Product
     
M

The name of the product that this agent supports.

 
xs:normalizedString
xs:maxLength256
 SIF_SIFNodes/SIF_SIFNode/
     SIF_Application/SIF_Version
     
M

The version of the product. This field is informative only.

 
xs:normalizedString
xs:maxLength32
 SIF_SIFNodes/SIF_SIFNode/
     SIF_SourceId
M

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:token
xs:maxLength64
 SIF_SIFNodes/SIF_SIFNode/
     SIF_Mode
M

Specifies the communication mode (Pull or Push) as chosen by the message sender.

 
values:
Push
Pull
 SIF_SIFNodes/SIF_SIFNode/
     SIF_Protocol
O

Describes the currently active protocol that the SIF node is using to communicate with the ZIS.

 
SIF_Protocol
 SIF_SIFNodes/SIF_SIFNode/
     SIF_VersionList
M List
 SIF_SIFNodes/SIF_SIFNode/
     SIF_VersionList/SIF_Version
     
MR

This is the version or versions of the SIF Implementation Specification that define(s) the messages the SIF node can receive. For agents, this information was communicated when the SIF node registered with the ZIS.

 
VersionWithWildcardsType
 SIF_SIFNodes/SIF_SIFNode/
     SIF_AuthenticationLevel
O

This is the level of authentication that the SIF node supports when it wants to communicate via a secure channel.

 
SIF_AuthenticationLevel
 SIF_SIFNodes/SIF_SIFNode/
     SIF_EncryptionLevel
O

This is the level of encryption that the SIF node supports when it wants to communicate via a secure channel.

 
SIF_EncryptionLevel
 SIF_SIFNodes/SIF_SIFNode/
     SIF_MaxBufferSize
M

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:unsignedInt
 SIF_SIFNodes/SIF_SIFNode/
     SIF_Sleeping
M

This element shows whether the SIF node is ready to process messages.

 
values:
No
The SIF node is ready to process messages
Yes
The SIF node is sleeping and cannot process messages
 SIF_SupportedAuthenticationC

Enumerates the various authentication protocols that the ZIS supports. If the ZIS supports an authentication protocol this element is mandatory.

 
List
 SIF_SupportedAuthentication/
     SIF_ProtocolName
MR

Describes a particular authentication protocol supported.

 
values:
X.509
 SIF_SupportedProtocolsM

Enumerates the various communication transport protocols that are supported by the ZIS.

 
List
 SIF_SupportedProtocols/SIF_Protocol
     
MR SIF_Protocol
 SIF_SupportedVersionsM

Enumerates the versions of the SIF Implementation Specification that this ZIS can use when communicating with the agent.

 
List
 SIF_SupportedVersions/SIF_Version
     
MR

Lists a specific SIF Implementation Specification version.

 
VersionType
 SIF_AdministrationURLO

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:anyURI
 SIF_ContextsM SIF_Contexts
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 5.3.3-1: SIF_ZoneStatus
<SIF_ZoneStatus ZoneId="RamseyZIS"> <SIF_Name>Ramsey Elementary</SIF_Name> <SIF_Vendor> <SIF_Name>ZoneMaster, Inc.</SIF_Name> <SIF_Product>ZonePlus Zone Integration Server</SIF_Product> <SIF_Version>3.01</SIF_Version> </SIF_Vendor> <SIF_Providers> <SIF_Provider SourceId="RamseyFOOD"> <SIF_ObjectList> <SIF_Object ObjectName="StudentMeal"> <SIF_ExtendedQuerySupport>false</SIF_ExtendedQuerySupport> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> </SIF_ObjectList> </SIF_Provider> <SIF_Provider SourceId="RamseyLIB"> <SIF_ObjectList> <SIF_Object ObjectName="LibraryPatronStatus"> <SIF_ExtendedQuerySupport>false</SIF_ExtendedQuerySupport> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> </SIF_ObjectList> </SIF_Provider> <SIF_Provider SourceId="RamseySIS"> <SIF_ObjectList> <SIF_Object ObjectName="StudentPersonal"> <SIF_ExtendedQuerySupport>false</SIF_ExtendedQuerySupport> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> <SIF_Object ObjectName="StudentSchoolEnrollment"> <SIF_ExtendedQuerySupport>false</SIF_ExtendedQuerySupport> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> </SIF_ObjectList> </SIF_Provider> </SIF_Providers> <SIF_Subscribers> <SIF_Subscriber SourceId="RamseyFOOD"> <SIF_ObjectList> <SIF_Object ObjectName="StudentPersonal"> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> <SIF_Object ObjectName="StudentSchoolEnrollment"> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> </SIF_ObjectList> </SIF_Subscriber> <SIF_Subscriber SourceId="RamseyLIB"> <SIF_ObjectList> <SIF_Object ObjectName="StudentPersonal"> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> <SIF_Object ObjectName="StudentSchoolEnrollment"> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> </SIF_ObjectList> </SIF_Subscriber> <SIF_Subscriber SourceId="RamseySIS"> <SIF_ObjectList> <SIF_Object ObjectName="StudentContact"> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_Object> </SIF_ObjectList> </SIF_Subscriber> </SIF_Subscribers> <SIF_SIFNodes> <SIF_SIFNode Type="Agent"> <SIF_Name>Ramsey Food Services</SIF_Name> <SIF_SourceId>RamseyFOOD</SIF_SourceId> <SIF_Mode>Push</SIF_Mode> <SIF_Protocol Type="HTTPS" Secure="Yes"> <SIF_URL>https://RamseyNT:8010/FoodService</SIF_URL> </SIF_Protocol> <SIF_VersionList> <SIF_Version>2.3</SIF_Version> </SIF_VersionList> <SIF_MaxBufferSize>16384</SIF_MaxBufferSize> <SIF_Sleeping>No</SIF_Sleeping> </SIF_SIFNode> <SIF_SIFNode Type="Agent"> <SIF_Name>Ramsey Media Resource Center</SIF_Name> <SIF_SourceId>RamseyLIB</SIF_SourceId> <SIF_Mode>Pull</SIF_Mode> <SIF_Protocol Type="HTTPS" Secure="Yes"> <SIF_URL>https://RamseyNT:8020/Library</SIF_URL> </SIF_Protocol> <SIF_VersionList> <SIF_Version>2.3</SIF_Version> </SIF_VersionList> <SIF_MaxBufferSize>16384</SIF_MaxBufferSize> <SIF_Sleeping>No</SIF_Sleeping> </SIF_SIFNode> <SIF_SIFNode Type="Agent"> <SIF_Name>Ramsey Administration</SIF_Name> <SIF_SourceId>RamseySIS</SIF_SourceId> <SIF_Mode>Push</SIF_Mode> <SIF_Protocol Type="HTTPS" Secure="Yes"> <SIF_URL>https://RamseyNT:8030/StudentAdmin</SIF_URL> </SIF_Protocol> <SIF_VersionList> <SIF_Version>2.3</SIF_Version> </SIF_VersionList> <SIF_MaxBufferSize>16384</SIF_MaxBufferSize> <SIF_Sleeping>No</SIF_Sleeping> </SIF_SIFNode> </SIF_SIFNodes> <SIF_SupportedAuthentication> <SIF_ProtocolName>X.509</SIF_ProtocolName> </SIF_SupportedAuthentication> <SIF_SupportedProtocols> <SIF_Protocol Type="HTTPS" Secure="Yes"> <SIF_URL>https://RamseyNT:8000/ZIS</SIF_URL> </SIF_Protocol> <SIF_Protocol Type="HTTP" Secure="No"> <SIF_URL>http://RamseyNT:8000/ZIS</SIF_URL> </SIF_Protocol> </SIF_SupportedProtocols> <SIF_SupportedVersions> <SIF_Version>2.3</SIF_Version> </SIF_SupportedVersions> <SIF_AdministrationURL>http://RamseyNT:8000/Administer</SIF_AdministrationURL> <SIF_Contexts> <SIF_Context>SIF_Default</SIF_Context> </SIF_Contexts> </SIF_ZoneStatus>
Example 5.3.3-1: SIF_ZoneStatus

6 Data Model

6.1 Introduction

This section presents the XML structure for SIF Data Model common elements and objects in a tabular format for readers less versed in parsing formal XML schema definitions, along with conventions that typically apply in the data model for easy reference.

6.1.1 Format

The Char(acteristics) column for all of the tables in this section use the following codes:

CodeCharacteristic
MMandatory element or attribute
OOptional element or attribute
CConditional element or attribute
MRMandatory and repeatable element
OROptional and repeatable element
CRConditional and repeatable element

Mandatory elements MUST be present in Add events, and in non-empty and non-error responses to requests for entire SIF objects (e.g., no SIF_Query/SIF_QueryObject/SIF_Element elements supplied in the request). Mandatory attributes MUST always be present if their corresponding element is present.

SIF Agents and Zone Integration Servers MUST supply data according to the types specified in the Type columns and their corresponding equivalents in the most recent schema files associated with this specification. If there is a discrepancy between object and element definitions in this specification and the corresponding schema files, the definition in the schema files takes precedence; every effort will be made to note discrepancies in the errata for this document as they are identified.

6.1.2 Conventions

6.1.2.1 Object Attributes/Primary Keys

While XML attributes are primarily used in SIF to provide additional processing information regarding the associated element content, attributes at the root level of an object have special significance. These attributes serve as the primary key or identifier for the object; in many cases this is no more than a RefId GUID of RefIdType, though the primary key may consist solely of foreign key references to other SIF objects and include school years, dates, etc. These key attributes are immutable over the lifetime of an object and serve the purpose of uniquely identifying an object, especially in Change and Delete events. Some groups include non-primary key attributes in object attributes (e.g. mandatory foreign key references to other objects) and attributes that provide additional processing information regarding the objects. As SIF currently mandates that all object attributes be included in all messages, when a SIF Association working group or task force places a non-primary key attribute in the object's attribute definitions (typically out of historical query conventions), they are indicating that this value must still be accessible to systems in Change and, more notably, Delete events. All object attributes must be supplied to identify the object in Change and Delete events.

6.1.2.2 Object References

As stated elsewhere, SIF primarily uses GUIDs as object identifiers, primary keys, or RefIds. References to primary keys (foreign key references) follow certain conventions in SIF in most objects:

6.1.2.3 Lists/Repeatable Elements

To those accustomed with normalized relational databases, the SIF Data Model will appear to not be especially normalized, especially with regard to repeating groups of data not being separated into their own "tables," or in SIF's case, "objects" with primary/foreign keys to maintain the relationship. Bear in mind that SIF is not a format for storing data; it is a format for transmitting data asynchronously between disparate and distributed systems needing to share data for interoperability; the format this data takes in different systems can vary greatly, and the data related to any given "entity" may come from a variety of sources and systems. The goals of normalization—eliminating redundancy, organizing data efficiently, reducing inconsistencies, etc.—take on a different meaning in a message queuing system. Of primary importance is transmitting the data needed for interoperability in a minimum number of messages. The need to "join" together a great number of separate objects is kept to a minimum in SIF, as individual systems do not have access to all the data required and due to the asynchronous nature of SIF, any one of these systems may take a fair amount of time before returning data necessary for joins (SIF_ExtendedQuery has been developed to communicate a join to a single system that may have direct access to the all the data necessary to efficiently accomplish this task). It's one thing to make a separate request for a student's picture or enrollment information, another entirely to request every available phone number, address and e-mail address separately from the SIF Zone. As such, it is often the case in SIF that repeating data is stored directly in an object, rather than being separated out into a separate object.

Repeating data is very analogous to objects, though, within any given object. In SIF's Publish/Subscribe model, repeating elements in objects can be added to, changed in or deleted from an object, much like objects can be added to, changed in or deleted from a Zone. Within an existing object, all of these actions take place within a Change event, and repeating elements—if any exist initially—are first made available within an object in an Add event or can be obtained directly via requests. Repeatable elements are contained within a parent List element in most SIF objects whether or not they support events, e.g.:

<EmailList> <Email Type="Primary">contact@sifinfo.org</Email> <Email Type="Alternate1">info@sifinfo.org</Email> </EmailList>
Example 6.1.2.3-1: EmailList

Two types of list are currently defined in SIF, ActionList and List; both consist of a list container element and a single repeatable child element. Each type of list serves different needs and has associated conventions for communication and processing in the SIF Publish/Subscribe Model. List or ActionList is specified in the Type column in tables in this section for each list; when an ActionList the key, possibly compound, is also indicated in the Type column. ActionList key values must be unique within an instance of an ActionList.

6.1.2.3.1 ActionList

An ActionList has a key that uniquely identifies each child element within the list. This type of list is primarily used when it is desirable or necessary for systems to support or refer to a subset of the list, either due to functionally only being able to support a subset or because specifying a subset in Change events is more efficient than transmitting a whole list as in List. While one system may support the Primary and Alternate1 e-mail address types above, another may additionally support Alternate2 addresses. The second system is able to communicate the addition, change or deletion of an Alternate2 address without the first system inadvertently interpreting that to mean a student or staff member's Primary and Alternate1 addresses have been deleted.

Systems communicate the whole list as a cohesive unit consisting of the parent list container element and all child elements in an Add event; if the container is present with no child elements, the list is empty; the same is implied when an optional list is not present in an Add event. In a Change event, systems SHOULD only transmit those elements that have been added, changed or deleted. Deletion is not implied by the omission of a child element, but rather explicitly communicated with a SIF_Action attribute of Delete added to the deleted element, along with the element's key attribute(s)/element(s) at a minimum. An empty list in a Change event implies no changes have occurred in the list, as does the omission of the list. Systems storing ActionList data should set/replace/delete any existing values identified by primary keys in the Change event they support.

<EmailList> <Email Type="Primary">editor@sifinfo.org</Email> <Email Type="Alternate1" SIF_Action="Delete" /> </EmailList>
Example 6.1.2.3.1-1: Indicating a new value for the Primary e-mail address and deleting the Alternate1 address

A system that supports an Alternate2 e-mail makes no changes to its value for that address type.

6.1.2.3.2 List

While a unique, primary key may still be identifiable in its child elements, a List is used primarily when:

Lists are always transmitted as a cohesive unit consisting of the parent list container element and all child elements. If no child elements exist in the list, the list consists of the container element alone. Omission of an optional List in an Add event also implies no list items. In a Change event, omission of the List indicates no changes have been made; otherwise the parent container element and all child elements, if any, are included. Systems storing List data should replace all corresponding data in their systems when persisting the list; likewise when a change is made to one or more list items or when all items in the list are deleted, systems should send the whole list in a Change event.

<CountriesOfCitizenship> <CountryOfCitizenship>US</CountryOfCitizenship> <CountryOfCitizenship>DE</CountryOfCitizenship> </CountriesOfCitizenship>
Example 6.1.2.3.2-1: Indicating an updated list of country citizenships

A system that supports CountriesOfCitizenship updates its local data to reflect Australia and German citizenship.

6.1.2.4 Supported Optional Elements Without Values

Some agents follow the convention of supplying an optional element as empty (e.g. <BirthDate></BirthDate> or <BirthDate/> to indicate that the application supports the element, but that it currently has no value available within a given object. To allow for this convention within SIF—as in this example an empty string does not satisfy the xs:date type definition of BirthDate—all optional elements in SIF are defined as nillable [SCHEMA]. To satisfy type constraints on an element while still supplying an empty or "nil" value, agents MUST tag the element with a true value for the nil attribute from namespace http://www.w3.org/2001/XMLSchema-instance [SCHEMA] (e.g. <BirthDate xsi:nil="true"/> where the prefix xsi has been mapped to the namespace http://www.w3.org/2001/XMLSchema-instance), unless an empty value is valid with regard to the element's type definition, in which case supplying the nil attribute value of true is optional. See SIF and XML Namespaces for more details on namespaces, and SIF and XML Schema for more details on SIF's use of XML Schema.

6.1.2.5 Externally-Defined XML

Note that XML not defined within SIF does not necessarily support ad hoc omission of XML elements at will to conform with the conventions of the SIF Publish/Subscribe Model (where unchanged elements are typically omitted in Change events, and where non-key elements are often omitted in Delete events) or of the SIF Request/Response Model (where a subset of elements can be retrieved from objects with requests). If externally-defined XML occurs within a SIF data object, SIF conventions do not extend to that XML unless that XML is defined to accommodate SIF conventions; the XML, when transmitted, must only conform to any external definitions dictating its structure, if any. Applications should be prepared for the possibility of receiving whole externally-defined XML structures in Change events (regardless of how little or much of the external XML has changed) and possibly also Delete events, likewise in responses even when a subset of the XML structure's child elements may have explicitly been requested.

6.2 Common Elements

6.2.1 Address

This element contains address data

Address
Figure 6.2.1-1: Address Address Type Role Street Line1 Line2 Line3 Complex StreetNumber StreetPrefix StreetName StreetType StreetSuffix ApartmentType ApartmentNumberPrefix ApartmentNumber ApartmentNumberSuffix City StateProvince Country PostalCode GridLocation MapReference Type XCoordinate YCoordinate RadioContact
 Element/@AttributeCharDescriptionType
 AddressM

This element contains address data.

 
 
@TypeM

Code that defines the location of the address. Note: A subset of specific valid values for each instance in a data object may be listed in that object.

 
AUCodeSetsAddressTypeType
@RoleM

A facet of Address

 
AUCodeSetsAddressRoleType
 StreetM

The street element is a complex element and breaks the street down into several parts. (Allow for PO Box here)

 
 
 Street/Line1M

Address line 1.

 
xs:normalizedString
 Street/Line2O

Address line 2.

 
xs:normalizedString
 Street/Line3O

Address line 3.

 
xs:normalizedString
 Street/ComplexO

Name of the complex.

 
xs:normalizedString
 Street/StreetNumberO

The address number assigned to the building.

 
xs:normalizedString
 Street/StreetPrefixO

Street prefix like NE

 
xs:normalizedString
 Street/StreetNameO

The name of the street.

 
xs:normalizedString
 Street/StreetTypeO

The type of street. For example, Lane, Blvd., Ave., etc.

 
xs:normalizedString
 Street/StreetSuffixO

Street suffix like SW.

 
xs:normalizedString
 Street/ApartmentTypeO

Type of apartment, for example, Suite.

 
xs:normalizedString
 Street/ApartmentNumberPrefix
     
O

Apartment number prefix.

 
xs:normalizedString
 Street/ApartmentNumberO

The number of the apartment.

 
xs:normalizedString
 Street/ApartmentNumberSuffix
     
O

Apartment number suffix.

 
xs:normalizedString
 CityM

The city part of the address.

 
xs:normalizedString
 StateProvinceC

The state or province code. StateTerritory Code only applicable if an Australian Address. Conditional- If Australian Address this is mandatory.

 
StateProvince
 CountryO

The country code.

 
Country
 PostalCodeM

The ZIP/postal code.

 
xs:normalizedString
 GridLocationO

The location of the address.

 
GridLocation
 MapReferenceO

A Map Reference in x-y co-ordinates.

 
 
@TypeM

Type map reference

 
xs:normalizedString
 MapReference/XCoordinateM

X Co-ordinate of reference

 
xs:normalizedString
 MapReference/YCoordinateM

Y Co-ordinate of reference

 
xs:normalizedString
 RadioContactO

UHF Radio frequency or channel used for contact eg: 477MHz or CH60

 
xs:string
Table 6.2.1-1: Address
<Address Type="0123" Role="012B"> <Street> <Line1>1 IBM Plaza</Line1> <Line2>Suite 2000</Line2> <StreetNumber>1</StreetNumber> <StreetName>IBM</StreetName> <StreetType>Plaza</StreetType> <ApartmentType>Suite</ApartmentType> <ApartmentNumber>2000</ApartmentNumber> </Street> <City>Chicago</City> <StateProvince>IL</StateProvince> <Country>1101</Country> <PostalCode>60611</PostalCode> <GridLocation> <Latitude>41.850000</Latitude> <Longitude>-87.650000</Longitude> </GridLocation> </Address>
Example 6.2.1-1: Address

6.2.2 AddressList

A list of Address elements.

AddressList
Figure 6.2.2-1: AddressList AddressList Address SIF_Action
 Element/@AttributeCharDescriptionType
 AddressList 

A list of Address elements.

 
ActionList (Address/@Type, Address/@Role)
 AddressMR Address
@SIF_ActionO

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.

 
values:
Delete
Table 6.2.2-1: AddressList
<AddressList> <Address Type="0123" Role="012B"> <Street> <Line1>1 IBM Plaza</Line1> <Line2>Suite 2000</Line2> <StreetNumber>1</StreetNumber> <StreetName>IBM</StreetName> <StreetType>Plaza</StreetType> <ApartmentType>Suite</ApartmentType> <ApartmentNumber>2000</ApartmentNumber> </Street> <City>Chicago</City> <StateProvince>IL</StateProvince> <Country>1101</Country> <PostalCode>60611</PostalCode> <GridLocation> <Latitude>41.850000</Latitude> <Longitude>-87.650000</Longitude> </GridLocation> </Address> </AddressList>
Example 6.2.2-1: AddressList

6.2.3 AttendanceCode

AttendanceCode
Figure 6.2.3-1: AttendanceCode AttendanceCode Code OtherCodeList
 Element/@AttributeCharDescriptionType
 AttendanceCode

Code that describes the absence/attendance.

 
 
 CodeM

Code representing the absence/attendance.

 
AUCodeSetsAttendanceCodeType
 OtherCodeListO OtherCodeList
Table 6.2.3-1: AttendanceCode
<AttendanceCode> <Code>200</Code> <OtherCodeList> <OtherCode Codeset="Local">S</OtherCode> <OtherCode Codeset="Other">C</OtherCode> </OtherCodeList> </AttendanceCode>
Example 6.2.3-1: AttendanceCode

6.2.4 BirthDate

A person's date of birth.

BirthDate
Figure 6.2.4-1: BirthDate BirthDate
 Element/@AttributeCharDescriptionType
 BirthDate 

A person's date of birth.

 
xs:date
Table 6.2.4-1: BirthDate
<BirthDate>1970-08-11</BirthDate>
Example 6.2.4-1: BirthDate

6.2.5 ContactInfo

Common element used to supply information for a contact person at a school, LEA, or other institution.

ContactInfo
Figure 6.2.5-1: ContactInfo ContactInfo Name PositionTitle Role Address EmailList PhoneNumberList
 Element/@AttributeCharDescriptionType
 ContactInfo 

Common element used to supply information for a contact person at a school, LEA, or other institution.

 
 
 NameM

 

Name
 PositionTitleO

The contact person's position title.

Examples
Superintendent

xs:normalizedString
 RoleO

Role played by this contact in this instance.

Examples
Report Contact
Primary Contact
Alternate Contact

xs:normalizedString
 AddressO

Address of the contact.

 
Address
 EmailListO

List of Email elements.

 
EmailList
 PhoneNumberListO

List of PhoneNumber elements.

 
PhoneNumberList
Table 6.2.5-1: ContactInfo
<ContactInfo> <Name Type="LGL"> <FamilyName>Woodall</FamilyName> <GivenName>Charles</GivenName> <MiddleName>William</MiddleName> </Name> <PositionTitle>Superintendent</PositionTitle> <EmailList> <Email Type="01">drseuss@whoville.k12.state.us</Email> </EmailList> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>(02) 9555-0102</Number> </PhoneNumber> </PhoneNumberList> </ContactInfo>
Example 6.2.5-1: ContactInfo

6.2.6 Country

A country code.

Country
Figure 6.2.6-1: Country Country
 Element/@AttributeCharDescriptionType
 Country 

A country code.

 
union of:

AUCodeSetsStandardAustralianClassificationOfCountriesSACCType
Table 6.2.6-1: Country
<Country>1101</Country>
Example 6.2.6-1: Country

6.2.7 Demographics

Demographics information about the student, contact, staff member, etc.

Demographics
Figure 6.2.7-1: Demographics Demographics IndigenousStatus Sex BirthDate BirthDateVerification PlaceOfBirth StateOfBirth CountryOfBirth CountriesOfCitizenship CountryOfCitizenship CountriesOfResidency CountryOfResidency CountryArrivalDate AustralianCitizenshipStatus EnglishProficiency LanguageList DwellingArrangement Code Religion Code OtherCodeList ReligiousEventList ReligiousEvent Type Date ReligiousRegion PermanentResident VisaSubClass VisaStatisticalCode VisaExpiryDate ImmunisationCertificateStatus CulturalBackground
 Element/@AttributeCharDescriptionType
 Demographics 

Demographics information about the student, contact, staff member, etc.

 
 
 IndigenousStatusO

Whether or not the student identifies themselves as being of Aboriginal and/or Torres Strait Islander descent.

 
AUCodeSetsIndigenousStatusType
 SexO

'Sex' is the distinction 'male' and 'female', as reported by the person

 
AUCodeSetsSexCodeType
 BirthDateO

The person's date of birth.

 
BirthDate
 BirthDateVerificationO

Means by which the person's birth date was validated.

 
AUCodeSetsBirthdateVerificationType
 PlaceOfBirthO

The person's place of birth—like village, town, city etc.

 
xs:normalizedString
 StateOfBirthO

The person's state of birth.

 
StateProvince
 CountryOfBirthO

The person's country of birth.

 
Country
 CountriesOfCitizenshipO List
 CountriesOfCitizenship/CountryOfCitizenship
     
MR

A person's country of citizenship.

 
Country
 CountriesOfResidencyO List
 CountriesOfResidency/CountryOfResidency
     
MR

A person's country of residence.

 
Country
 CountryArrivalDateO

Date the person first arrived in the country.

 
xs:date
 AustralianCitizenshipStatusO

The person's citizenship status.

 
AUCodeSetsAustralianCitizenshipStatusType
 EnglishProficiencyOPerson's proficiency in English. EnglishProficiency
 LanguageListOList of languages an individual uses to communicate. LanguageList
 DwellingArrangementO

Setting/environment in which the person resides.

 
 
 DwellingArrangement/CodeM

Code representing the setting/environment in which the person resides

 
AUCodeSetsDwellingArrangementType
 ReligionO

Type of Religion if any

 
 
 Religion/CodeM

Religion Code

 
AUCodeSetsAustralianStandardClassificationOfReligiousGroupsASCRGType
 Religion/OtherCodeListO OtherCodeList
 ReligiousEventListO

List of Religious events

 
List
 ReligiousEventList/ReligiousEvent
     
OR

 

 
 ReligiousEventList/ReligiousEvent/
     Type
M

Religious Event - Currently Free Text

 
xs:normalizedString
 ReligiousEventList/ReligiousEvent/
     Date
M

Date of Religious Event

 
xs:date
 ReligiousRegionO

Belong to Religious Region - Currently Free Text.

 
xs:normalizedString
 PermanentResidentO

Australian Residency Status (Mandatory for Student)

 
AUCodeSetsPermanentResidentStatusType
 VisaSubClassO

Visa Sub-Class - Can be free text - not necessary to validate

 
AUCodeSetsVisaSubClassType
 VisaStatisticalCodeO

Visa Statistical Code - Can be free text - not necessary to validate

 
AUCodeSetsVisaStatisticalCodeType
 VisaExpiryDateO

Expiry Date of Visa if one exists

 
xs:date
 ImmunisationCertificateStatusO

Status of Immunisation Certificate

 
AUCodeSetsImmunisationCertificateStatusType
 CulturalBackgroundO

Used to indicate cultural background.

 
AUCodeSetsAustralianStandardClassificationOfCulturalAndEthnicGroupsASCCEGType
Table 6.2.7-1: Demographics
<Demographics> <IndigenousStatus>3</IndigenousStatus> <Sex>1</Sex> <BirthDate>1990-09-26</BirthDate> <BirthDateVerification>1004</BirthDateVerification> <PlaceOfBirth>Clayton</PlaceOfBirth> <StateOfBirth>VIC</StateOfBirth> <CountryOfBirth>1101</CountryOfBirth> <CountriesOfCitizenship> <CountryOfCitizenship>8104</CountryOfCitizenship> <CountryOfCitizenship>1101</CountryOfCitizenship> </CountriesOfCitizenship> <CountriesOfResidency> <CountryOfResidency>8104</CountryOfResidency> <CountryOfResidency>1101</CountryOfResidency> </CountriesOfResidency> <CountryArrivalDate>1990-09-26</CountryArrivalDate> <AustralianCitizenshipStatus>1</AustralianCitizenshipStatus> <EnglishProficiency> <Code>1</Code> </EnglishProficiency> <LanguageList> <Language> <Code>0001</Code> <LanguageType>1</LanguageType> </Language> </LanguageList> <DwellingArrangement> <Code>1671</Code> </DwellingArrangement> <Religion> <Code>2013</Code> </Religion> <ReligiousEventList> <ReligiousEvent> <Type>Baptism</Type> <Date>2000-09-01</Date> </ReligiousEvent> <ReligiousEvent> <Type>Christmas</Type> <Date>2009-12-24</Date> </ReligiousEvent> </ReligiousEventList> <ReligiousRegion>The Religion Region</ReligiousRegion> <PermanentResident>P</PermanentResident> <VisaSubClass>101</VisaSubClass> <VisaStatisticalCode>05</VisaStatisticalCode> </Demographics>
Example 6.2.7-1: Demographics Example

6.2.8 EducationalLevel

A code representing the highest level of education completed by a person.

EducationalLevel
Figure 6.2.8-1: EducationalLevel EducationalLevel
 Element/@AttributeCharDescriptionType
 EducationalLevel 

A code representing the highest level of education completed by a person.

 
AUCodeSetsSchoolEducationLevelTypeType
Table 6.2.8-1: EducationalLevel
<EducationalLevel>3</EducationalLevel>
Example 6.2.8-1: EducationalLevel

6.2.9 ElectronicId

Common element used to specify entity identifiers that are read by electronic equipment.

ElectronicId
Figure 6.2.9-1: ElectronicId ElectronicId Type
 Element/@AttributeCharDescriptionType
 ElectronicId 

Common element used to specify entity identifiers that are read by electronic equipment.

 
xs:normalizedString
@TypeM

Electronic ID type.

 
AUCodeSetsElectronicIdTypeType
Table 6.2.9-1: ElectronicId
<ElectronicId Type="01">206654</ElectronicId>
Example 6.2.9-1: ElectronicId

6.2.10 ElectronicIdList

A list of electronic identifiers associated with an entity.

ElectronicIdList
Figure 6.2.10-1: ElectronicIdList ElectronicIdList ElectronicId
 Element/@AttributeCharDescriptionType
 ElectronicIdList 

A list of electronic identifiers associated with an entity.

 
List
 ElectronicIdMR ElectronicId
Table 6.2.10-1: ElectronicIdList
<ElectronicIdList> <ElectronicId Type="01">206654</ElectronicId> <ElectronicId Type="03">1234</ElectronicId> </ElectronicIdList>
Example 6.2.10-1: ElectronicIdList

6.2.11 Email

This element represents an e-mail address of one of a number of types and occurs in objects such as StudentPersonal, StaffPersonal, StudentContactPersonal, etc.

Email
Figure 6.2.11-1: Email Email Type
 Element/@AttributeCharDescriptionType
 Email 

This element represents an e-mail address of one of a number of types and occurs in objects such as StudentPersonal, StaffPersonal, StudentContactPersonal, etc.

 
xs:normalizedString
@TypeM

This attribute specifies the type of e-mail address.

 
AUCodeSetsEmailTypeType
Table 6.2.11-1: Email
<Email Type="01">contact@sifinfo.org</Email>
Example 6.2.11-1: Email

6.2.12 EmailList

A list of e-mail addresses associated with an individual or organization.

EmailList
Figure 6.2.12-1: EmailList EmailList Email SIF_Action
 Element/@AttributeCharDescriptionType
 EmailList 

A list of e-mail addresses associated with an individual or organization.

 
ActionList (Email/@Type)
 EmailMR Email
@SIF_ActionO

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.

 
values:
Delete
Table 6.2.12-1: EmailList
<EmailList> <Email Type="01">contact@sifinfo.org</Email> <Email Type="02">info@sifinfo.org</Email> </EmailList>
Example 6.2.12-1: EmailList

6.2.13 EnglishProficiency

EnglishProficiency
Figure 6.2.13-1: EnglishProficiency EnglishProficiency Code OtherCodeList
 Element/@AttributeCharDescriptionType
 EnglishProficiencyO  
 CodeM

Person's proficiency in English.

 
AUCodeSetsEnglishProficiencyType
 OtherCodeListO OtherCodeList
Table 6.2.13-1: EnglishProficiency
<EnglishProficiency> <Code>9</Code> </EnglishProficiency>
Example 6.2.13-1: EnglishProficiency

6.2.14 GraduationDate

Date student officially graduated from secondary education.

GraduationDate
Figure 6.2.14-1: GraduationDate GraduationDate
 Element/@AttributeCharDescriptionType
 GraduationDate 

Date student officially graduated from secondary education.

 
PartialDateType
Table 6.2.14-1: GraduationDate
<GraduationDate>2005-05-27</GraduationDate>
Example 6.2.14-1: GraduationDate

6.2.15 GridLocation

This element contains a map location. The GridLocation element is utilized within the Address element.

GridLocation
Figure 6.2.15-1: GridLocation GridLocation Latitude Longitude
 Element/@AttributeCharDescriptionType
 GridLocation 

This element contains a map location. The GridLocation element is utilized within the Address element.

 
 
 LatitudeM

Latitude in decimal degrees.

Latitudes north of the equator are positive, latitudes south of the equator are negative [ISO 6709].

 
xs:decimal
xs:minInclusive-90
xs:maxInclusive90
 LongitudeM

Longitude in decimal degrees.

Longitudes east of the Prime Meridian in Greenwich are positive, longitudes west of the Prime Meridian are negative. The 180th meridian is negative. [ISO 6709]

 
xs:decimal
xs:minInclusive-180
xs:maxInclusive180
Table 6.2.15-1: GridLocation
<GridLocation> <Latitude>41.850000</Latitude> <Longitude>-87.650000</Longitude> </GridLocation>
Example 6.2.15-1: GridLocation

6.2.16 HomeroomNumber

Common element used to specify the locally-defined number or identifier for a homeroom. It is used in objects such as RoomInfo and StudentSnapshot.

HomeroomNumber
Figure 6.2.16-1: HomeroomNumber HomeroomNumber
 Element/@AttributeCharDescriptionType
 HomeroomNumber

Common element used to specify the locally-defined number or identifier for a homeroom. It is used in objects such as RoomInfo and StudentSnapshot.

 
xs:normalizedString
Table 6.2.16-1: HomeroomNumber
<HomeroomNumber>A-204</HomeroomNumber>
Example 6.2.16-1: HomeroomNumber

6.2.17 LanguageList

LanguageList
Figure 6.2.17-1: LanguageList LanguageList Language Code OtherCodeList LanguageType
 Element/@AttributeCharDescriptionType
 LanguageListO List
 LanguageMR  
 Language/CodeM

The code representing the specific language that an individual uses to communicate. 

 
AUCodeSetsAustralianStandardClassificationOfLanguagesASCLType
 Language/OtherCodeListO OtherCodeList
 Language/LanguageTypeO

An indication of the function and context in which an individual uses a language to communicate.

 
AUCodeSetsLanguageTypeType
Table 6.2.17-1: LanguageList
<LanguageList> <Language> <Code>1201</Code> <LanguageType>1</LanguageType> </Language> <Language> <Code>1301</Code> <LanguageType>9</LanguageType> </Language> </LanguageList>
Example 6.2.17-1: LanguageList

6.2.18 LifeCycle

This common metadata element describes the life cycle of the object it represents, based on the IEEE LOM LifeCycle element [LOM].

LifeCycle
Figure 6.2.18-1: LifeCycle LifeCycle Created DateTime Creators Creator Name ID ModificationHistory Modified By DateTime Description TimeElements TimeElement
 Element/@AttributeCharDescriptionType
 LifeCycle 

This common metadata element describes the life cycle of the object it represents, based on the IEEE LOM LifeCycle element [LOM].

 
 
 CreatedO When the object was created by whom. This is a more persistent creation date than the date/time in the object's SIF_Header. Depending on the use case being implemented, this value could contain the date the data in the object first entered the zone or was actually created.   
 Created/DateTimeM xs:dateTime
 Created/CreatorsO List
 Created/Creators/CreatorMR  
 Created/Creators/Creator/
     Name
M 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:normalizedString
 Created/Creators/Creator/
     ID
MUnique identifier of the creator. An email address or URI could be used here. xs:normalizedString
 ModificationHistoryO An ordered set of Modified elements describing which system modified the data, when the modification took place, and a brief description of the modification.  List
 ModificationHistory/Modified
     
ORA single modification event.  
 ModificationHistory/Modified/
     By
MIdentifier of the system or person that modified the data. xs:normalizedString
 ModificationHistory/Modified/
     DateTime
MThe date/time the modification occurred. xs:dateTime
 ModificationHistory/Modified/
     Description
OHuman readable description of the data modifications. xs:string
 TimeElementsO List
 TimeElements/TimeElementOR TimeElement
Table 6.2.18-1: LifeCycle
<LifeCycle> <Created> <DateTime>2006-08-13T09:00:00-05:00</DateTime> <Creators> <Creator> <Name>Alphonse Berdonosi</Name> <ID>http://www.edugeeks.com/aberdonosi</ID> </Creator> </Creators> </Created> <ModificationHistory> <Modified> <By>http://www.edugeeks.com/aberdonosi</By> <DateTime>2006-08-17T09:30:00-05:00</DateTime> </Modified> </ModificationHistory> </LifeCycle>
Example 6.2.18-1: LifeCycle

6.2.19 LocalId

This is a common element used to define the locally assigned identifier associated with an entity.

LocalId
Figure 6.2.19-1: LocalId LocalId
 Element/@AttributeCharDescriptionType
 LocalId 

This is a common element used to define the locally assigned identifier associated with an entity.

 
xs:normalizedString
Table 6.2.19-1: LocalId
<LocalId>123321A</LocalId>
Example 6.2.19-1: LocalId

6.2.20 Location

This common element initially supports core data elements describing specific physical locations.

Location
Figure 6.2.20-1: Location Location Type LocationName LocationRefId SIF_RefObject
 Element/@AttributeCharDescriptionType
 Location   
@TypeO values:
Classroom
School
District
Campus
IntermediateUnit
StateEducationAgency
NonInstructionalSpace
AthleticVenue
Other
 LocationNameOName of the location. xs:token
 LocationRefIdO RefId of the location object if the location is a SIF Object such as SchoolInfo.  IdRefType
@SIF_RefObjectM Type of SIF Object Location points to.  values:
SchoolInfo
LEAInfo
RoomInfo
Table 6.2.20-1: Location
<Location Type="Classroom"> <LocationName>Beaconhills Middle School Library</LocationName> <LocationRefId SIF_RefObject="RooomInfo">947582610947583ACEB2BB345291BAAA</LocationRefId> </Location>
Example 6.2.20-1: Location

6.2.21 Name

The Name element, which could belong to a student, staff member, contact, etc. This element or a form with a subset of Type values occurs within objects such as StudentPersonal, StudentContactPersonal, StaffPersonal, etc.
Name
Figure 6.2.21-1: Name Name Type
 Element/@AttributeCharDescriptionType
 Name  The Name element, which could belong to a student, staff member, contact, etc. This element or a form with a subset of Type values occurs within objects such as StudentPersonal, StudentContactPersonal, StaffPersonal, etc.  BaseNameType
@TypeM

Code that specifies what type of name this is. If unsure, use LGL.

 
AUCodeSetsNameUsageTypeType
Table 6.2.21-1: Name
<Name Type="LGL"> <FamilyName>Woodall</FamilyName> <GivenName>Charles</GivenName> <MiddleName>William</MiddleName> </Name>
Example 6.2.21-1: Name

6.2.22 OnTimeGraduationYear

First projected graduation year, usually determined when student is accepted into 9th grade (CCYY).

OnTimeGraduationYear
Figure 6.2.22-1: OnTimeGraduationYear OnTimeGraduationYear
 Element/@AttributeCharDescriptionType
 OnTimeGraduationYear

First projected graduation year, usually determined when student is accepted into 9th grade (CCYY).

 
xs:gYear
Table 6.2.22-1: OnTimeGraduationYear
<OnTimeGraduationYear>2006</OnTimeGraduationYear>
Example 6.2.22-1: OnTimeGraduationYear

6.2.23 OperationalStatus

This common element contains status information an institution.

OperationalStatus
Figure 6.2.23-1: OperationalStatus OperationalStatus
 Element/@AttributeCharDescriptionType
 OperationalStatus 

Operational condition of an institution.

 
union of:

AUCodeSetsOperationalStatusType
Table 6.2.23-1: OperationalStatus
<OperationalStatus>O</OperationalStatus>
Example 6.2.23-1: OperationalStatus

6.2.24 OtherCodeList

List of other codes or strings that crosswalk to or serve as translations of the Code element paired with this common element. If Code changes and OtherCodes are supported, both Code and all associated OtherCode elements must be present.

OtherCodeList
Figure 6.2.24-1: OtherCodeList OtherCodeList OtherCode Codeset
 Element/@AttributeCharDescriptionType
 OtherCodeList 

List of other codes or strings that crosswalk to or serve as translations of the Code element paired with this common element. If Code changes and OtherCodes are supported, both Code and all associated OtherCode elements must be present.

 
List
 OtherCodeMR

A state/province code, local code, other code or a text string that crosswalks to or serves as a translation of an associated Code element.

 
xs:token
@CodesetM

Describes the OtherCode element content as either a state/province code, a local code, other code, or text string.

 
values:
StateProvince
Local
Other
Text
Table 6.2.24-1: OtherCodeList
<OtherCodeList> <OtherCode Codeset="Local">S</OtherCode> <OtherCode Codeset="Text">Semester</OtherCode> </OtherCodeList>
Example 6.2.24-1: OtherCodeList

6.2.25 OtherNames

Previous, alternate or other names or aliases associated with a person.

OtherNames
Figure 6.2.25-1: OtherNames OtherNames Name SIF_Action
 Element/@AttributeCharDescriptionType
 OtherNamesO

Previous, alternate or other names or aliases associated with a person.

 
ActionList (Name/@Type)
 NameMR

Name of the person. Note: Type value of LGL may not occur here.

 
OtherNameType
@SIF_ActionO

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.

 
values:
Delete
Table 6.2.25-1: OtherNames
<OtherNames> <Name Type="AKA"> <FamilyName>Anderson</FamilyName> <GivenName>Samuel</GivenName> <FullName>Samuel Anderson</FullName> </Name> <Name Type="PRF"> <FamilyName>Rowinski</FamilyName> <GivenName>Sam</GivenName> <FullName>Sam Rowinski </FullName> </Name> </OtherNames>
Example 6.2.25-1: OtherNames

6.2.26 PersonInfo

PersonInfo
Figure 6.2.26-1: PersonInfo PersonInfo Name OtherNames Demographics AddressList PhoneNumberList EmailList
 Element/@AttributeCharDescriptionType
 PersonInfo 

 

 
 NameM

The name of the person. Note: Type attribute value of LGL must be used here.

 
NameOfRecordType
 OtherNamesO

Previous, alternate or other names or aliases associated with the person.

 
OtherNames
 DemographicsO

Demographic information about the person.

 
Demographics
 AddressListO

The person’s address(es).

 
AddressList
 PhoneNumberListO

The person’s phone number(s).

 
PhoneNumberList
 EmailListO

The person’s e-mail address(es).

 
EmailList
Table 6.2.26-1: PersonInfo
<PersonInfo> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Fred</GivenName> <FullName>Fred Smith</FullName> </Name> <OtherNames> <Name Type="AKA"> <FamilyName>Anderson</FamilyName> <GivenName>Samuel</GivenName> <FullName>Samuel Anderson</FullName> </Name> <Name Type="PRF"> <FamilyName>Rowinski</FamilyName> <GivenName>Sam</GivenName> <FullName>Sam Rowinski </FullName> </Name> </OtherNames> <Demographics> <IndigenousStatus>3</IndigenousStatus> <Sex>1</Sex> <BirthDate>1990-09-26</BirthDate> <BirthDateVerification>1004</BirthDateVerification> <PlaceOfBirth>Clayton</PlaceOfBirth> <StateOfBirth>VIC</StateOfBirth> <CountryOfBirth>1101</CountryOfBirth> <CountriesOfCitizenship> <CountryOfCitizenship>8104</CountryOfCitizenship> <CountryOfCitizenship>1101</CountryOfCitizenship> </CountriesOfCitizenship> <CountriesOfResidency> <CountryOfResidency>8104</CountryOfResidency> <CountryOfResidency>1101</CountryOfResidency> </CountriesOfResidency> <CountryArrivalDate>1990-09-26</CountryArrivalDate> <AustralianCitizenshipStatus>1</AustralianCitizenshipStatus> <EnglishProficiency> <Code>1</Code> </EnglishProficiency> <LanguageList> <Language> <Code>0001</Code> <LanguageType>1</LanguageType> </Language> </LanguageList> <DwellingArrangement> <Code>1671</Code> </DwellingArrangement> <Religion> <Code>2013</Code> </Religion> <ReligiousEventList> <ReligiousEvent> <Type>Baptism</Type> <Date>2000-09-01</Date> </ReligiousEvent> <ReligiousEvent> <Type>Christmas</Type> <Date>2009-12-24</Date> </ReligiousEvent> </ReligiousEventList> <ReligiousRegion>The Religion Region</ReligiousRegion> <PermanentResident>P</PermanentResident> <VisaSubClass>101</VisaSubClass> <VisaStatisticalCode>05</VisaStatisticalCode> </Demographics> <AddressList> <Address Type="0123" Role="2382"> <Street> <Line1>Unit1/10</Line1> <Line2>Barkley Street</Line2> </Street> <City>Yarra Glenn</City> <StateProvince>VIC</StateProvince> <Country>1101</Country> <PostalCode>9999</PostalCode> </Address> <Address Type="0123A" Role="013A"> <Street> <Line1>34 Term Address Street</Line1> </Street> <City>Home Town</City> <StateProvince>WA</StateProvince> <Country>1101</Country> <PostalCode>9999</PostalCode> </Address> </AddressList> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>03 9637-2289</Number> <Extension>72289</Extension> <ListedStatus>Y</ListedStatus> </PhoneNumber> <PhoneNumber Type="0888"> <Number>0437-765-234</Number> <ListedStatus>N</ListedStatus> </PhoneNumber> </PhoneNumberList> <EmailList> <Email Type="01">fsmith@yahoo.com</Email> <Email Type="02">freddy@gmail.com</Email> </EmailList> </PersonInfo>
Example 6.2.26-1: PersonInfo

6.2.27 PhoneNumber

This element represents a phone number and occurs within objects such as StudentPersonal, StaffPersonal, etc.

PhoneNumber
Figure 6.2.27-1: PhoneNumber PhoneNumber Type Number Extension ListedStatus
 Element/@AttributeCharDescriptionType
 PhoneNumber 

This element represents a phone number and occurs within objects such as StudentPersonal, StaffPersonal, etc.

 
 
@TypeM

Code that specifies what type of phone number this is. Note: A subset of valid values may be specified in data objects.

 
AUCodeSetsTelephoneNumberTypeType
 NumberM

Phone number. Free-form, but typical Australian formats include:

  • (###) ####-####
  • ####-####
  • +##### ### ###
 
xs:normalizedString
 ExtensionO

Phone number extension.

 
xs:normalizedString
 ListedStatusO

Indicates whether or not the phone number is available to the public.

 
AUCodeSetsYesOrNoCategoryType
Table 6.2.27-1: PhoneNumber
<PhoneNumber Type="0096"> <Number>(03) 9543 2000</Number> <Extension>245</Extension> </PhoneNumber>
Example 6.2.27-1: PhoneNumber

6.2.28 PhoneNumberList

Lists phone numbers associated with an entity.

PhoneNumberList
Figure 6.2.28-1: PhoneNumberList PhoneNumberList PhoneNumber SIF_Action
 Element/@AttributeCharDescriptionType
 PhoneNumberList 

Lists phone numbers associated with an entity.

 
ActionList (PhoneNumber/@Type)
 PhoneNumberMR PhoneNumber
@SIF_ActionO

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.

 
values:
Delete
Table 6.2.28-1: PhoneNumberList
<PhoneNumberList> <PhoneNumber Type="0096"> <Number>(03) 9543 2000</Number> </PhoneNumber> </PhoneNumberList>
Example 6.2.28-1: PhoneNumberList

6.2.29 PrincipalInfo

Information about the campus or school principal.

PrincipalInfo
Figure 6.2.29-1: PrincipalInfo PrincipalInfo ContactName ContactTitle PhoneNumberList EmailList
 Element/@AttributeCharDescriptionType
 PrincipalInfoO

Information about the campus or school principal.

 
 
 ContactNameM

The name of the principal.

 
NameOfRecordType
 ContactTitleO

The principal's title.

 
xs:normalizedString
 PhoneNumberListO

The principal’s phone number(s).

 
PhoneNumberList
 EmailListO

The principal’s e-mail address(es).

 
EmailList
Table 6.2.29-1: PrincipalInfo
<PrincipalInfo> <ContactName Type="LGL"> <Title>Mr</Title> <FamilyName>Miller</FamilyName> <GivenName>James</GivenName> <MiddleName>Frank</MiddleName> <Suffix>Jr.</Suffix> <FullName>Mr James Frank Miller Jr.</FullName> </ContactName> <ContactTitle>School Principal</ContactTitle> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>03 9637-2000</Number> <Extension>72345</Extension> <ListedStatus>Y</ListedStatus> </PhoneNumber> </PhoneNumberList> <EmailList> <Email Type="01">jmiller@lsc.vic.edu.au</Email> <Email Type="02">jmiller@yahoo.com.au</Email> </EmailList> </PrincipalInfo>
Example 6.2.29-1: PrincipalInfo

6.2.30 ProjectedGraduationYear

Currently projected graduation year.

ProjectedGraduationYear
Figure 6.2.30-1: ProjectedGraduationYear ProjectedGraduationYear
 Element/@AttributeCharDescriptionType
 ProjectedGraduationYear

Currently projected graduation year (CCYY).

 
xs:gYear
Table 6.2.30-1: ProjectedGraduationYear
<ProjectedGraduationYear>2006</ProjectedGraduationYear>
Example 6.2.30-1: ProjectedGraduationYear

6.2.31 PublishInDirectory

This is a common element used to specify whether or not information (e.g., contact information) should be published in a directory.

PublishInDirectory
Figure 6.2.31-1: PublishInDirectory PublishInDirectory
 Element/@AttributeCharDescriptionType
 PublishInDirectory

Indicates whether or not information should be published in a directory.

 
AUCodeSetsYesOrNoCategoryType
Table 6.2.31-1: PublishInDirectory
<PublishInDirectory>Y</PublishInDirectory>
Example 6.2.31-1: PublishInDirectory

6.2.32 Relationship

Code that defines the relationship of one person to another.

Relationship
Figure 6.2.32-1: Relationship Relationship Code OtherCodeList
 Element/@AttributeCharDescriptionType
 Relationship 

Code that defines the relationship of one person to another.

 
 
 CodeM

Code representing the relationship.

 
AUCodeSetsRelationshipToStudentType
 OtherCodeListO OtherCodeList
Table 6.2.32-1: Relationship
<Relationship> <Code>01</Code> </Relationship>
Example 6.2.32-1: Relationship

6.2.33 SchoolContactList

A list of contact persons associated with a school.

SchoolContactList
Figure 6.2.33-1: SchoolContactList SchoolContactList SchoolContact PublishInDirectory ContactInfo
 Element/@AttributeCharDescriptionType
 SchoolContactList 

A list of contact persons associated with a school.

 
List
 SchoolContactMR

Information on contact persons for this school.

 
 
 SchoolContact/PublishInDirectory
     
O

Indicates whether or not this school contact's information should be published in a directory of school information.

 
PublishInDirectory
 SchoolContact/ContactInfo
     
M ContactInfo
Table 6.2.33-1: SchoolContactList
<SchoolContactList> <SchoolContact> <PublishInDirectory>Y</PublishInDirectory> <ContactInfo> <Name Type="LGL"> <FamilyName>Woodall</FamilyName> <GivenName>Charles</GivenName> <MiddleName>William</MiddleName> </Name> <PositionTitle>Superintendent</PositionTitle> <EmailList> <Email Type="01">drseuss@whoville.k12.state.us</Email> </EmailList> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>(08) 8555-0102</Number> </PhoneNumber> </PhoneNumberList> </ContactInfo> </SchoolContact> </SchoolContactList>
Example 6.2.33-1: SchoolContactList

6.2.34 SchoolURL

URL for a school.

SchoolURL
Figure 6.2.34-1: SchoolURL SchoolURL
 Element/@AttributeCharDescriptionType
 SchoolURL 

URL for a school.

 
xs:anyURI
Table 6.2.34-1: SchoolURL
<SchoolURL>http://www.lincolnhs.edu</SchoolURL>
Example 6.2.34-1: SchoolURL

6.2.35 SchoolYear

Common element used to designate the academic school year to which an object relates.

SchoolYear
Figure 6.2.35-1: SchoolYear SchoolYear
 Element/@AttributeCharDescriptionType
 SchoolYear

School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2009").

 
xs:gYear
Table 6.2.35-1: SchoolYear
<SchoolYear>2005</SchoolYear>
Example 6.2.35-1: SchoolYear

6.2.36 SIF_ExtendedElements

This element is supported at the end of all SIF objects. The element is used to extend existing SIF objects with locally-defined elements. Extended elements SHOULD NOT be used to duplicate data that can be obtained from other SIF objects.

SIF_ExtendedElements
Figure 6.2.36-1: SIF_ExtendedElements SIF_ExtendedElements SIF_ExtendedElement Name xsi:type SIF_Action
 Element/@AttributeCharDescriptionType
 SIF_ExtendedElements 

Allows an agent to include data not yet defined within a SIF data object as name/value pairs.

 
ActionList (SIF_ExtendedElement/@Name)
 SIF_ExtendedElementOR

A name/value pair, the name being contained in the Name attribute, the value being the element content.

 
ExtendedContentType
@NameM

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:normalizedString
@xsi:typeO

Allows type of element to be explicitly communicated.

 
 
@SIF_ActionO

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.

 
values:
Delete
Table 6.2.36-1: SIF_ExtendedElements
<SIF_ExtendedElements> <SIF_ExtendedElement Name="ApplicationSubmissionStatus">4</SIF_ExtendedElement> <SIF_ExtendedElement Name="DynamicXml"> <Parent xmlns="http://myapplication.com"> <Child n="1">one</Child> <Child n="2" /> <Child n="3">three</Child> </Parent> </SIF_ExtendedElement> <SIF_ExtendedElement Name="Note"> <xhtml:strong xmlns:xhtml="http://www.w3.org/1999/xhtml">Double</xhtml:strong>-check submission status. </SIF_ExtendedElement> </SIF_ExtendedElements>
Example 6.2.36-1: SIF_ExtendedElements

6.2.37 SIF_Metadata

Metadata is commonly referred to as data about data and includes information such as author, grade level, or keywords relating to a learning object, as examples. Metadata can be used to structure and contain any of this kind of information in a consistent manner. In the context of SIF, SIF_Metadata provides a consistent structure to appropriate SIF objects for the purpose of cataloging and object discovery, as well as other metadata functions and purposes. One recurring use case within the SIF data model is the requirement for some form of temporal constraints and tagging on objects (see TimeElement). Other metadata elements are based on needs brought to the Data Model Task Force.

IMPORTANT NOTE ON PERSISTENCE

This data is not designed to be permanent. It is designed to frame an object instance and could dissolve as soon as it leaves the SIF framework for the application space. A data warehouse could be used to store metadata for later tracking.

IMPORTANT NOTE ON USAGE

Any usage of metadata is optional unless made a requirement within individual SIF objects, or if a SIF or local profile or zone installation mandates it. SIF_Metadata allows for the usage of metadata in agents and applications that choose to support it.

This element is designed to operate much like SIF_ExtendedElements. It is an approved common element that is part of any data object.

SIF_Metadata
Figure 6.2.37-1: SIF_Metadata SIF_Metadata TimeElements TimeElement LifeCycle
 Element/@AttributeCharDescriptionType
 SIF_Metadata 

A commonly defined container for metadata elements defined within SIF.

 
 
 TimeElementsO List
 TimeElements/TimeElementOR TimeElement
 LifeCycleO LifeCycle
Table 6.2.37-1: SIF_Metadata

6.2.38 StateProvince

A state or province code. Note: When dealing with countries other than Australia, state/province codes/values other than those referenced here can be used.

StateProvince
Figure 6.2.38-1: StateProvince StateProvince
 Element/@AttributeCharDescriptionType
 StateProvince 

A state or province code. Note: When dealing with countries other than Australia, state/province codes/values other than those referenced here can be used.

 
union of:

AUCodeSetsStateTerritoryCodeType
xs:token
Table 6.2.38-1: StateProvince
<StateProvince>ACT</StateProvince>
Example 6.2.38-1: StateProvince

6.2.39 StateProvinceId

This is a common element used to define the state or province assigned identifier associated with an entity.

StateProvinceId
Figure 6.2.39-1: StateProvinceId StateProvinceId
 Element/@AttributeCharDescriptionType
 StateProvinceId

The identifier for this entity as assigned by the state or province.

 
xs:normalizedString
Table 6.2.39-1: StateProvinceId
<StateProvinceId>L65432765</StateProvinceId>
Example 6.2.39-1: StateProvinceId

6.2.40 SubjectArea

Subject matter.

SubjectArea
Figure 6.2.40-1: SubjectArea SubjectArea Code OtherCodeList
 Element/@AttributeCharDescriptionType
 SubjectArea 

Subject matter.

 
 
 CodeM

The subject area details

 
xs:normalizedString
 OtherCodeListO OtherCodeList
Table 6.2.40-1: SubjectArea
<SubjectArea> <Code>05</Code> <OtherCodeList> <OtherCode Codeset="Text">Graphic Arts</OtherCode> </OtherCodeList> </SubjectArea>
Example 6.2.40-1: SubjectArea

6.2.41 SubjectAreaList

A list of subject areas.

SubjectAreaList
Figure 6.2.41-1: SubjectAreaList SubjectAreaList SubjectArea
 Element/@AttributeCharDescriptionType
 SubjectAreaList 

A list of subject areas.

 
List
 SubjectAreaMR

Subject matter.

 
SubjectArea
Table 6.2.41-1: SubjectAreaList
<SubjectAreaList> <SubjectArea> <Code>05</Code> <OtherCodeList> <OtherCode Codeset="Text">Graphic Arts</OtherCode> <OtherCode Codeset="Local">GRA</OtherCode> </OtherCodeList> </SubjectArea> <SubjectArea> <Code>06</Code> <OtherCodeList> <OtherCode Codeset="Text">Visual Arts</OtherCode> </OtherCodeList> </SubjectArea> </SubjectAreaList>
Example 6.2.41-1: SubjectAreaList

6.2.42 TimeElement

A common metadata element designed to contain time data, both self-defined and by type.

TimeElement
Figure 6.2.42-1: TimeElement TimeElement Type Code Name Value StartDateTime EndDateTime SpanGaps SpanGap Type Code Name Value StartDateTime EndDateTime IsCurrent
 Element/@AttributeCharDescriptionType
 TimeElement 

A common metadata element designed to contain time data, both self-defined and by type.

 
 
 TypeM

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.

Because the educational environment varies so greatly we are including here a suggested but not prescriptive list of values. Although there may be unique needs for values not covered here—and we may have missed a major one—a best practice would be to utilize the examples here to enhance interoperability.

Examples
Full school year
Mini-term
Long session
Other
Semester
Trimester
Quarter
Spring Vacation
Summer Term
Intercession
Holiday

xs:normalizedString
 CodeM 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 Value element.

Examples
2007SY
2006.FallConferences

xs:token
 NameM Contains a human-readable description of the value in Value.

Examples
Class of '07
Fall 2007 Parent-Teacher Conferences

xs:normalizedString
 ValueMContains the human-readable value.

Examples
2007
Evening of 10/12/06

xs:normalizedString
 StartDateTimeO xs:dateTime
 EndDateTimeO xs:dateTime
 SpanGapsOA container element for holding multiple possible span gaps. List
 SpanGaps/SpanGapOR This structure duplicates much of the structure of TimeElement and is designed to represent a gap in the parent time period defined by StartDateTime and EndDateTime above.   
 SpanGaps/SpanGap/TypeM xs:normalizedString
 SpanGaps/SpanGap/CodeM xs:token
 SpanGaps/SpanGap/NameM xs:normalizedString
 SpanGaps/SpanGap/ValueM xs:normalizedString
 SpanGaps/SpanGap/StartDateTime
     
O xs:dateTime
 SpanGaps/SpanGap/EndDateTime
     
O xs:dateTime
 IsCurrentM 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 true), there are use cases when that is not the case.  xs:boolean
Table 6.2.42-1: TimeElement
<TimeElement> <Type>Full school year</Type> <Code>01</Code> <Name>2004/2005 School Year</Name> <Value>2004-2005</Value> <StartDateTime>2004-09-01T08:00:00-05:00</StartDateTime> <EndDateTime>2005-06-30T15:00:00-05:00</EndDateTime> <SpanGaps> <SpanGap> <Type>Holiday</Type> <Code>02</Code> <Name>2005 Winter Break</Name> <Value>2005 Winter Break</Value> <StartDateTime>2005-02-21T15:00:00-05:00</StartDateTime> <EndDateTime>2005-02-25T08:00:00-05:00</EndDateTime> </SpanGap> </SpanGaps> <IsCurrent>true</IsCurrent> </TimeElement>
Example 6.2.42-1: TimeElement

6.2.43 YearLevel

YearLevel
Figure 6.2.43-1: YearLevel YearLevel Code
 Element/@AttributeCharDescriptionType
 YearLevel

Year or academic level.

 
 
 CodeM

Code representing the year level.

 
AUCodeSetsYearLevelCodeType
Table 6.2.43-1: YearLevel
<YearLevel> <Code>8</Code> </YearLevel>
Example 6.2.43-1: YearLevel

6.2.44 YearLevels

List of year levels.

YearLevels
Figure 6.2.44-1: YearLevels YearLevels YearLevel
 Element/@AttributeCharDescriptionType
 YearLevels 

List of year levels.

 
List
 YearLevelMR YearLevel
Table 6.2.44-1: YearLevels
<YearLevels> <YearLevel> <Code>5</Code> </YearLevel> <YearLevel> <Code>6</Code> </YearLevel> <YearLevel> <Code>7</Code> </YearLevel> <YearLevel> <Code>8</Code> </YearLevel> </YearLevels>
Example 6.2.44-1: YearLevels

6.3 SIF AU

The introduction for the SIF AU data model.

6.3.1 CalendarDate

This object defines information related to a school calendar day in a given school calendar year. If both CalendarDate and CalendarSummary objects are supported, there must be an instance of this object for each date between CalendarSummary StartDate and EndDate, inclusive.

SIF_Events are reported for this object.

CalendarDate
Figure 6.3.1-1: CalendarDate CalendarDate Date CalendarSummaryRefId SchoolInfoRefId SchoolYear CalendarDateType Code StudentAttendance CountsTowardAttendance AttendanceValue SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 CalendarDate 

This object defines information related to a school calendar day in a given school calendar year. If both CalendarDate and CalendarSummary objects are supported, there must be an instance of this object for each date between CalendarSummary StartDate and EndDate, inclusive.

 
 
@
key
DateM

A specific school day that occurs within the school year.

 
xs:date
@
key
CalendarSummaryRefIdM

The ID (GUID) of the calendar summary in which this calendar date is.

 
IdRefType
 SchoolInfoRefIdM

The ID (GUID) of the school for which this calendar information is being reported.

 
IdRefType
 SchoolYearM

School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2009").

 
SchoolYear
 CalendarDateTypeM

Calendar date type information.

 
 
 CalendarDateType/CodeM

Code indicating the type of school day.

 
AUCodeSetsCalendarEventType
 StudentAttendanceO

Information describing how the day relates to student attendance.

 
 
 StudentAttendance/CountsTowardAttendance
     
M

Designates whether this date should be counted toward student attendance.

 
values:
Yes
No
 StudentAttendance/AttendanceValue
     
M

Amount of the school day in which the student should be in attendance (Format is x.x; a student who should be in attendance a full day would be represented as 1.0). If CountsTowardAttendance equals Yes then AttendanceValue must be greater than zero.

 
xs:decimal
xs:minInclusive0
xs:maxInclusive1
xs:fractionDigits1
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.1-1: CalendarDate
<CalendarDate Date="2007-08-31" CalendarSummaryRefId="B5739375800AC4CC63850BB2754114AA"> <SchoolInfoRefId>B7A34E561C97345C0A4E11BB112B2753</SchoolInfoRefId> <SchoolYear>2007</SchoolYear> <CalendarDateType> <Code>INST</Code> </CalendarDateType> <StudentAttendance> <CountsTowardAttendance>Yes</CountsTowardAttendance> <AttendanceValue>1.0</AttendanceValue> </StudentAttendance> </CalendarDate>
Example 6.3.1-1: CalendarDate

6.3.2 CalendarSummary

This object provides a summary of a school's calendar information for a given school year. A school may have more than one calendar per school year (e.g., one calendar for Kindergarten students, one for special education students, one for seniors, or one for each calendar track), and each may have different days in session, start and end dates, minutes per day, instructional minutes, etc.

SIF_Events are reported for this object.

CalendarSummary
Figure 6.3.2-1: CalendarSummary CalendarSummary RefId SchoolInfoRefId SchoolYear LocalId Description DaysInSession StartDate EndDate FirstInstructionDate LastInstructionDate GraduationDate InstructionalMinutes MinutesPerDay YearLevels SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 CalendarSummary 

This object provides a summary of a school's calendar information for a given school year. A school may have more than one calendar per school year (e.g., one calendar for Kindergarten students, one for special education students, one for seniors, or one for each calendar track), and each may have different days in session, start and end dates, minutes per day, instructional minutes, etc.

 
 
@
key
RefIdM

The ID (GUID) of the calendar to which this information relates.

 
RefIdType
 SchoolInfoRefIdM

The ID (GUID) of the school for which this calendar information is being reported.

 
IdRefType
 SchoolYearM

School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2007").

 
SchoolYear
 LocalIdM

The locally assigned identifier for this calendar.

 
LocalId
 DescriptionO

Textual description of the school calendar.

 
xs:string
 DaysInSessionM

The total number of days that the school was or is anticipated to be in session during the school year. Also included are days on which the education institution facility is closed and the student body as a whole is engaged in planned activities off-campus under the guidance and direction of staff members.

 
xs:unsignedInt
 StartDateO

The first calendar date, whether or not instruction was provided. If both CalendarSummary and CalendarDate objects are supported, StartDate must be the date of the first chronological instance of CalendarDate for the school's calendar.

 
xs:date
 EndDateO

The last calendar date, whether or not instruction was provided. If both CalendarSummary and CalendarDate objects are supported, EndDate must be the last chronological instance of CalendarDate for the school's calendar.

 
xs:date
 FirstInstructionDateO

The first day of student instruction.

 
xs:date
 LastInstructionDateO

The last day of student instruction (including days or times that students are present for purposes of testing and/or evaluation, but not including whole or part-days whose sole purposes is for distribution of report cards).

 
xs:date
 GraduationDateO

Date of graduation ceremony.

 
GraduationDate
 InstructionalMinutesO

The total number of instructional minutes for this calendar for the school year.

 
xs:unsignedInt
 MinutesPerDayO

The number of minutes in the day in which the school is normally in session.

 
xs:unsignedInt
 YearLevelsO

Collection of year levels applicable to this school calendar.

 
YearLevels
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.2-1: CalendarSummary
<CalendarSummary RefId="B5739375800AC4CC63850BB2754114AA"> <SchoolInfoRefId>B7A34E561C97345C0A4E11BB112B2753</SchoolInfoRefId> <SchoolYear>2005</SchoolYear> <LocalId>123321A</LocalId> <Description>Elementary School Calendar</Description> <DaysInSession>180</DaysInSession> <StartDate>2009-01-01</StartDate> <EndDate>2009-12-31</EndDate> <FirstInstructionDate>2009-01-02</FirstInstructionDate> <LastInstructionDate>2009-12-20</LastInstructionDate> <GraduationDate>2009-12-10</GraduationDate> <InstructionalMinutes>64800</InstructionalMinutes> <MinutesPerDay>360</MinutesPerDay> <YearLevels> <YearLevel> <Code>10</Code> </YearLevel> <YearLevel> <Code>11</Code> </YearLevel> <YearLevel> <Code>12</Code> </YearLevel> </YearLevels> </CalendarSummary>
Example 6.3.2-1: CalendarSummary

6.3.3 Identity

This object allows a system that stores network identities and/or passwords to share them with other applications through SIF. The provider of the Identity object may only support providing an identity or a password, or it may support both.

SIF_Events are reported for this object.

Identity
Figure 6.3.3-1: Identity Identity RefId SIF_RefId SIF_RefObject AuthenticationSource IdentityAssertions IdentityAssertion SchemaName PasswordList Password Algorithm KeyName AuthenticationSourceGlobalUID SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 Identity 

This object allows a system that stores network identities and/or passwords to share them with other applications through SIF. The provider of the Identity object may only support providing an identity or a password, or it may support both.

 
 
@
key
RefIdM

The SIF RefId that uniquely identifies this object.

 
RefIdType
 SIF_RefIdM

The SIF RefId of a StudentPersonal, StaffPersonal, or StudentContactPersonal object.

 
IdRefType
@SIF_RefObjectM

The type of SIF object that the SIF_RefId attribute identifies.

 
values:
StudentPersonal
StaffPersonal
StudentContactPersonal
 AuthenticationSourceM

The type of source system that produced this Identityobject.

See implementation notes for provider requirements.

 
values:
AUAccessShibboleth
MSActiveDirectory
NovellNDS
OpenDirectory
Other
 IdentityAssertionsO

The list of identity assertions for this user.

 
ActionList (IdentityAssertion/@SchemaName)
 IdentityAssertions/IdentityAssertion
     
MR

The identification string for this user.

 
xs:normalizedString
@SchemaNameM

The name of the field.

See implementation notes for details on required schema elements.

Examples
eduPersonPrincipalName
sAmAccountName

xs:normalizedString
 PasswordListO

Allows a provider or publisher to specify the same password using multiple algorithms, if supported.

 
List
 PasswordList/PasswordMR

A representation of the user's password using the given algorithm.

 
xs:base64Binary
@AlgorithmM

The method used to encrypt the user's password. See the implementation details below.

 
values:
MD5
SHA1
DES
TripleDES
RC2
AES
RSA
@KeyNameM

The name of the key to be used for decryption of the password. Left blank for hash algorithms (MD5 and SHA1).

 
xs:normalizedString
 AuthenticationSourceGlobalUIDO

The globally unique person identifier that links together separate Identity objects which reference the same Person.

 
IdRefType
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.3-1: Identity
<Identity RefId="4286194F43ED43C18EE2F0A27C4BEF86"> <SIF_RefId SIF_RefObject="StudentPersonal">23B08571E4D645C3B82A3E52E5349925</SIF_RefId> <AuthenticationSource>AUAccessShibboleth</AuthenticationSource> <IdentityAssertions> <IdentityAssertion SchemaName="eduPersonPrincipalName">john.doe@asdf.edu.au</IdentityAssertion> </IdentityAssertions> <AuthenticationSourceGlobalUID>A9A6CB2BC49344278C1FD6587D448B35</AuthenticationSourceGlobalUID> </Identity>
Example 6.3.3-1: Identity published by an Access Federation Shibboleth Provider
<Identity RefId="4286194F43ED43C18EE2F0A27C4BEF86"> <SIF_RefId SIF_RefObject="StudentPersonal">23B08571E4D645C3B82A3E52E5349925</SIF_RefId> <AuthenticationSource>MSActiveDirectory</AuthenticationSource> <IdentityAssertions> <IdentityAssertion SchemaName="sAmAccountName">user01</IdentityAssertion> <IdentityAssertion SchemaName="userPrincipalName">user01@asdf.edu.au</IdentityAssertion> <IdentityAssertion SchemaName="distinguishedName">cn=User01,cn=Users,dc=org</IdentityAssertion> </IdentityAssertions> <AuthenticationSourceGlobalUID>A9A6CB2BC49344278C1FD6587D448B35</AuthenticationSourceGlobalUID> </Identity>
Example 6.3.3-2: Identity published by Microsoft Active Directory

6.3.4 LEAInfo

This object contains information about a school district or other Local Educational Agency (LEA).

SIF_Events are reported for this object.

LEAInfo
Figure 6.3.4-1: LEAInfo LEAInfo RefId LocalId StateProvinceId CommonwealthId LEAName LEAURL EducationAgencyType Code OtherCodeList LEAContactList LEAContact PublishInDirectory ContactInfo PhoneNumberList AddressList OperationalStatus JurisdictionLowerHouse SLA SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 LEAInfo 

This object contains information about a school district or other Local Educational Agency (LEA).

 
 
@
key
RefIdM

The GUID of the LEA whose information this is.

 
RefIdType
 LocalIdM

The locally-assigned identifier for this LEA.

 
LocalId
 StateProvinceIdO

The state-assigned identifier for this LEA.

 
StateProvinceId
 CommonwealthIdO

Commonwealth Identifier for this District (LEA).

 
xs:normalizedString
 LEANameM

Name of LEA.

 
xs:normalizedString
 LEAURLO

URL for the LEA.

 
xs:anyURI
 EducationAgencyTypeO

The classification of the education agency within the geographic boundaries of a state according to the level of administrative and operational control.

 
 
 EducationAgencyType/CodeM

Code indicating the operational/administrative level.

 
AUCodeSetsEducationAgencyTypeType
 EducationAgencyType/OtherCodeList
     
O OtherCodeList
 LEAContactListO List
 LEAContactList/LEAContact
     
MR

Information on contact persons for this LEA.

 
 
 LEAContactList/LEAContact/
     PublishInDirectory
O

Indicates whether or not this LEA contact's information should be published in a directory of LEA information.

 
PublishInDirectory
 LEAContactList/LEAContact/
     ContactInfo
M ContactInfo
 PhoneNumberListO

The LEA's phone number(s).

 
PhoneNumberList
 AddressListO

The LEA's address(es).

 
AddressList
 OperationalStatusO

Operational condition of a school.

 
OperationalStatus
 JurisdictionLowerHouseO

Lower House area that the school/campus belongs to.

 
xs:normalizedString
 SLAO

Statistical Local Area that the school/campus belongs to.

 
AUCodeSetsAustralianStandardGeographicalClassificationASGCType
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.4-1: LEAInfo
<LEAInfo RefId="D3E34B359D75101A8C3D00AA001A1652"> <LocalId>EMR</LocalId> <StateProvinceId>EMR</StateProvinceId> <CommonwealthId>4215750</CommonwealthId> <LEAName>Eastern Metro School District</LEAName> <LEAURL>http://www.EMR.vic.edu.au</LEAURL> <EducationAgencyType> <Code>01</Code> </EducationAgencyType> <LEAContactList> <LEAContact> <PublishInDirectory>Y</PublishInDirectory> <ContactInfo> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Theo</GivenName> <FullName>Theo Smith</FullName> </Name> <PositionTitle>Superintendent</PositionTitle> <EmailList> <Email Type="01">drseuss@edumail.vic.edu.au</Email> </EmailList> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>(03) 9745 7455</Number> </PhoneNumber> </PhoneNumberList> </ContactInfo> </LEAContact> </LEAContactList> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>(03) 9745 7455</Number> </PhoneNumber> </PhoneNumberList> <OperationalStatus>O</OperationalStatus> <JurisdictionLowerHouse>Unknown</JurisdictionLowerHouse> <SLA>205801452</SLA> </LEAInfo>
Example 6.3.4-1: LEAInfo

6.3.5 PersonPicture

This object contains information about the person's picture.

SIF_Events are reported for this object.

PersonPicture
Figure 6.3.5-1: PersonPicture PersonPicture RefId ParentObjectRefId SIF_RefObject SchoolYear PictureSource Type OKToPublish SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 PersonPicture 

This object contains information about the person's picture.

 
 
@
key
RefIdM

The ID (GUID) that uniquely identifies the picture.

 
IdRefType
 ParentObjectRefIdM

The GUID of the personal object to which this picture is linked

 
RefIdType
@SIF_RefObjectM

The name of the object reference.

 
values:
StudentPersonal
StaffPersonal
StudentContactPersonal
 SchoolYearM

School year for which this enrollment is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007).

 
SchoolYear
 PictureSourceM

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].

 
URIOrBinaryType
@TypeM

The way the picture is specified.

 
AUCodeSetsPictureSourceType
 OKToPublishO

Can the picture be published?

 
AUCodeSetsYesOrNoCategoryType
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.5-1: PersonPicture
<PersonPicture RefId="D3E34B359D75101A8C3D00AA001A1652"> <ParentObjectRefId SIF_RefObject="StudentPersonal">AA648462888624AA5294BC638017320B</ParentObjectRefId> <SchoolYear>2007</SchoolYear> <PictureSource Type="01">http://www.schoolsite.com/pictures/2007/1234.jpg </PictureSource> <OKToPublish>Y</OKToPublish> </PersonPicture>
Example 6.3.5-1: PersonPicture

6.3.6 ReportAuthorityInfo

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.

SIF_Events are reported for this object.

ReportAuthorityInfo
Figure 6.3.6-1: ReportAuthorityInfo ReportAuthorityInfo RefId AuthorityName AuthorityId AuthorityDepartment AuthorityLevel ContactInfo Address PhoneNumber SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 ReportAuthorityInfo 

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.

 
 
@
key
RefIdM

The unique identifier for this agency/report authority.

 
RefIdType
 AuthorityNameM

Name of the agency/report authority.

 
xs:normalizedString
 AuthorityIdM

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:token
 AuthorityDepartmentO

Department, office, or subdivision of the agency/report authority.

 
xs:normalizedString
 AuthorityLevelM

Level of the authority.

 
values:
Federal
State
LEA
School
Other
 ContactInfoO

Information on the contact person in this agency.

 
ContactInfo
 AddressO Address
 PhoneNumberO PhoneNumber
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.6-1: ReportAuthorityInfo
<ReportAuthorityInfo RefId="9746375937BB2A10AAB2758C46A12001"> <AuthorityName>XX State Department of Education</AuthorityName> <AuthorityId>StateDOEDataWarehouse</AuthorityId> <AuthorityDepartment>Bureau of Special Education</AuthorityDepartment> <AuthorityLevel>State</AuthorityLevel> <ContactInfo> <Name Type="LGL"> <Title>Mr</Title> <FamilyName>Miller</FamilyName> <GivenName>James</GivenName> <MiddleName>Frank</MiddleName> <Suffix>Jr.</Suffix> <FullName>Mr James Frank Miller Jr.</FullName> </Name> <PositionTitle>Business Manager</PositionTitle> <Role>School Information Contact Point</Role> <Address Type="0123" Role="012B"> <Street> <Line1>23 Nicholson Street</Line1> </Street> <City>Carnegie</City> <StateProvince>VIC</StateProvince> <Country>1101</Country> <PostalCode>3004</PostalCode> <GridLocation> <Latitude>23.9876</Latitude> <Longitude>-98.8765</Longitude> </GridLocation> </Address> <EmailList> <Email Type="01">jmiller@lsc.vic.edu.au</Email> <Email Type="02">jmiller@yahoo.com.au</Email> </EmailList> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>03 9637-2000</Number> <Extension>72345</Extension> <ListedStatus>Y</ListedStatus> </PhoneNumber> </PhoneNumberList> </ContactInfo> <Address Type="0123" Role="2382"> <Street> <Line1>6799 33rd Ave.</Line1> <StreetNumber>6799</StreetNumber> <StreetName>33rd</StreetName> <StreetType>Ave.</StreetType> </Street> <City>Chicago</City> <StateProvince>IL</StateProvince> <Country>1101</Country> <PostalCode>60660</PostalCode> </Address> <PhoneNumber Type="0096"> <Number>(555) 555-0000</Number> </PhoneNumber> </ReportAuthorityInfo>
Example 6.3.6-1: ReportAuthorityInfo

6.3.7 ReportManifest

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.

SIF_Events are reported for this object.

ReportManifest
Figure 6.3.7-1: ReportManifest ReportManifest RefId ReportAuthorityInfoRefId SIF_Version SIF_MaxBufferSize ReceivingAuthority SIF_RefObject ReportName Description ReportingPeriod BeginReportDate EndReportDate BeginSubmitDate EndSubmitDate DueDate ReportDefinitionSource Type QueryLanguage ReportFormatList ReportFormat Type ContentType SIF_QueryGroup SIF_Query SIF_ExtendedQuery SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 ReportManifest 

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.

 
 
@
key
RefIdM

The unique identifier for this report manifest.

 
RefIdType
@ReportAuthorityInfoRefIdM

ID (GUID) of the authority providing this manifest.

 
IdRefType
 SIF_VersionM

Specifies which SIF Implementation 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.

 
VersionWithWildcardsType
 SIF_MaxBufferSizeM

Specifies the maximum size of a packet to be returned to the report authority.

 
xs:unsignedInt
 ReceivingAuthorityO

The GUID of the authority for whom the report is intended, usually the same authority that defines this manifest.

 
IdRefType
@SIF_RefObjectM

The name of the object referenced.

 
values:
ReportAuthorityInfo
 ReportNameM

The authority's accepted name for the report.

 
xs:normalizedString
 DescriptionO

The description for the report.

 
xs:string
 ReportingPeriodO

Information on the period of time over which the report spans.

 
 
 ReportingPeriod/BeginReportDate
     
O

The first date for which the report contains information.

 
xs:date
 ReportingPeriod/EndReportDate
     
O

The last date for which the report contains information. May be the same as BeginReportDate for snapshot-type reports.

 
xs:date
 ReportingPeriod/BeginSubmitDate
     
O

The first date on which the report may be submitted to the authority.

 
xs:date
 ReportingPeriod/EndSubmitDate
     
O

The last date on which the report may be submitted to the authority.

 
xs:date
 ReportingPeriod/DueDateO

The official due date of the report.

 
xs:date
 ReportDefinitionSourceM

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:string
@TypeM

This attribute indicates the source of the report definition.

 
values:
URL
Embedded
Base64Binary
SIF_Query
SIF_ExtendedQuery
@QueryLanguageM

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:token
 ReportFormatListO

An optional list of one or more third-party formats that describe the visual representation of the report data. If more than one report format is associated with a manifest, the implementation can choose the most applicable format by examining the ContentType attribute.

 
List
 ReportFormatList/ReportFormat
     
MR

A third-party format that describes the visual representation of the report data.

 
xs:string
@TypeM

This attribute indicates the encoding of the format reference.

 
values:
URL
Embedded
Base64Binary
@ContentTypeM

The vendor-defined content type (e.g. com.vendor.format, PDF, etc.

 
xs:normalizedString
 SIF_QueryGroupC

Parent element containing the querying criteria for extracting the report information if ReportDefinitionSource/@Type is SIF_Query.

 
List
 SIF_QueryGroup/SIF_QueryMR SIF_Query
 SIF_ExtendedQueryC

Query criteria for extracting the report information if ReportDefinitionSource/@Type is SIF_ExtendedQuery.

 
SIF_ExtendedQuery
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.7-1: ReportManifest
<ReportManifest RefId="C234516384746B387459000F84723A00" ReportAuthorityInfoRefId="84756373645746363738484848484832"> <SIF_Version>2.3</SIF_Version> <SIF_MaxBufferSize>102400000</SIF_MaxBufferSize> <ReceivingAuthority SIF_RefObject="ReportAuthorityInfo">84756373645746363738484848484812</ReceivingAuthority> <ReportName>December 1 IDEA Students</ReportName> <Description> A report of all IDEA-eligible students receiving services on December 1 </Description> <ReportingPeriod> <BeginReportDate>2003-12-01</BeginReportDate> <EndReportDate>2003-12-01</EndReportDate> <BeginSubmitDate>2003-12-02</BeginSubmitDate> <EndSubmitDate>2004-01-15</EndSubmitDate> <DueDate>2004-01-15</DueDate> </ReportingPeriod> <ReportDefinitionSource Type="URL" QueryLanguage="Description">http://www.state.edu/IDEAEligible.html</ReportDefinitionSource> <SIF_QueryGroup> <SIF_Query> <SIF_QueryObject ObjectName="StudentPersonal" /> </SIF_Query> <SIF_Query> <SIF_QueryObject ObjectName="StudentSchoolEnrollment" /> <SIF_ConditionGroup Type="And"> <SIF_Conditions Type="None"> <SIF_Condition> <SIF_Element>EntryDate</SIF_Element> <SIF_Operator>LE</SIF_Operator> <SIF_Value>20031201</SIF_Value> </SIF_Condition> </SIF_Conditions> <SIF_Conditions Type="Or"> <SIF_Condition> <SIF_Element>ExitDate</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>20040530</SIF_Value> </SIF_Condition> <SIF_Condition> <SIF_Element>ExitDate</SIF_Element> <SIF_Operator>GE</SIF_Operator> <SIF_Value>20031201</SIF_Value> </SIF_Condition> </SIF_Conditions> </SIF_ConditionGroup> </SIF_Query> <SIF_Query> <SIF_QueryObject ObjectName="StudentParticipation" /> <SIF_ConditionGroup Type="And"> <SIF_Conditions Type="None"> <SIF_Condition> <SIF_Element>@Type</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value>IDEA</SIF_Value> </SIF_Condition> </SIF_Conditions> <SIF_Conditions Type="None"> <SIF_Condition> <SIF_Element>ProgramPlacementDate</SIF_Element> <SIF_Operator>LE</SIF_Operator> <SIF_Value>20031201</SIF_Value> </SIF_Condition> </SIF_Conditions> <SIF_Conditions Type="Or"> <SIF_Condition> <SIF_Element>ProgramExitDate</SIF_Element> <SIF_Operator>EQ</SIF_Operator> <SIF_Value /> </SIF_Condition> <SIF_Condition> <SIF_Element>ProgramExitDate</SIF_Element> <SIF_Operator>GE</SIF_Operator> <SIF_Value>20031201</SIF_Value> </SIF_Condition> </SIF_Conditions> </SIF_ConditionGroup> </SIF_Query> </SIF_QueryGroup> </ReportManifest>
Example 6.3.7-1: ReportManifest

6.3.8 RoomInfo

This object contains all of the information about a school's room. This object may contain a reference to a room type so that it may represent anything from a gym, cafeteria, to a standard classroom. The StaffList element usually contains the homeroom teacher.

SIF_Events are reported for this object.

RoomInfo
Figure 6.3.8-1: RoomInfo RoomInfo RefId SchoolInfoRefId RoomNumber StaffList StaffPersonalRefId Description Building HomeroomNumber Size Capacity PhoneNumber SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 RoomInfo 

This object contains all of the information about a school's room. This object may contain a reference to a room type so that it may represent anything from a gym, cafeteria, to a standard classroom. The StaffList element usually contains the homeroom teacher.

 
 
@
key
RefIdM

GUID that identifies this room.

 
RefIdType
 SchoolInfoRefIdM

GUID that identifies the school that this room belongs to.

 
IdRefType
 RoomNumberM

Room number as presented to the user/application.

 
xs:normalizedString
 StaffListO List
 StaffList/StaffPersonalRefId
     
MR

GUID that identifies the staff person assigned to this room (e.g. the homeroom teacher).

 
IdRefType
 DescriptionO

Friendly name that can be assigned to the room (e.g. Staff Cafeteria).

 
xs:normalizedString
 BuildingO

Extra building information. In the future Building could become its own object in which case this element will need to be changed to a RefId. Currently it is only required as a free text field.

 
xs:normalizedString
 HomeroomNumberO

When a room is designated as a homeroom it may have a different number. Usually blank when room is not a homeroom.

 
xs:normalizedString
 SizeO

Size in square meters.

 
xs:decimal
 CapacityO

Number of persons (usually students) that this room can hold.

 
xs:unsignedInt
 PhoneNumberO

Phone number for the room

 
PhoneNumber
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.8-1: RoomInfo
<RoomInfo RefId="D3E34B359D75101A8C3D00AA001A1652"> <SchoolInfoRefId>A2E35B359D75101A8C3D00AA001A0000</SchoolInfoRefId> <RoomNumber>101</RoomNumber> <StaffList> <StaffPersonalRefId>A8C3A2E35B359D75101D00AA001A0000</StaffPersonalRefId> </StaffList> <Description>Room 101</Description> <Building>Main A</Building> <HomeroomNumber>10-HR-A</HomeroomNumber> <Size>400</Size> <Capacity>35</Capacity> <PhoneNumber Type="0096"> <Number>(02) 9555-1234</Number> </PhoneNumber> </RoomInfo>
Example 6.3.8-1: RoomInfo

6.3.9 SchoolCourseInfo

This object is for course information.

All local ids in non-authoritative objects are optional. It is therefore up to the provider and the actual agent's design and choreography to determine whether or not to use or local ids from parent objects. There are cases in some subscribing systems where it might not possible to add RefId columns and therefore the RefId of related objects cannot be stored. For example a target system that listens to TimeTableSubject events and updates them may not be able to store the associated SchoolCourseInfoRefId with that object. The only way it can link the TimeTableSubject object with the appropriate course might be through its local course id. Having local ids that link the parent objects with the child object can simplify the agent design. Generally it is suggested to use the appropriate RefIds whenever possible and only use local ids if there is no other way to use RefIds.

SIF_Events are reported for this object.

SchoolCourseInfo
Figure 6.3.9-1: SchoolCourseInfo SchoolCourseInfo RefId SchoolInfoRefId SchoolLocalId SchoolYear TermInfoRefId CourseCode StateCourseCode DistrictCourseCode SubjectAreaList CourseTitle Description InstructionalLevel CourseCredits CoreAcademicCourse GraduationRequirement Department CourseContent SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 SchoolCourseInfo 

This object is for course information.

All local ids in non-authoritative objects are optional. It is therefore up to the provider and the actual agent's design and choreography to determine whether or not to use or local ids from parent objects. There are cases in some subscribing systems where it might not possible to add RefId columns and therefore the RefId of related objects cannot be stored. For example a target system that listens to TimeTableSubject events and updates them may not be able to store the associated SchoolCourseInfoRefId with that object. The only way it can link the TimeTableSubject object with the appropriate course might be through its local course id. Having local ids that link the parent objects with the child object can simplify the agent design. Generally it is suggested to use the appropriate RefIds whenever possible and only use local ids if there is no other way to use RefIds.

 
 
@
key
RefIdM

The ID (GUID) that uniquely identifies the school course.

 
RefIdType
 SchoolInfoRefIdM

The ID (GUID) that identifies the school where the course is offered.

 
IdRefType
 SchoolLocalIdO

The locally-assigned identifier for this school/campus.

 
LocalId
 SchoolYearC

School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007).

 
SchoolYear
 TermInfoRefIdC

The ID (GUID) that uniquely identifies this TermInfo (reportable time period). Either SchoolYear or TermInfoRefId must be provided.

 
IdRefType
 CourseCodeM

School-defined local code for the course.

 
xs:normalizedString
 StateCourseCodeO

State-defined standard course code used to report information about courses.

 
xs:normalizedString
 DistrictCourseCodeO

The corresponding district course code.

 
xs:normalizedString
 SubjectAreaListO

Subject matter areas.

 
SubjectAreaList
 CourseTitleM

Title of the course.

 
xs:normalizedString
 DescriptionO

Textual description of the course.

 
xs:normalizedString
 InstructionalLevelO

An indication of the general nature and difficulty of instruction provided.

 
xs:normalizedString
 CourseCreditsO

The number of credits awarded upon course completion.

 
xs:normalizedString
 CoreAcademicCourseO

Does the course meet the state definition of a core academic course?

 
AUCodeSetsYesOrNoCategoryType
 GraduationRequirementO

Does the state require that the course be completed for graduation?

 
AUCodeSetsYesOrNoCategoryType
 DepartmentO

Department with jurisdiction over this course.

 
xs:normalizedString
 CourseContentO

Description of course content.

 
xs:normalizedString
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.9-1: SchoolCourseInfo
<SchoolCourseInfo RefId="9D75101A8C3D00AA001A0000A2E35B35"> <SchoolInfoRefId>101A8C3D00AA001A0000A2E35B359D75</SchoolInfoRefId> <SchoolYear>2006</SchoolYear> <CourseCode>CS101</CourseCode> <StateCourseCode>08-001</StateCourseCode> <DistrictCourseCode>CS101</DistrictCourseCode> <SubjectAreaList> <SubjectArea> <Code>Graphic Arts</Code> </SubjectArea> </SubjectAreaList> <CourseTitle>Gif, JPeg, or Png: What's the Difference?</CourseTitle> <Description>Explore the various types of files related to graphic arts.</Description> <InstructionalLevel>0571</InstructionalLevel> <CourseCredits>2</CourseCredits> <CoreAcademicCourse>N</CoreAcademicCourse> <GraduationRequirement>N</GraduationRequirement> </SchoolCourseInfo>
Example 6.3.9-1: SchoolCourseInfo

6.3.10 SchoolInfo

This object contains information about the school.

SIF_Events are reported for this object.

SchoolInfo
Figure 6.3.10-1: SchoolInfo SchoolInfo RefId LocalId StateProvinceId CommonwealthId SchoolName LEAInfoRefId OtherLEA SIF_RefObject SchoolDistrict SchoolDistrictLocalId SchoolType SchoolFocusList SchoolFocus SchoolURL PrincipalInfo SchoolContactList AddressList PhoneNumberList SessionType YearLevels ARIA OperationalStatus FederalElectorate Campus SchoolCampusId CampusType AdminStatus SchoolSector IndependentSchool NonGovSystemicStatus System ReligiousAffiliation SchoolGeographicLocation LocalGovernmentArea JurisdictionLowerHouse SLA SchoolCoEdStatus BoardingSchoolStatus Entity_Open Entity_Close SchoolGroupList SchoolGroup SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 SchoolInfo 

This object contains information about the school.

 
 
@
key
RefIdM

The GUID that identifies this school.

 
RefIdType
 LocalIdO

The locally-assigned identifier for this school.

 
LocalId
 StateProvinceIdO

The state-assigned identifier for this school.

 
StateProvinceId
 CommonwealthIdO

Commonwealth identifier for this school/campus.

 
xs:normalizedString
 SchoolNameM

Name of school/campus.

 
xs:normalizedString
 LEAInfoRefIdO

The ID (GUID) that references the school district of which this school is a member.

 
RefIdType
 OtherLEAO

The ID (GUID) of another related education agency, such as a regional service agency.

 
RefIdType
@SIF_RefObjectM

The name of the object reference.

 
values:
LEAInfo
 SchoolDistrictO

The school district of which this school/campus is a member. Equivalent to DEECD Region.

 
xs:normalizedString
 SchoolDistrictLocalIdO

The school district Local ID. This should be the same as the LocalId in the LEAInfo if LEAInfo details are supplied.

 
LocalId
 SchoolTypeO

An indication of the level of the educational institution.

 
AUCodeSetsSchoolLevelType
 SchoolFocusListO

List containing the education focus codes of the campus/school.

 
List
 SchoolFocusList/SchoolFocus
     
MR

The type of educational institution as classified by its focus.

 
AUCodeSetsSchoolFocusCodeType
 SchoolURLO

URL for the school.

 
SchoolURL
 PrincipalInfoO

Information about the campus or school principal.

 
PrincipalInfo
 SchoolContactListO

A list of contact persons associated with a school.

 
SchoolContactList
 AddressListO

The school's addresses.

 
AddressList
 PhoneNumberListO

The school's phone numbers.

 
PhoneNumberList
 SessionTypeO

Code that specifies the session type.

 
AUCodeSetsSessionTypeType
 YearLevelsO

List of year levels offered by the school.

 
YearLevels
 ARIAOAccessibility/Remoteness Indicator of Australia. xs:decimal
 OperationalStatusO

Operational condition of a school.

 
OperationalStatus
 FederalElectorateO

Australian Federal Electorate.

 
AUCodeSetsFederalElectorateType
 CampusO

Optional campus details.

 
 
 Campus/SchoolCampusIdM

Campus ID - Needs to be considered as part of school. Different campus' have different addresses.

 
xs:normalizedString
 Campus/CampusTypeO

Type of campus.

 
AUCodeSetsSchoolLevelType
 Campus/AdminStatusM

Is this campus the Admin Campus?

 
AUCodeSetsYesOrNoCategoryType
 SchoolSectorM

(Government, or Non-Government).

 
AUCodeSetsSchoolSectorCodeType
 IndependentSchoolO

Indicator as to whether school is an independent school (as opposed to government or catholic school).

 
AUCodeSetsYesOrNoCategoryType
 NonGovSystemicStatusO

Used to clarify a non-government school's systemic status. Either Systemic or Non-Systemic.

 
AUCodeSetsSystemicStatusType
 SystemO

System if a systemic school.

 
AUCodeSetsSchoolSystemType
 ReligiousAffiliationO

Religious affiliation (if any).

 
AUCodeSetsAustralianStandardClassificationOfReligiousGroupsASCRGType
 SchoolGeographicLocationO

School Location from MCEETCYA.

 
AUCodeSetsSchoolLocationType
 LocalGovernmentAreaO

LocalGovernmentArea that that school/campus is located in.

 
xs:normalizedString
 JurisdictionLowerHouseO

Lower House area that the school/campus belongs to.

 
xs:normalizedString
 SLAO

Statistical Local Area that the school/campus belongs to.

 
AUCodeSetsAustralianStandardGeographicalClassificationASGCType
 SchoolCoEdStatusO

Gender of student population.

 
AUCodeSetsSchoolCoEdStatusType
 BoardingSchoolStatusO

Is this school a Boarding School?

 
AUCodeSetsYesOrNoCategoryType
 Entity_OpenO

Opening date of entity.

 
xs:date
 Entity_CloseO

Closing date of entity. This element is allowed to be omitted and/or null.

 
xs:date
 SchoolGroupListO

 

List
 SchoolGroupList/SchoolGroup
     
MR

Repeatable element containing a local identifier to identify a loosely connected group of schools. eg. YarraValley Cluster

 
LocalId
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.10-1: SchoolInfo
<SchoolInfo RefId="D3E34B359D75101A8C3D00AA001A1652"> <LocalId>01011234</LocalId> <StateProvinceId>01011234</StateProvinceId> <CommonwealthId>012345</CommonwealthId> <SchoolName>Lincoln Secondary College</SchoolName> <LEAInfoRefId>73648462888624AA5294BC6380173276</LEAInfoRefId> <OtherLEA SIF_RefObject="LEAInfo">AA648462888624AA5294BC638017320B</OtherLEA> <SchoolDistrict> Southern Metropolitan Region</SchoolDistrict> <SchoolType>Pri/Sec</SchoolType> <SchoolFocusList> <SchoolFocus>01</SchoolFocus> <SchoolFocus>03</SchoolFocus> </SchoolFocusList> <SchoolURL>http://www.lincolnsc.edu.vic.au</SchoolURL> <PrincipalInfo> <ContactName Type="LGL"> <Title>Mr</Title> <FamilyName>Mason</FamilyName> <GivenName>Francis</GivenName> <MiddleName>Frank</MiddleName> <Suffix>Jr.</Suffix> <FullName>Mr Frank Mason Jr.</FullName> </ContactName> <ContactTitle>Senior School Principal</ContactTitle> </PrincipalInfo> <SchoolContactList> <SchoolContact> <PublishInDirectory>Y</PublishInDirectory> <ContactInfo> <Name Type="LGL"> <Title>Mr</Title> <FamilyName>Miller</FamilyName> <GivenName>James</GivenName> <MiddleName>Mark</MiddleName> <Suffix>Jr.</Suffix> <FullName>Mr James Mark Miller Jr.</FullName> </Name> <PositionTitle>Business Manager</PositionTitle> <Role>School Information Contact Point</Role> <Address Type="0123" Role="012B"> <Street> <Line1>23 Nicholson Street</Line1> </Street> <City>Carnegie</City> <StateProvince>VIC</StateProvince> <Country>1101</Country> <PostalCode>3004</PostalCode> <GridLocation> <Latitude>23.9876</Latitude> <Longitude>-98.8765</Longitude> </GridLocation> </Address> <EmailList> <Email Type="01">jmiller@lsc.vic.edu.au</Email> <Email Type="02">jmiller@yahoo.com.au</Email> </EmailList> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>03 9637-2000</Number> <Extension>72345</Extension> <ListedStatus>Y</ListedStatus> </PhoneNumber> </PhoneNumberList> </ContactInfo> </SchoolContact> </SchoolContactList> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>03 9637-2000</Number> </PhoneNumber> </PhoneNumberList> <SessionType>0827</SessionType> <YearLevels> <YearLevel> <Code>6</Code> </YearLevel> <YearLevel> <Code>7</Code> </YearLevel> <YearLevel> <Code>8</Code> </YearLevel> <YearLevel> <Code>9</Code> </YearLevel> <YearLevel> <Code>10</Code> </YearLevel> <YearLevel> <Code>11</Code> </YearLevel> <YearLevel> <Code>12</Code> </YearLevel> </YearLevels> <ARIA>1.0</ARIA> <OperationalStatus>O</OperationalStatus> <FederalElectorate>216</FederalElectorate> <Campus> <SchoolCampusId>01</SchoolCampusId> <CampusType>Camp</CampusType> <AdminStatus>Y</AdminStatus> </Campus> <SchoolSector>NG</SchoolSector> <IndependentSchool>Y</IndependentSchool> <NonGovSystemicStatus>S</NonGovSystemicStatus> <System>0003</System> <ReligiousAffiliation>2171</ReligiousAffiliation> <SchoolGeographicLocation>1</SchoolGeographicLocation> <LocalGovernmentArea>Cardinia</LocalGovernmentArea> <JurisdictionLowerHouse>Unknown</JurisdictionLowerHouse> <SLA>205801452</SLA> <SchoolCoEdStatus>C</SchoolCoEdStatus> <SchoolGroupList> <SchoolGroup>YVC</SchoolGroup> <SchoolGroup>EastSec01</SchoolGroup> </SchoolGroupList> </SchoolInfo>
Example 6.3.10-1: SchoolInfo

6.3.11 SchoolPrograms

This object contains information about Programs offered by a school.

SIF_Events are reported for this object.

SchoolPrograms
Figure 6.3.11-1: SchoolPrograms SchoolPrograms RefId SchoolInfoRefId SchoolYear SchoolProgramList Program Category Type OtherCodeList SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 SchoolPrograms  This object contains information about Programs offered by a school.   
@
key
RefIdMGUID that uniquely identifies this instance of the object. RefIdType
 SchoolInfoRefIdM

GUID that identifies the school offering this program.

 
IdRefType
 SchoolYearO School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2009").  SchoolYear
 SchoolProgramListO

List of School Programs

 
List
 SchoolProgramList/Program
     
OR

 

 
 SchoolProgramList/Program/
     Category
O

Program Category

 
xs:normalizedString
 SchoolProgramList/Program/
     Type
M

Program Type

 
xs:normalizedString
 SchoolProgramList/Program/
     OtherCodeList
O OtherCodeList
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.11-1: SchoolPrograms
<SchoolPrograms RefId="D3E34B359D75101A8C3D00AA001A1652"> <SchoolInfoRefId>73648462888624AA5294BC6380173276</SchoolInfoRefId> <SchoolYear>2009</SchoolYear> <SchoolProgramList> <Program> <Category>01</Category> <Type>Steiner program</Type> </Program> <Program> <Category>01</Category> <Type>Tournament of minds</Type> </Program> </SchoolProgramList> </SchoolPrograms>
Example 6.3.11-1: SchoolPrograms

6.3.12 SessionInfo

This object provides the link between Period Attendance and the school�s timetable. It allows subject and teaching group information to be communicated to/from the attendance system.

This object provides information about the session�the specific instance of a timetable cell for against which the attendance is recorded. (Please note, the TimeTableCell object represents a session scheduled in a timetable. There may be many SessionInfo objects for the same TimeTableCell � each for a different week/fortnight, depending on the length of the timetable schedule. Attendance is recorded against the SessionInfo object.

SIF_Events are reported for this object.

SessionInfo
Figure 6.3.12-1: SessionInfo SessionInfo RefId SchoolInfoRefId TimeTableCellRefId SchoolYear LocalId TimeTableSubjectLocalId TeachingGroupLocalId SchoolLocalId StaffPersonalLocalId RoomNumber DayId PeriodId SessionDate StartTime FinishTime RollMarked SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 SessionInfo 

This object provides the link between Period Attendance and the school�s timetable. It allows subject and teaching group information to be communicated to/from the attendance system.

This object provides information about the session�the specific instance of a timetable cell for against which the attendance is recorded. (Please note, the TimeTableCell object represents a session scheduled in a timetable. There may be many SessionInfo objects for the same TimeTableCell � each for a different week/fortnight, depending on the length of the timetable schedule. Attendance is recorded against the SessionInfo object.

 
 
@
key
RefIdMThe GUID of the Object RefIdType
 SchoolInfoRefIdM

The ID (GUID) of the school for which this attendance information is being reported.

 
IdRefType
 TimeTableCellRefIdM

The (GUID) of the piece of Curriculum (TT Grid) scheduled

 
IdRefType
 SchoolYearM

School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2007").

 
SchoolYear
 LocalIdM

Session Local Identifier

 
LocalId
 TimeTableSubjectLocalIdM

TimeTableSubject Local Identifier

 
LocalId
 TeachingGroupLocalIdM

Teaching Group Local Identifier

 
LocalId
 SchoolLocalIdO

School Local Identifier

 
LocalId
 StaffPersonalLocalIdO

Staff Local Identifier

 
LocalId
 RoomNumberC

Room number as presented to the user or application. Needs to be provided if changed from TimeTableCell.

 
xs:normalizedString
 DayIdM

Day Id

 
LocalId
 PeriodIdM

Period Id within the Day Id

 
LocalId
 SessionDateM

Date of Session

 
xs:date
 StartTimeO

Optional Start Time

 
xs:time
 FinishTimeO

Optional End Time

 
xs:time
 RollMarkedO

Was the Roll Marked for this Period?

 
AUCodeSetsYesOrNoCategoryType
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.12-1: SessionInfo
<SessionInfo RefId="98157AA013BA8C3D00AA012B359D7512"> <SchoolInfoRefId>11737EA4301CADCA75C87214A7C46BDB</SchoolInfoRefId> <TimeTableCellRefId>A75A00101A8C301D02E3A05B359D0A00</TimeTableCellRefId> <SchoolYear>2008</SchoolYear> <LocalId>2</LocalId> <TimeTableSubjectLocalId>10MA1</TimeTableSubjectLocalId> <SchoolLocalId>01991</SchoolLocalId> <StaffPersonalLocalId>SMI009</StaffPersonalLocalId> <RoomNumber>R08</RoomNumber> <DayId>1</DayId> <PeriodId>5</PeriodId> <SessionDate>2008-10-10</SessionDate> <StartTime>12:05:00</StartTime> <FinishTime>13:30:00</FinishTime> <RollMarked>Y</RollMarked> </SessionInfo>
Example 6.3.12-1: SessionInfo

6.3.13 SIF_ReportObject

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.

SIF_Events are reported for this object.

SIF_ReportObject
Figure 6.3.13-1: SIF_ReportObject SIF_ReportObject RefId ReportInfo ReportManifestRefId CalculationDate SubmissionNumber SubmissionReason ReportSubmitterInfo SIF_RefId SIF_RefObject SubmitterName SubmitterDepartment ContactInfo Address PhoneNumber SubmitterNotes Description ReportData SIF_ExtendedQueryResults SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 SIF_ReportObject 

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.

 
 
@
key
RefIdM

The ID (GUID) that uniquely identifies this instance of a report.

 
RefIdType
 ReportInfoC

Identifies the manifest for the report and characteristics of the submission. This element is a conditional element. This element, the ReportData element, or the SIF_ExtendedQueryResults element is included but never more than one at the same time within an instance of this object. See examples of the usage of the object below.

 
 
@ReportManifestRefIdM

The report manifest corresponding to this report.

 
IdRefType
 ReportInfo/CalculationDate
     
M

The date on which the report was calculated.

 
xs:date
 ReportInfo/SubmissionNumber
     
M

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:positiveInteger
 ReportInfo/SubmissionReason
     
M

Reason for the report submission.

 
values:
Initial
Correction
Revision
Addition
 ReportInfo/ReportSubmitterInfo
     
C

Identifies the submitter of the report.

This element is conditional depending on the context in which the SIF_ReportObject is used. It must be present in the ReportInfo element when a SIF_ReportObject is sent to a report authority in a SIF_Event message. However, its presence is optional in SIF_ReportObject packets delivered to report authorities in SIF_Response messages.

 
 
 ReportInfo/ReportSubmitterInfo/
     SIF_RefId
O

If the submitter is described by another SIF data object such as a SchoolInfo or LEAInfo instance, this element references that object by RefId.

 
IdRefType
@SIF_RefObjectM

The name of a SIF data object. When used in the context of ReportSubmitterInfo, this attribute must have one of the following values.

 
values:
LEAInfo
The submitter of the SIF_ReportObject is the district or other agency referenced by a LEAInfo object
SchoolInfo
The submitter of the SIF_ReportObject is the school referenced by a SchoolInfo object
 ReportInfo/ReportSubmitterInfo/
     SubmitterName
M

Name of the report submitter.

This is a descriptive string that names the entity submitting the SIF_ReportObject to the report authority. It could be the name of an agency, a district, a school, the SIF_SourceId of the submitting agent, or any other string that a report authority could use to identify the submitter of a report. This element may be present regardless of the presence of the SIF_RefId and SIF_RefObject elements. When those elements are used, it is recommended that collector agents reproduce the name of the LEA or school here.

 
xs:normalizedString
 ReportInfo/ReportSubmitterInfo/
     SubmitterDepartment
O

Department, office, or subdivision of the agency submitting the report.

 
xs:normalizedString
 ReportInfo/ReportSubmitterInfo/
     ContactInfo
O

Information on the contact person in this agency submitting the report.

 
ContactInfo
 ReportInfo/ReportSubmitterInfo/
     Address
O Address
 ReportInfo/ReportSubmitterInfo/
     PhoneNumber
O PhoneNumber
 ReportInfo/ReportSubmitterInfo/
     SubmitterNotes
O

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:string
 ReportInfo/DescriptionO xs:string
 ReportDataC

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.

 
ReportDataObjectType
 SIF_ExtendedQueryResultsC

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.

 
SIF_ExtendedQueryResults
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.13-1: SIF_ReportObject
<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Response> <SIF_Header> <SIF_MsgId>FAE9D90A38F84B729C92F868CB63C9F3</SIF_MsgId> <SIF_Timestamp>2006-10-15T09:23:26-05:00</SIF_Timestamp> <SIF_SourceId>XXXX Agent</SIF_SourceId> <SIF_DestinationId>STATE</SIF_DestinationId> </SIF_Header> <SIF_RequestMsgId>EB79C3D1FF1911D785138B604A511DAD</SIF_RequestMsgId> <SIF_PacketNumber>1</SIF_PacketNumber> <SIF_MorePackets>No</SIF_MorePackets> <SIF_ObjectData> <SIF_ReportObject RefId="B234516384746B387459000F84723A00"> <ReportInfo ReportManifestRefId="B234516384746B387459000F84723A00"> <CalculationDate>2003-08-19</CalculationDate> <SubmissionNumber>1</SubmissionNumber> <SubmissionReason>Initial</SubmissionReason> <ReportSubmitterInfo> <SubmitterName>Wasatch School District 441</SubmitterName> <SubmitterDepartment>Central Data Services Center</SubmitterDepartment> <ContactInfo> <Name Type="LGL"> <Title>Mr</Title> <FamilyName>Miller</FamilyName> <GivenName>James</GivenName> <MiddleName>Frank</MiddleName> <Suffix>Jr.</Suffix> <FullName>Mr James Frank Miller Jr.</FullName> </Name> <PositionTitle>Business Manager</PositionTitle> <Role>School Information Contact Point</Role> <Address Type="0123" Role="012B"> <Street> <Line1>23 Nicholson Street</Line1> </Street> <City>Carnegie</City> <StateProvince>VIC</StateProvince> <Country>1101</Country> <PostalCode>3004</PostalCode> <GridLocation> <Latitude>23.9876</Latitude> <Longitude>-98.8765</Longitude> </GridLocation> </Address> <EmailList> <Email Type="01">jmiller@lsc.vic.edu.au</Email> <Email Type="02">jmiller@yahoo.com.au</Email> </EmailList> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>03 9637-2000</Number> <Extension>72345</Extension> <ListedStatus>Y</ListedStatus> </PhoneNumber> </PhoneNumberList> </ContactInfo> <PhoneNumber Type="0096"> <Number>(555) 555-1010</Number> </PhoneNumber> <SubmitterNotes>Wasatch School District's Vertical Reporting policies can be found on-line at http://www.wasatchsif.org/policies/vr.html. Please contact Patricia Reynolds, Central Data Services Center, at (555) 555-1010 for more information.</SubmitterNotes> </ReportSubmitterInfo> </ReportInfo> </SIF_ReportObject> <SIF_ReportObject RefId="B234516384746B387459000F84723A00"> <ReportData> <StudentPersonal RefId="5D1F2390F33F11D7B64CD17E020C45AB" /> </ReportData> </SIF_ReportObject> <SIF_ReportObject RefId="B234516384746B387459000F84723A00"> <ReportData> <StudentSchoolEnrollment RefId="5DF9A510F33F11D7B64C970DE3494F35" /> </ReportData> </SIF_ReportObject> <SIF_ReportObject RefId="B234516384746B387459000F84723A00"> <ReportData> <SchoolInfo RefId="56E86900F33F11D7B64CBCCE0CB2E03A" /> </ReportData> </SIF_ReportObject> </SIF_ObjectData> </SIF_Response> </SIF_Message>
Example 6.3.13-1: SIF_ReportObject

6.3.14 StaffAssignment

This object defines information related to a staff member's assignment(s); commonly, this will be a school assignment.

SIF_Events are reported for this object.

StaffAssignment
Figure 6.3.14-1: StaffAssignment StaffAssignment RefId SchoolInfoRefId SchoolYear StaffPersonalRefId Description PrimaryAssignment JobStartDate JobEndDate JobFTE JobFunction StaffSubjectList StaffSubject PreferenceNumber SubjectLocalId TimeTableSubjectRefId YearLevels CasualReliefTeacher Homegroup House SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 StaffAssignment 

This object defines information related to a staff member's assignment(s); commonly, this will be a school assignment.

 
 
@
key
RefIdM

The GUID that uniquely identifies a particular staff assignment.

 
RefIdType
 SchoolInfoRefIdM

The ID (GUID) that identifies the school where the staff member is assigned.

 
IdRefType
 SchoolYearM

School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., 2007).

 
SchoolYear
 StaffPersonalRefIdM

ID (GUID) of this staff member, as represented in the StaffPersonal object. 

 
IdRefType
 DescriptionO

Short assignment description

 
xs:normalizedString
 PrimaryAssignmentM

Is this the staff member's primary assignment? Note: There must be one and only one instance of the object with a Yes value in this element per school year.

 
AUCodeSetsYesOrNoCategoryType
 JobStartDateO

This is the date from which the staff assignment is valid (inclusive).

 
xs:date
 JobEndDateO

This is the date through which the staff assignment is valid (inclusive).

 
xs:date
 JobFTEO

Full-time job equivalent ratio for this assignment. (Format is x.xx; an employee who is full-time and who is 50% of their time on this assignment would be represented as 0.50)

 
xs:decimal
xs:minInclusive0
xs:maxInclusive1
xs:fractionDigits2
 JobFunctionO

The purpose of the activities as related to students.

 
xs:string
 StaffSubjectListO

Subject(s) Staff member is eligible to teach.

 
List
 StaffSubjectList/StaffSubject
     
MR

This element contains Staff subjects they are eligible to teach together with the teaching preference.

 
 
 StaffSubjectList/StaffSubject/
     PreferenceNumber
M

Priority of Subject to Teach.

 
xs:unsignedInt
 StaffSubjectList/StaffSubject/
     SubjectLocalId
O

Local Subject Id

 
LocalId
 StaffSubjectList/StaffSubject/
     TimeTableSubjectRefId
O

RefId of TimeTableSubject

 
RefIdType
 YearLevelsO

Year level(s) that the teacher is allowed to teach.

 
YearLevels
 CasualReliefTeacherO

Is this teacher a casual relief teacher CRT?

 
AUCodeSetsYesOrNoCategoryType
 HomegroupO

The name of the homegroup the staff member is assigned to.

 
xs:normalizedString
 HouseO

The name of the house the staff member is assigned to.

 
xs:normalizedString
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.14-1: StaffAssignment
<StaffAssignment RefId="D3E34B359D75101A8C3D00AA001A1652"> <SchoolInfoRefId>A8C3D3E34B359D75101D00AA001A1652</SchoolInfoRefId> <SchoolYear>2008</SchoolYear> <StaffPersonalRefId>D3E34B359D75101A8C3D00AA001A1651</StaffPersonalRefId> <Description>VCE English Teacher</Description> <PrimaryAssignment>Y</PrimaryAssignment> <JobStartDate>2000-09-05</JobStartDate> <JobEndDate>2001-06-25</JobEndDate> <JobFTE>1.00</JobFTE> <JobFunction>Teacher</JobFunction> <StaffSubjectList> <StaffSubject> <PreferenceNumber>1</PreferenceNumber> <SubjectLocalId>English</SubjectLocalId> </StaffSubject> <StaffSubject> <PreferenceNumber>2</PreferenceNumber> <SubjectLocalId>Mathematics</SubjectLocalId> </StaffSubject> <StaffSubject> <PreferenceNumber>3</PreferenceNumber> <SubjectLocalId>Science</SubjectLocalId> </StaffSubject> </StaffSubjectList> <YearLevels> <YearLevel> <Code>11</Code> </YearLevel> <YearLevel> <Code>12</Code> </YearLevel> </YearLevels> <CasualReliefTeacher>N</CasualReliefTeacher> </StaffAssignment>
Example 6.3.14-1: StaffAssignment

6.3.15 StaffPersonal

This object contains all the personal information relating to a staff member, who might be a teacher or other employee of the school or district.

SIF_Events are reported for this object.

StaffPersonal
Figure 6.3.15-1: StaffPersonal StaffPersonal RefId LocalId StateProvinceId ElectronicIdList OtherIdList OtherId Type PersonInfo Title SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 StaffPersonal 

This object contains all the personal information relating to a staff member, who might be a teacher or other employee of the school or district.

 
 
@
key
RefIdM

The GUID of the staff member.

 
RefIdType
 LocalIdM

The locally-assigned identifier for this staff member.

 
LocalId
 StateProvinceIdO

The state-assigned identifier for this staff member.

 
StateProvinceId
 ElectronicIdListO

Electronic identifier(s) associated with this entity.

 
ElectronicIdList
 OtherIdListO

Lists all "other" identifiers associated with the staff member.

 
List
 OtherIdList/OtherIdMR

Lists an "other" identifier associated with the staff member.

 
xs:normalizedString
@TypeM

Code that defines the type of this other ID.

 
xs:normalizedString
 PersonInfoM

Personal Information

 
PersonInfo
 TitleO

The staff member's title.

 
xs:normalizedString
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.15-1: StaffPersonal
<StaffPersonal RefId="D3E34F419D75101A8C3D00AA001A1652"> <LocalId>946379881</LocalId> <StateProvinceId>C2345681</StateProvinceId> <ElectronicIdList> <ElectronicId Type="01">206655</ElectronicId> </ElectronicIdList> <OtherIdList> <OtherId Type="0004">333333333</OtherId> </OtherIdList> <PersonInfo> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Fred</GivenName> <FullName>Fred Smith</FullName> </Name> <OtherNames> <Name Type="AKA"> <FamilyName>Anderson</FamilyName> <GivenName>Samuel</GivenName> <FullName>Samuel Anderson</FullName> </Name> <Name Type="PRF"> <FamilyName>Rowinski</FamilyName> <GivenName>Sam</GivenName> <FullName>Sam Rowinski </FullName> </Name> </OtherNames> <Demographics> <IndigenousStatus>3</IndigenousStatus> <Sex>1</Sex> <BirthDate>1990-09-26</BirthDate> <BirthDateVerification>1004</BirthDateVerification> <PlaceOfBirth>Clayton</PlaceOfBirth> <StateOfBirth>VIC</StateOfBirth> <CountryOfBirth>1101</CountryOfBirth> <CountriesOfCitizenship> <CountryOfCitizenship>8104</CountryOfCitizenship> <CountryOfCitizenship>1101</CountryOfCitizenship> </CountriesOfCitizenship> <CountriesOfResidency> <CountryOfResidency>8104</CountryOfResidency> <CountryOfResidency>1101</CountryOfResidency> </CountriesOfResidency> <CountryArrivalDate>1990-09-26</CountryArrivalDate> <AustralianCitizenshipStatus>1</AustralianCitizenshipStatus> <EnglishProficiency> <Code>1</Code> </EnglishProficiency> <LanguageList> <Language> <Code>0001</Code> <LanguageType>1</LanguageType> </Language> </LanguageList> <DwellingArrangement> <Code>1671</Code> </DwellingArrangement> <Religion> <Code>2013</Code> </Religion> <ReligiousEventList> <ReligiousEvent> <Type>Baptism</Type> <Date>2000-09-01</Date> </ReligiousEvent> <ReligiousEvent> <Type>Christmas</Type> <Date>2009-12-24</Date> </ReligiousEvent> </ReligiousEventList> <ReligiousRegion>The Religion Region</ReligiousRegion> <PermanentResident>P</PermanentResident> <VisaSubClass>101</VisaSubClass> <VisaStatisticalCode>05</VisaStatisticalCode> </Demographics> <AddressList> <Address Type="0123" Role="012A"> <Street> <Line1>Unit1/10</Line1> <Line2>Barkley Street</Line2> </Street> <City>Yarra Glenn</City> <StateProvince>VIC</StateProvince> <Country>1101</Country> <PostalCode>9999</PostalCode> </Address> <Address Type="0123A" Role="1073"> <Street> <Line1>34 Term Address Street</Line1> </Street> <City>Home Town</City> <StateProvince>WA</StateProvince> <Country>1101</Country> <PostalCode>9999</PostalCode> </Address> </AddressList> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>03 9637-2289</Number> <Extension>72289</Extension> <ListedStatus>Y</ListedStatus> </PhoneNumber> <PhoneNumber Type="0888"> <Number>0437-765-234</Number> <ListedStatus>N</ListedStatus> </PhoneNumber> </PhoneNumberList> <EmailList> <Email Type="01">fsmith@yahoo.com</Email> <Email Type="02">freddy@gmail.com</Email> </EmailList> </PersonInfo> <Title>Principal</Title> </StaffPersonal>
Example 6.3.15-1: StaffPersonal

6.3.16 StudentActivityInfo

Co-curricular or extra-curricular activities (e.g., student organizations, inter-school sports, athletics, publications, band, orchestra, and service activities) in which students may participate.

SIF_Events are reported for this object.

StudentActivityInfo
Figure 6.3.16-1: StudentActivityInfo StudentActivityInfo RefId Title Description StudentActivityType Code OtherCodeList StudentActivityLevel YearLevels CurricularStatus Location SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 StudentActivityInfo 

Co-curricular or extra-curricular activities (e.g., student organizations, inter-school sports, athletics, publications, band, orchestra, and service activities) in which students may participate.

 
 
@
key
RefIdMThe ID (GUID) that uniquely identifies the instance of the object. RefIdType
 TitleM

Name of the co-curricular or extra-curricular activity.

 
xs:normalizedString
 DescriptionO

The description of the co-curricular or extra-curricular activity.

 
xs:normalizedString
 StudentActivityTypeM

Information regarding the co-curricular or extra-curricular activity.

 
 
 StudentActivityType/CodeM

Code identifying the co-curricular or extra-curricular activity.

 
AUCodeSetsActivityInvolvementCodeType
 StudentActivityType/OtherCodeList
     
O OtherCodeList
 StudentActivityLevelO

A description of the separation of level in the activity (e.g.,House, Inter-school, Club, State, National).

 
xs:normalizedString
 YearLevelsO

Collection of grade levels applicable to this co-curricular or extra-curricular activity.

 
YearLevels
 CurricularStatusO

An indication of the degree to which an activity is related to a student's curriculum.

 
AUCodeSetsActivityTypeType
 LocationO

Location where the activity takes place.

 
Location
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.16-1: StudentActivityInfo
<StudentActivityInfo RefId="6472B2610947583A463DBB345291B001"> <Title>Book Club</Title> <Description>Group of middle school students promoting reading</Description> <StudentActivityType> <Code>6011</Code> <OtherCodeList> <OtherCode Codeset="Local">MBook</OtherCode> </OtherCodeList> </StudentActivityType> <StudentActivityLevel>Middle School</StudentActivityLevel> <YearLevels> <YearLevel> <Code>5</Code> </YearLevel> <YearLevel> <Code>6</Code> </YearLevel> <YearLevel> <Code>7</Code> </YearLevel> <YearLevel> <Code>8</Code> </YearLevel> </YearLevels> <CurricularStatus>0750</CurricularStatus> <Location Type="Classroom"> <LocationName>Beaconhills Middle School Library</LocationName> <LocationRefId SIF_RefObject="RoomInfo">947582610947583ACEB2BB345291BAAA</LocationRefId> </Location> </StudentActivityInfo>
Example 6.3.16-1: StudentActivityInfo

6.3.17 StudentActivityParticipation

This object provides information on a co-curricular or extra-curricular activity in which a student participates during a given school year.

SIF_Events are reported for this object.

StudentActivityParticipation
Figure 6.3.17-1: StudentActivityParticipation StudentActivityParticipation RefId StudentPersonalRefId StudentActivityInfoRefId SchoolYear ParticipationComment StartDate EndDate Role RecognitionList Recognition SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 StudentActivityParticipation  This object provides information on a co-curricular or extra-curricular activity in which a student participates during a given school year.   
@
key
RefIdMThe ID (GUID) that uniquely identifies the instance of the object. RefIdType
 StudentPersonalRefIdM

GUID that identifies the student participating in the activity.

 
IdRefType
 StudentActivityInfoRefIdM

GUID that identifies the activity in which the student participates.

 
IdRefType
 SchoolYearO

School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2009").

 
SchoolYear
 ParticipationCommentO

Comment related to the student's participation in the activity.

 
xs:string
 StartDateO

This is the date which the activity participation is valid (inclusive).

 
xs:date
 EndDateO

This is the date through which the activity participation is valid (inclusive). If element is supported by the publisher/responder, should contain a date if the student withdraws from the activity before the end of the school year.

 
xs:date
 RoleO

Specific role the student plays in the activity (e.g., band leader, student body president).

 
xs:normalizedString
 RecognitionListO

List of awards and other types of recognition given to the student for this activity.

 
List
 RecognitionList/Recognition
     
MR

The nature of recognition given to the student for the successful completion of work in a co-curricular or extra-curricular activity.

 
xs:normalizedString
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.17-1: StudentActivityParticipation
<StudentActivityParticipation RefId="9ECC96830E02406F926C1C4D3542D122"> <StudentPersonalRefId>646C5D4AC8294886A02B971695C7BC06</StudentPersonalRefId> <StudentActivityInfoRefId>6472B2610947583A463DBB345291B001</StudentActivityInfoRefId> <SchoolYear>2009</SchoolYear> <ParticipationComment>First year of participation</ParticipationComment> <StartDate>2008-09-01</StartDate> <Role>Team member</Role> <RecognitionList> <Recognition>0750</Recognition> </RecognitionList> </StudentActivityParticipation>
Example 6.3.17-1: StudentActivityParticipation

6.3.18 StudentAttendanceSummary

This object provides a summary of a student'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 student in a school over the course of a school year.

SIF_Events are not reported for this object.

StudentAttendanceSummary
Figure 6.3.18-1: StudentAttendanceSummary StudentAttendanceSummary StudentPersonalRefId SchoolInfoRefId SchoolYear StartDate EndDate StartDay EndDay FTE DaysAttended ExcusedAbsences UnexcusedAbsences DaysTardy DaysInMembership SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 StudentAttendanceSummary 

This object provides a summary of a student'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 student in a school over the course of a school year.

 
 
@
key
StudentPersonalRefIdM

The ID (GUID) of the student for whom this attendance information is being reported.

 
IdRefType
@
key
SchoolInfoRefIdM

The ID (GUID) of the school for which this attendance information is being reported.

 
IdRefType
@
key
SchoolYearM

School year for which the information is applicable.

 
SchoolYear
@
key
StartDateM

Starting date of this attendance reporting period.

 
xs:date
@
key
EndDateM

Ending date of this attendance reporting period.

 
xs:date
 StartDayO

Number of the school day represented in StartDate.

 
xs:unsignedInt
 EndDayO

Number of the school day represented in EndDate.

 
xs:unsignedInt
 FTEO

Full time equivalent numeric value of the student's course load during this attendance period, expressed in decimal form, where 1.00 represents a full time enrollment.

 
xs:decimal
xs:minInclusive0
xs:maxInclusive1
xs:fractionDigits2
 DaysAttendedM

The number of days the student attended school when school was in session between the StartDate and EndDate, inclusive.

 
xs:decimal
 ExcusedAbsencesM

The number of days the student was absent from school with a valid excuse when school was in session between the StartDate and EndDate, inclusive.

 
xs:decimal
 UnexcusedAbsencesM

The number of days the student was absent from school without a valid excuse when school was in session between the StartDate and EndDate, inclusive.

 
xs:decimal
 DaysTardyO

The number of days the student was tardy when school was in session between the StartDate and EndDate, inclusive.

 
xs:decimal
 DaysInMembershipM

The number of days the student was present plus the number of days the student was absent when school was in session during the period between the StartDate and EndDate, inclusive.

 
xs:decimal
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.18-1: StudentAttendanceSummary
<StudentAttendanceSummary StudentPersonalRefId="D3476FAE8647384BDA2431EDA3583211" SchoolInfoRefId="CA285746359D75101A8C36432A901A16" SchoolYear="2005" StartDate="2004-08-30" EndDate="2005-06-10"> <StartDay>1</StartDay> <EndDay>180</EndDay> <FTE>1.00</FTE> <DaysAttended>178</DaysAttended> <ExcusedAbsences>2</ExcusedAbsences> <UnexcusedAbsences>0</UnexcusedAbsences> <DaysTardy>3</DaysTardy> <DaysInMembership>180</DaysInMembership> </StudentAttendanceSummary>
Example 6.3.18-1: StudentAttendanceSummary

6.3.19 StudentContactPersonal

This object contains information about the people who are referenced as student contacts.

SIF_Events are reported for this object.

StudentContactPersonal
Figure 6.3.19-1: StudentContactPersonal StudentContactPersonal RefId LocalId OtherIdList OtherId Type PersonInfo EmploymentType SchoolEducationalLevel NonSchoolEducation SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 StudentContactPersonal  This object contains information about the people who are referenced as student contacts.   
@
key
RefIdMThe ID (GUID) that uniquely identifies the instance of the object. RefIdType
 LocalIdO

The locally-assigned identifier for this person. Note: LocalId may be used as a unique person identifier rather than a unique contact identifier. In this case there may be more than one StudentContactPersonal instance with the same LocalId.

 
LocalId
 OtherIdListO

Lists all "other" identifiers associated with the student.

 
List
 OtherIdList/OtherIdMR

Lists an "other" identifier associated with the student.

 
xs:normalizedString
@TypeM

Code that defines the type of this other ID.

 
xs:normalizedString
 PersonInfoM

Personal Information

 
PersonInfo
 EmploymentTypeO

Code that defines employment type. This is compulsory for Parents or Guardians of the Student.

 
AUCodeSetsEmploymentTypeType
 SchoolEducationalLevelO

The highest level of education completed by the contact person.

 
EducationalLevel
 NonSchoolEducationO

This reflects the level of the Contact’s Non-School Education.

 
AUCodeSetsNonSchoolEducationType
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.19-1: StudentContactPersonal
<StudentContactPersonal RefId="7C834EA9EDA12090347F83297E1C290F"> <LocalId>P1234567</LocalId> <OtherIdList> <OtherId Type="Health Care Card">098765</OtherId> <OtherId Type="Seniors Card">123456789</OtherId> </OtherIdList> <PersonInfo> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Fred</GivenName> <FullName>Fred Smith</FullName> </Name> <OtherNames> <Name Type="AKA"> <FamilyName>Anderson</FamilyName> <GivenName>Samuel</GivenName> <FullName>Samuel Anderson</FullName> </Name> <Name Type="PRF"> <FamilyName>Rowinski</FamilyName> <GivenName>Sam</GivenName> <FullName>Sam Rowinski </FullName> </Name> </OtherNames> <Demographics> <IndigenousStatus>3</IndigenousStatus> <Sex>1</Sex> <BirthDate>1990-09-26</BirthDate> <BirthDateVerification>1004</BirthDateVerification> <PlaceOfBirth>Clayton</PlaceOfBirth> <StateOfBirth>VIC</StateOfBirth> <CountryOfBirth>1101</CountryOfBirth> <CountriesOfCitizenship> <CountryOfCitizenship>8104</CountryOfCitizenship> <CountryOfCitizenship>1101</CountryOfCitizenship> </CountriesOfCitizenship> <CountriesOfResidency> <CountryOfResidency>8104</CountryOfResidency> <CountryOfResidency>1101</CountryOfResidency> </CountriesOfResidency> <CountryArrivalDate>1990-09-26</CountryArrivalDate> <AustralianCitizenshipStatus>1</AustralianCitizenshipStatus> <EnglishProficiency> <Code>1</Code> </EnglishProficiency> <LanguageList> <Language> <Code>0001</Code> <LanguageType>1</LanguageType> </Language> </LanguageList> <DwellingArrangement> <Code>1671</Code> </DwellingArrangement> <Religion> <Code>2013</Code> </Religion> <ReligiousEventList> <ReligiousEvent> <Type>Baptism</Type> <Date>2000-09-01</Date> </ReligiousEvent> <ReligiousEvent> <Type>Christmas</Type> <Date>2009-12-24</Date> </ReligiousEvent> </ReligiousEventList> <ReligiousRegion>The Religion Region</ReligiousRegion> <PermanentResident>P</PermanentResident> <VisaSubClass>101</VisaSubClass> <VisaStatisticalCode>05</VisaStatisticalCode> </Demographics> <AddressList> <Address Type="0123" Role="012B"> <Street> <Line1>Unit1/10</Line1> <Line2>Barkley Street</Line2> </Street> <City>Yarra Glenn</City> <StateProvince>VIC</StateProvince> <Country>1101</Country> <PostalCode>9999</PostalCode> </Address> <Address Type="0123A" Role="013A"> <Street> <Line1>34 Term Address Street</Line1> </Street> <City>Home Town</City> <StateProvince>WA</StateProvince> <Country>1101</Country> <PostalCode>9999</PostalCode> </Address> </AddressList> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>03 9637-2289</Number> <Extension>72289</Extension> <ListedStatus>Y</ListedStatus> </PhoneNumber> <PhoneNumber Type="0888"> <Number>0437-765-234</Number> <ListedStatus>N</ListedStatus> </PhoneNumber> </PhoneNumberList> <EmailList> <Email Type="01">fsmith@yahoo.com</Email> <Email Type="02">freddy@gmail.com</Email> </EmailList> </PersonInfo> <EmploymentType>4</EmploymentType> <SchoolEducationalLevel>3</SchoolEducationalLevel> <NonSchoolEducation>6</NonSchoolEducation> </StudentContactPersonal>
Example 6.3.19-1: StudentContactPersonal

6.3.20 StudentContactRelationship

This object defines a relationship between a contact person and a student.

SIF_Events are reported for this object.

StudentContactRelationship
Figure 6.3.20-1: StudentContactRelationship StudentContactRelationship StudentPersonalRefId StudentContactPersonalRefId Relationship HouseholdList Household ContactFlags ParentLegalGuardian PickupRights LivesWith AccessToRecords EmergencyContact HasCustody DisciplinaryContact PrimaryCareProvider FeesBilling FamilyMail InterventionOrder MainlySpeaksEnglishAtHome ContactSequence ContactSequenceSource SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 StudentContactRelationship  This object defines a relationship between a contact person and a student.   
@
key
StudentPersonalRefIdMGUID that identifies the student for the relationship. RefIdType
@
key
StudentContactPersonalRefIdMGUID that identifies the contact person for the relationship. RefIdType
 RelationshipM

Defines the relationship of the contact to the student.

 
Relationship
 HouseholdListO

 

List
 HouseholdList/HouseholdMR

Repeatable element containing the ID of a household.

 
LocalId
 ContactFlagsC

Contains Yes/No characteristics of the contact person's role. Provide a Yes value for all that apply. At least one of the child elements of ContactFlags must have a Yes value. Do not publish the StudentContactRelationship instance if one of the child elements does not have a Yes value.

 
 
 ContactFlags/ParentLegalGuardian
     
C

Does the individual have parental or legal guardianship responsibility for the student?

 
AUCodeSetsYesOrNoCategoryType
 ContactFlags/PickupRights
     
C

This element tells whether or not the contact has pickup rights.

 
AUCodeSetsYesOrNoCategoryType
 ContactFlags/LivesWithC

Does the student live with this contact?

 
AUCodeSetsYesOrNoCategoryType
 ContactFlags/AccessToRecords
     
C

Does this contact have access to the student's records?

 
AUCodeSetsYesOrNoCategoryType
 ContactFlags/EmergencyContact
     
C

Should this contact be notified in case of emergency?

 
AUCodeSetsYesOrNoCategoryType
 ContactFlags/HasCustodyC

Does this contact have or share custody of the student?

 
AUCodeSetsYesOrNoCategoryType
 ContactFlags/DisciplinaryContact
     
C

Is this person to be contacted in case of disciplinary action?

 
AUCodeSetsYesOrNoCategoryType
 ContactFlags/PrimaryCareProvider
     
C

Does this person provide daily living or personal assistance to the student?

 
AUCodeSetsYesOrNoCategoryType
 ContactFlags/FeesBillingC

Is this the contact responsible for Payment of Fees?

 
AUCodeSetsYesOrNoCategoryType
 ContactFlags/FamilyMailC

Does this person receive family mail?

 
AUCodeSetsYesOrNoCategoryType
 ContactFlags/InterventionOrder
     
C

Is there an Intervention Order against this Contact?

 
AUCodeSetsYesOrNoCategoryType
 MainlySpeaksEnglishAtHomeO

Is English the main language spoken at home?

 
AUCodeSetsYesOrNoCategoryType
 ContactSequenceO

Number indicating the order in which the person should be contacted.

 
xs:unsignedInt
 ContactSequenceSourceO

Indicates the source who provided the contact sequence order.

 
AUCodeSetsSourceCodeTypeType
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.20-1: StudentContactRelationship
<StudentContactRelationship StudentPersonalRefId="DEE34B359D75101A8C3D00AA001A1652" StudentContactPersonalRefId="6472B2610947583A463DBB345291B001"> <Relationship> <Code>01</Code> </Relationship> <HouseholdList> <Household>FamilyA</Household> <Household>FamilyB</Household> </HouseholdList> <ContactFlags> <ParentLegalGuardian>Y</ParentLegalGuardian> <PickupRights>Y</PickupRights> <LivesWith>N</LivesWith> <AccessToRecords>U</AccessToRecords> <EmergencyContact>Y</EmergencyContact> <HasCustody>N</HasCustody> <DisciplinaryContact>N</DisciplinaryContact> <PrimaryCareProvider>U</PrimaryCareProvider> <FeesBilling>Y</FeesBilling> <FamilyMail>Y</FamilyMail> <InterventionOrder>N</InterventionOrder> </ContactFlags> <MainlySpeaksEnglishAtHome>U</MainlySpeaksEnglishAtHome> <ContactSequence>1</ContactSequence> <ContactSequenceSource>P</ContactSequenceSource> </StudentContactRelationship>
Example 6.3.20-1: StudentContactRelationship

6.3.21 StudentDailyAttendance

This object provides daily attendance information for a particular student in a particular school on a particular date.

SIF_Events are reported for this object.

StudentDailyAttendance
Figure 6.3.21-1: StudentDailyAttendance StudentDailyAttendance RefId StudentPersonalRefId SchoolInfoRefId Date SchoolYear DayValue AttendanceCode AttendanceStatus TimeIn TimeOut AbsenceValue AttendanceNote SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 StudentDailyAttendance 

This object provides daily attendance information for a particular student in a particular school on a particular date.

 
 
@
key
RefIdM

The ID (GUID) assigned to uniquely identify this attendance record.

 
RefIdType
 StudentPersonalRefIdM

The ID (GUID) of the student for whom this attendance information is being reported.

 
IdRefType
 SchoolInfoRefIdM

The ID (GUID) of the school for which this attendance information is being reported.

 
IdRefType
 DateM

The calendar date to which this attendance information relates.

 
xs:date
 SchoolYearM

School year for which this enrollment is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007).

 
SchoolYear
 DayValueO

Value of a day this instance, represents.

 
AUCodeSetsDayValueCodeType
 AttendanceCodeM

Locally defined code for attendance.

 
AttendanceCode
 AttendanceStatusM

Approved or Unapproved status of this attendance code.

 
AUCodeSetsAttendanceStatusType
 TimeInC

The time the student entered or returned to school. Must be provided if ‘Partial’ chosen for DayValue.

 
xs:time
 TimeOutC

The time the student left school. Must be provided if ‘Partial’ chosen for DayValue..

 
xs:time
 AbsenceValueC

Must be provided if the DayValue is "Partial" or "Other". The amount of absence represented by AttendanceCode, up to three decimal places.

 
xs:decimal
xs:minInclusive0
xs:maxInclusive1
 AttendanceNoteO

Note related to this particular attendance.

 
xs:normalizedString
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.21-1: StudentDailyAttendance
<StudentDailyAttendance RefId="2FFB63B4CFEF48208501E7D1E54555CB"> <StudentPersonalRefId>D3E34B359D75101A8C3D00AA001A1652</StudentPersonalRefId> <SchoolInfoRefId>CA285746359D75101A8C36432A901A16</SchoolInfoRefId> <Date>2002-11-01</Date> <SchoolYear>2003</SchoolYear> <DayValue>Partial</DayValue> <AttendanceCode> <Code>200</Code> <OtherCodeList> <OtherCode Codeset="Local">S</OtherCode> <OtherCode Codeset="Text">C</OtherCode> </OtherCodeList> </AttendanceCode> <AttendanceStatus>01</AttendanceStatus> <TimeIn>13:30:00</TimeIn> <TimeOut>12:05:00</TimeOut> <AttendanceNote>Left for Orthodontist appt. and returned to school afterward</AttendanceNote> </StudentDailyAttendance>
Example 6.3.21-1: StudentDailyAttendance

6.3.22 StudentParticipation

This object contains information pertaining to student eligibility for and participation in an individualized special program such as special education, ESL, etc.

Multiple instances of this object may be transmitted for a particular student because the student may participate in multiple programs and because the details of a student's participation in a given program may change over time. A separate instance of this object must be generated for each program in which the student participates, and the ProgramType element is used to identify the particular program. In addition, each time the student's participation profile changes for a particular program, a new instance of this object must be generated with the appropriate value in the ProgramType element, the effective date of the new profile in StudentParticipationAsOfDate, and a new RefId.

SIF_Events are reported for this object.

StudentParticipation
Figure 6.3.22-1: StudentParticipation StudentParticipation RefId StudentPersonalRefId StudentParticipationAsOfDate ProgramType ProgramFundingSources ProgramFundingSource Code OtherCodeList ManagingSchool SIF_RefObject StudentSpecialEducationFTE ParticipationContact SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 StudentParticipation 

This object contains information pertaining to student eligibility for and participation in an individualized special program such as special education, ESL, etc.

Multiple instances of this object may be transmitted for a particular student because the student may participate in multiple programs and because the details of a student's participation in a given program may change over time. A separate instance of this object must be generated for each program in which the student participates, and the ProgramType element is used to identify the particular program. In addition, each time the student's participation profile changes for a particular program, a new instance of this object must be generated with the appropriate value in the ProgramType element, the effective date of the new profile in StudentParticipationAsOfDate, and a new RefId.

 
 
@
key
RefIdM

This is the unique identification code

 
RefIdType
 StudentPersonalRefIdM

The GUID of the student that this object is linked to.

 
IdRefType
 StudentParticipationAsOfDateM

Effective date (NOT the entry date) of this StudentParticipation instance for the identified student and program. Each time there is a change to the student's program participation profile, a new instance of this object is to be generated with the appropriate StudentParticipationAsOfDate and a new RefId.

 
xs:date
 ProgramTypeOIdentifies the individualised program for which the student's participation is described in this instance AUCodeSetsStudentFamilyProgramTypeType
 ProgramFundingSourcesOList of funding sources List
 ProgramFundingSources/ProgramFundingSource
     
MRFunding source of the special program  
 ProgramFundingSources/ProgramFundingSource/
     Code
M

Funding source for the program, may be more than one.

 
AUCodeSetsProgramFundingSourceCodeType
 ProgramFundingSources/ProgramFundingSource/
     OtherCodeList
O OtherCodeList
 ManagingSchoolM

The GUID of the school responsible for coordinating the student's program participation.

 
IdRefType
@SIF_RefObjectM values:
SchoolInfo
 StudentSpecialEducationFTEO

Calculated ratio of time the student is in a special ed setting. Values range from 0.00 to 1.00. If the student is in a special ed setting 25% of the time, the value is .25; if 100% of the time, the value is 1.00.

 
xs:decimal
xs:minInclusive0
xs:maxInclusive1
xs:fractionDigits2
 ParticipationContactO

Primary contact for this record.

 
xs:normalizedString
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.22-1: StudentParticipation
<StudentParticipation RefId="D3E34B359D75101A8C3D00AA001A1652"> <StudentPersonalRefId>A2E34F59A742C1A4B3D11CC002B163A2</StudentPersonalRefId> <StudentParticipationAsOfDate>2006-07-13</StudentParticipationAsOfDate> <ProgramType>0240</ProgramType> <ProgramFundingSources> <ProgramFundingSource> <Code>1</Code> </ProgramFundingSource> </ProgramFundingSources> <ManagingSchool SIF_RefObject="SchoolInfo">D93F4D183A42C1A4B3D11CC002B163A2</ManagingSchool> <ParticipationContact>John Mason</ParticipationContact> </StudentParticipation>
Example 6.3.22-1: StudentParticipation

6.3.23 StudentPeriodAttendance

This object allows recording of period level attendance a student. The Australian StudentPeriodAttendance object differs to the US StudentPeriodAttendance object in the following ways:

SIF_Events are reported for this object.

StudentPeriodAttendance
Figure 6.3.23-1: StudentPeriodAttendance StudentPeriodAttendance RefId StudentPersonalRefId SchoolInfoRefId Date SessionInfoRefId TimetablePeriod AttendanceCode AttendanceStatus SchoolYear SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 StudentPeriodAttendance 

This object allows recording of period level attendance a student. The Australian StudentPeriodAttendance object differs to the US StudentPeriodAttendance object in the following ways:

  • Student Period Attendance object is usually linked to a SessionInfo object (see below), but it is possible, for simple period attendance packages, to not link period attendance to a session or timetable.
  • There will be one provider of the StudentPeriodAttendance within a SIF Zone in Australia. The US, in contrast, has specified objects and events to allow for multiple providers of the StudentPeriodAttendance object in a zone.

 
 
@
key
RefIdM

The ID (GUID) assigned to uniquely identify this attendance record.

 
RefIdType
 StudentPersonalRefIdM

The GUID of the student that this attendance applies to.

 
IdRefType
 SchoolInfoRefIdM

The school where the attendance was recorded. Somewhat redundant, needed for requests.

 
IdRefType
 DateM

The date of the attendance event.

 
xs:date
 SessionInfoRefIdO

The GUID of the session that this attendance applies to.

 
IdRefType
 TimetablePeriodO

The period within which attendance is being reported, e.g. "4D".

 
xs:normalizedString
 AttendanceCodeM

Code that describes the absence or attendance

 
AttendanceCode
 AttendanceStatusM

Approved or Unapproved status of this attendance code.

 
AUCodeSetsAttendanceStatusType
 SchoolYearO

School year for which this enrollment is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007).

 
SchoolYear
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.23-1: StudentPeriodAttendance
<StudentPeriodAttendance RefId="98157AA013BA8C3D00AA012B359D7512"> <StudentPersonalRefId>A75A00101A8C301D02E3A05B359D0A00</StudentPersonalRefId> <SchoolInfoRefId>11737EA4301CADCA75C87214A7C46BDB</SchoolInfoRefId> <Date>2001-03-05</Date> <TimetablePeriod>P4</TimetablePeriod> <AttendanceCode> <Code>802</Code> </AttendanceCode> <AttendanceStatus>01</AttendanceStatus> </StudentPeriodAttendance>
Example 6.3.23-1: StudentPeriodAttendance

6.3.24 StudentPersonal

This object contains all the personal information related to the student.

SIF_Events are reported for this object.

StudentPersonal
Figure 6.3.24-1: StudentPersonal StudentPersonal RefId AlertMessages AlertMessage Type MedicalAlertMessages MedicalAlertMessage Severity LocalId StateProvinceId ElectronicIdList OtherIdList OtherId Type PersonInfo ProjectedGraduationYear OnTimeGraduationYear MostRecent SchoolLocalId HomeroomLocalId YearLevel AcceptableUsePolicy EconomicDisadvantage ESL YoungCarersRole Disability IntegrationAide PrePrimaryEducation FirstAUSchoolEnrollment SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 StudentPersonal 

This object contains all the personal information related to the student.

 
 
@
key
RefIdM

The GUID of the student.

 
RefIdType
 AlertMessagesO List
 AlertMessages/AlertMessage
     
MR

This is an alert message that is associated with the student.

 
xs:string
@TypeM

This attribute specifies what type of alert message this is.

 
values:
Legal
Custody, guardian, court orders (e.g. must attend school), lawsuits, etc.
Discipline
Student is suspended, expelled, on probation, etc.
Educational
academic probation, etc.
Other
 MedicalAlertMessagesO List
 MedicalAlertMessages/MedicalAlertMessage
     
MR

Medical alert associated with the student.

 
xs:string
@SeverityM

The level of severity of this medical alert.

 
values:
Low
Moderate
High
Severe
Unknown
 LocalIdM

The locally-assigned identifier for this student.

 
LocalId
 StateProvinceIdO

The state-assigned identifier for this student.

 
StateProvinceId
 ElectronicIdListO

Electronic identifier(s) associated with this entity.

 
ElectronicIdList
 OtherIdListO

Lists all "other" identifiers associated with the student.

 
List
 OtherIdList/OtherIdMR

Lists an "other" identifier associated with the student.

 
xs:normalizedString
@TypeM

Code that defines the type of this other ID.

 
xs:normalizedString
 PersonInfoM

Personal Information

 
PersonInfo
 ProjectedGraduationYearO

Currently projected graduation year.

 
ProjectedGraduationYear
 OnTimeGraduationYearO

First projected graduation year, usually determined when student is accepted into 9th grade.

 
OnTimeGraduationYear
 MostRecentO

Container for elements reflecting the most recent enrollment of a student. If the student is currently enrolled in the district, the elements contain current information.

 
 
 MostRecent/SchoolLocalIdO

Local identifier representing the school in which the student is or was most recently enrolled in the district.

 
LocalId
 MostRecent/HomeroomLocalId
     
O

Local identifier representing the current or most recent homeroom in which the student is or was most recently assigned in the district. Use the value from RoomInfo/HomeroomNumber if supported. If not supported, use the value from RoomInfo/RoomNumber. If neither is supported, use the most appropriate value from the agent’s application.

 
LocalId
 MostRecent/YearLevelO

The current or most recent grade level of the student in the district.

 
YearLevel
 AcceptableUsePolicyO

Does the student have a current signed Acceptable Use Policy document for system access?

 
AUCodeSetsYesOrNoCategoryType
 EconomicDisadvantageO

Does the student meet the State criteria for classification as having an economic disadvantage?

 
AUCodeSetsYesOrNoCategoryType
 ESLODoes the student meet ‘English as a Second Language Criteria’? AUCodeSetsYesOrNoCategoryType
 YoungCarersRoleO

Is the student a carer of other family members?

 
AUCodeSetsYesOrNoCategoryType
 DisabilityO

Does the student have funding for disability?

 
AUCodeSetsYesOrNoCategoryType
 IntegrationAideO

Does the Student require an Integration Aide?

 
AUCodeSetsYesOrNoCategoryType
 PrePrimaryEducationO

Care prior to kinder enrolment (eg. Family day care/home/extended care etc).

 
xs:normalizedString
 FirstAUSchoolEnrollmentO

Date of the first enrolment in an Australian School

 
xs:date
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.24-1: StudentPersonal
<StudentPersonal RefId="7C834EA9EDA12090347F83297E1C290C"> <AlertMessages> <AlertMessage Type="Legal">Mother is legal guardian</AlertMessage> </AlertMessages> <MedicalAlertMessages> <MedicalAlertMessage Severity="Severe">Student has Peanut Allergy</MedicalAlertMessage> <MedicalAlertMessage Severity="Moderate">Student has Diabetes</MedicalAlertMessage> </MedicalAlertMessages> <LocalId>S1234567</LocalId> <StateProvinceId>ABC1234</StateProvinceId> <ElectronicIdList> <ElectronicId Type="03">ZZZZZZ21</ElectronicId> <ElectronicId Type="03">ZZZZZZ22</ElectronicId> </ElectronicIdList> <OtherIdList> <OtherId Type="freetext">888rdgf</OtherId> <OtherId Type="Disability ID">1234</OtherId> </OtherIdList> <PersonInfo> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Fred</GivenName> <FullName>Fred Smith</FullName> </Name> <OtherNames> <Name Type="AKA"> <FamilyName>Anderson</FamilyName> <GivenName>Samuel</GivenName> <FullName>Samuel Anderson</FullName> </Name> <Name Type="PRF"> <FamilyName>Rowinski</FamilyName> <GivenName>Sam</GivenName> <FullName>Sam Rowinski </FullName> </Name> </OtherNames> <Demographics> <IndigenousStatus>3</IndigenousStatus> <Sex>1</Sex> <BirthDate>1990-09-26</BirthDate> <BirthDateVerification>1004</BirthDateVerification> <PlaceOfBirth>Clayton</PlaceOfBirth> <StateOfBirth>VIC</StateOfBirth> <CountryOfBirth>1101</CountryOfBirth> <CountriesOfCitizenship> <CountryOfCitizenship>8104</CountryOfCitizenship> <CountryOfCitizenship>1101</CountryOfCitizenship> </CountriesOfCitizenship> <CountriesOfResidency> <CountryOfResidency>8104</CountryOfResidency> <CountryOfResidency>1101</CountryOfResidency> </CountriesOfResidency> <CountryArrivalDate>1990-09-26</CountryArrivalDate> <AustralianCitizenshipStatus>1</AustralianCitizenshipStatus> <EnglishProficiency> <Code>1</Code> </EnglishProficiency> <LanguageList> <Language> <Code>0001</Code> <LanguageType>1</LanguageType> </Language> </LanguageList> <DwellingArrangement> <Code>1671</Code> </DwellingArrangement> <Religion> <Code>2013</Code> </Religion> <ReligiousEventList> <ReligiousEvent> <Type>Baptism</Type> <Date>2000-09-01</Date> </ReligiousEvent> <ReligiousEvent> <Type>Christmas</Type> <Date>2009-12-24</Date> </ReligiousEvent> </ReligiousEventList> <ReligiousRegion>The Religion Region</ReligiousRegion> <PermanentResident>P</PermanentResident> <VisaSubClass>101</VisaSubClass> <VisaStatisticalCode>05</VisaStatisticalCode> </Demographics> <AddressList> <Address Type="0123" Role="2382"> <Street> <Line1>Unit1/10</Line1> <Line2>Barkley Street</Line2> </Street> <City>Yarra Glenn</City> <StateProvince>VIC</StateProvince> <Country>1101</Country> <PostalCode>9999</PostalCode> </Address> <Address Type="0123A" Role="013A"> <Street> <Line1>34 Term Address Street</Line1> </Street> <City>Home Town</City> <StateProvince>WA</StateProvince> <Country>1101</Country> <PostalCode>9999</PostalCode> </Address> </AddressList> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>03 9637-2289</Number> <Extension>72289</Extension> <ListedStatus>Y</ListedStatus> </PhoneNumber> <PhoneNumber Type="0888"> <Number>0437-765-234</Number> <ListedStatus>N</ListedStatus> </PhoneNumber> </PhoneNumberList> <EmailList> <Email Type="01">fsmith@yahoo.com</Email> <Email Type="02">freddy@gmail.com</Email> </EmailList> </PersonInfo> <ProjectedGraduationYear>2014</ProjectedGraduationYear> <OnTimeGraduationYear>2012</OnTimeGraduationYear> <MostRecent> <SchoolLocalId>S1234567</SchoolLocalId> <HomeroomLocalId>hr12345</HomeroomLocalId> <YearLevel> <Code>P</Code> </YearLevel> </MostRecent> <AcceptableUsePolicy>Y</AcceptableUsePolicy> <EconomicDisadvantage>N</EconomicDisadvantage> <ESL>U</ESL> <YoungCarersRole>N</YoungCarersRole> <Disability>N</Disability> <IntegrationAide>N</IntegrationAide> </StudentPersonal>
Example 6.3.24-1: StudentPersonal

6.3.25 StudentSchoolEnrollment

This object defines information related to a student's enrollment. StudentSchoolEnrollment instances must not span multiple school years.

Note there is only one current home enrollment at a time per student. Only one instance of the StudentSchoolEnrollment object must exist for a given student with MembershipType=01 (Home School) and TimeFrame=C (Current) for the time interval between EntryDate and ExitDate, inclusive.

Agents are required to re-publish a StudentSchoolEnrollment object Change event when the TimeFrame attribute changes, regardless of when the data entry is done. This is in addition to the practice of publishing the object Change event at the time the data changes in the corresponding application.

When the object is re-published, it must contain all the data in the object that is supported by the publisher.

SIF_Events are reported for this object.

StudentSchoolEnrollment
Figure 6.3.25-1: StudentSchoolEnrollment StudentSchoolEnrollment RefId StudentPersonalRefId SchoolInfoRefId MembershipType TimeFrame SchoolYear EntryDate EntryType Code OtherCodeList YearLevel Homeroom SIF_RefObject Advisor SIF_RefObject Counselor SIF_RefObject Homegroup House IndividualLearningPlan Calendar SIF_RefObject ExitDate ExitStatus Code OtherCodeList ExitType Code OtherCodeList FTE FTPTStatus CatchmentStatus Code OtherCodeList RecordClosureReason PromotionInfo PromotionStatus PreviousSchool DestinationSchool StudentSubjectChoiceList StudentSubjectChoice PreferenceNumber SubjectLocalId StudyDescription OtherSchoolLocalId SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 StudentSchoolEnrollment 

This object defines information related to a student's enrollment. StudentSchoolEnrollment instances must not span multiple school years.

Note there is only one current home enrollment at a time per student. Only one instance of the StudentSchoolEnrollment object must exist for a given student with MembershipType=01 (Home School) and TimeFrame=C (Current) for the time interval between EntryDate and ExitDate, inclusive.

Agents are required to re-publish a StudentSchoolEnrollment object Change event when the TimeFrame attribute changes, regardless of when the data entry is done. This is in addition to the practice of publishing the object Change event at the time the data changes in the corresponding application.

When the object is re-published, it must contain all the data in the object that is supported by the publisher.

 
 
@
key
RefIdM

The ID (GUID) that uniquely identifies a particular enrollment.

 
RefIdType
 StudentPersonalRefIdM

The ID (GUID) of the student to whom this information is linked.

 
IdRefType
 SchoolInfoRefIdM

The ID (GUID) of the school to which this enrollment applies.

 
IdRefType
 MembershipTypeM

The type of this enrollment as it relates to the school identified in SchoolInfoRefId.

 
AUCodeSetsSchoolEnrollmentTypeType
 TimeFrameM

The timeframe of the enrollment 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.

 
AUCodeSetsEnrollmentTimeFrameType
 SchoolYearM

School year for which this enrollment is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007). StudentSchoolEnrollment instances must not span multiple school years.

 
SchoolYear
 EntryDateM

The date from when this enrollment is valid.

 
xs:date
 EntryTypeOContainer elements for EntryType information  
 EntryType/CodeM

Code indicating the type of entry for this enrollment

 
AUCodeSetsEntryTypeType
 EntryType/OtherCodeListOList of other codes or strings that crosswalk to or serve as translations of the Code element paired with this common element. If Code changes and OtherCodes are supported, both Code and all associated OtherCode elements must be present. OtherCodeList
 YearLevelO

Year or academic level of student.

 
YearLevel
 HomeroomO

Homeroom for this enrollment.

 
IdRefType
@SIF_RefObjectM

The name of the object referenced.

 
values:
RoomInfo
 AdvisorO

Staff member assigned as an advisor.

 
IdRefType
@SIF_RefObjectM

The name of the object referenced.

 
values:
StaffPersonal
 CounselorO

Staff member assigned as an advisor.

 
IdRefType
@SIF_RefObjectM

The name of the object referenced.

 
values:
StaffPersonal
 HomegroupO

The name of the homegroup the student enrollment belongs to.

 
xs:normalizedString
 HouseO

The name of the house the student belongs to.

 
xs:normalizedString
 IndividualLearningPlanO

Does this student have an individual learning plan in place?

 
AUCodeSetsYesOrNoCategoryType
 CalendarO

The calendar assigned to this enrollment.

 
IdRefType
@SIF_RefObjectM

The name of the object referenced.

 
values:
CalendarSummary
 ExitDateC

The last school calendar day of this enrollment. If the student has exited the school or the enrollment has a RecordClosureReason, ExitDate must have a value.

 
xs:date
 ExitStatusOContainer element for exit status codes.  
 ExitStatus/CodeM

Code indicating the closure status for this enrollment.

 
AUCodeSetsExitWithdrawalStatusType
 ExitStatus/OtherCodeListO OtherCodeList
 ExitTypeO  
 ExitType/CodeM

Code indicating the type of exit for this enrollment.

 
AUCodeSetsExitWithdrawalTypeType
 ExitType/OtherCodeListO OtherCodeList
 FTEO

Full-time equivalent numeric value of the student's course load during this enrollment, expressed in decimal form, where 1.00 represents a full-time enrollment.

 
xs:decimal
xs:minInclusive0
xs:maxInclusive1
xs:fractionDigits2
 FTPTStatusO

An indication of whether the student is enrolled full time or part time.

 
AUCodeSetsFTPTStatusCodeType
 CatchmentStatusO

Container element for location of an individual's legal residence relative to (within or outside) the boundaries of the school for this enrolment. Enrolment Catchment Status.

 
 
 CatchmentStatus/CodeM

Code indicating the residency status for this enrollment. Code indicating Enrollment Catchment Status.

 
AUCodeSetsPublicSchoolCatchmentStatusType
 CatchmentStatus/OtherCodeList
     
OList of other codes or strings that crosswalk to or serve as translations of the Code element paired with this common element. If Code changes and OtherCodes are supported, both Code and all associated OtherCode elements must be present. OtherCodeList
 RecordClosureReasonO

The reason why this enrollment was closed. The EndOfYear option must be used to convey status change due to rollover activity.

 
values:
SchoolExit
TimeDependentDataChange
EndOfYear
 PromotionInfoO

Information on a student’s promotion, retention, or demotion related to this enrollment instance.

 
 
 PromotionInfo/PromotionStatus
     
O

This value should be set if this enrollment instance is closed for an end-of-year closeout or a mid-year promotion or demotion. A value other than NA should be specified when the enrollment instance represents an end-of-year closeout or mid-year promotion/demotion.

 
values:
Promoted
Demoted
Retained
NA
 PreviousSchoolO

If the student has previously been enrolled at a school, i.e. student is transferring, the previous school number.

 
LocalId
 DestinationSchoolO

If the student has exited the school, the local id of the school to which the student has transferred to.

 
LocalId
 StudentSubjectChoiceListO

List of Student Subject Choices where available.

 
List
 StudentSubjectChoiceList/
     StudentSubjectChoice
MR

Subjects Students Choose

 
 
 StudentSubjectChoiceList/
     StudentSubjectChoice/PreferenceNumber
     
O

Subject Priority

 
xs:unsignedInt
 StudentSubjectChoiceList/
     StudentSubjectChoice/SubjectLocalId
     
M

Local Subject Id

 
LocalId
 StudentSubjectChoiceList/
     StudentSubjectChoice/StudyDescription
     
O

Description about Study Mode.

 
SubjectArea
 StudentSubjectChoiceList/
     StudentSubjectChoice/OtherSchoolLocalId
     
O

Localid of a school where the student studies this subject if not at the home school.

 
LocalId
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.25-1: StudentSchoolEnrollment
<StudentSchoolEnrollment RefId="A8C3D3E34B359D75101D00AA001A1652"> <StudentPersonalRefId>D3E34B359D75101A8C3D00AA001A1652</StudentPersonalRefId> <SchoolInfoRefId>D3E34B359D75101A8C3D00AA001A1651</SchoolInfoRefId> <MembershipType>01</MembershipType> <TimeFrame>C</TimeFrame> <SchoolYear>2004</SchoolYear> <EntryDate>2004-01-29</EntryDate> <EntryType> <Code>1838</Code> </EntryType> <YearLevel> <Code>10</Code> </YearLevel> <Homeroom SIF_RefObject="RoomInfo">D7510D3E34B3591A8C3D00AA001A1651</Homeroom> <Advisor SIF_RefObject="StaffPersonal">B359D3E34D75101A8C3D00AA001A1652</Advisor> <FTE>1.00</FTE> <FTPTStatus>01</FTPTStatus> </StudentSchoolEnrollment>
Example 6.3.25-1: StudentSchoolEnrollment

6.3.26 StudentSDTN

This object has been developed to cater for the SDTN – Student Data Transfer Note. http://www.mceecdya.edu.au/verve/_resources/ISDTN_Form_3_Transfer_Note_Oct_06.pdf The elements in this object have been developed to support the LIMF recommendations and allow two or more jurisdictions to exchange this data. http://www.aictec.edu.au/aictec/go/home/about/pid/289

SIF_Events are reported for this object.

StudentSDTN
Figure 6.3.26-1: StudentSDTN StudentSDTN RefId SnapDate StudentPersonalRefId PersonInfo SchoolInfoRefId SchoolLocalId SchoolName AddressList PrincipalInfo FurtherInformation ContactName PhoneNumberList EmailList EnrollmentDate DepartureDate YearLevel ReasonForLeaving PreviousSchoolsList PreviousSchool SchoolName ReasonLeft AttendanceConcerns HealthNeeds AreasOfInterestList ActivityInfo StudentActivityInfoRefId StudentActivityDescription NegotiatedCurriculumPlan AdjustedEducationProgram CareerGuidanceFileHeld SchoolCounsellorFileHeld OtherLearningSupport AcceleratedProgram YoungCarersRole Literacy Numeracy OtherLearningAreasList OtherLearningArea Description Result LatestStudentReportAvailable PastoralCare DisciplinaryAbsences IndividualBehaviourPlan SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 StudentSDTN 

This object has been developed to cater for the SDTN – Student Data Transfer Note. http://www.mceecdya.edu.au/verve/_resources/ISDTN_Form_3_Transfer_Note_Oct_06.pdf The elements in this object have been developed to support the LIMF recommendations and allow two or more jurisdictions to exchange this data. http://www.aictec.edu.au/aictec/go/home/about/pid/289

 
 
@
key
RefIdMThe GUID that uniquely identifies this SDTN Object. RefIdType
 SnapDateM

The date that this object was sent.

 
xs:date
 StudentPersonalRefIdM

The RefId of the StudentPersonal object at the sending school.

 
IdRefType
 PersonInfoM

Personal Information.

 
PersonInfo
 SchoolInfoRefIdM

GUID that identifies the school that provided the SDTN.

 
IdRefType
 SchoolLocalIdO

The locally-assigned identifier for the school in the original database (sender)

 
LocalId
 SchoolNameM

Name of school/campus.

 
xs:normalizedString
 AddressListO

The school's addresses.

 
AddressList
 PrincipalInfoO

Information about the campus or school principal.

 
PrincipalInfo
 FurtherInformationO

 

 
 FurtherInformation/ContactName
     
O

The name of the person to contact for further information on this student.

 
NameOfRecordType
 FurtherInformation/PhoneNumberList
     
O

The further contact person’s phone number(s).

 
PhoneNumberList
 FurtherInformation/EmailList
     
O

The further contact person’s e-mail address(es).

 
EmailList
 EnrollmentDateO

The date when the student first attended the school.

 
xs:date
 DepartureDateO

The last school calendar day the student attended or sign-out date if departure is before end of school year.

 
xs:date
 YearLevelO

School Year or academic level of student at departure date.

 
YearLevel
 ReasonForLeavingO

 

xs:normalizedString
 PreviousSchoolsListO

List of Previous Schools if known (other than the provider school)

 
List
 PreviousSchoolsList/PreviousSchool
     
MR

Repeatable element of previous schools information if known. (other than the provider school)

 
 
 PreviousSchoolsList/PreviousSchool/
     SchoolName
M

Previous School Name

 
xs:normalizedString
 PreviousSchoolsList/PreviousSchool/
     ReasonLeft
O

Reason for leaving previous school if known.

 
xs:normalizedString
 AttendanceConcernsO

Indicator of whether the Student had attendance concerns worth noting.

 
AUCodeSetsYesOrNoCategoryType
 HealthNeedsO

Indicator of whether the Student has any Health Care Needs.

 
AUCodeSetsYesOrNoCategoryType
 AreasOfInterestListO

 

List
 AreasOfInterestList/ActivityInfo
     
MR

Repeatable element containing activities student has an interest in or participates in.

 
 
 AreasOfInterestList/ActivityInfo/
     StudentActivityInfoRefId
O

GUID that identifies the activity in which the student participates.

 
IdRefType
 AreasOfInterestList/ActivityInfo/
     StudentActivityDescription
     
M

Description of Activity Info in the Previous Schools’ zone.

 
xs:normalizedString
 NegotiatedCurriculumPlanO

Does the student have a negotiated curriculum plan?

 
AUCodeSetsYesOrNoCategoryType
 AdjustedEducationProgramO

Does the student have an adjusted education program?

 
AUCodeSetsYesOrNoCategoryType
 CareerGuidanceFileHeldO

Does the student have a career guidance file?

 
AUCodeSetsYesOrNoCategoryType
 SchoolCounsellorFileHeldO

Is there a School counsellor/psychologist file held?

 
AUCodeSetsYesOrNoCategoryType
 OtherLearningSupportO

Comments describing any other required learning support, eg ESL needs.

 
xs:string
 AcceleratedProgramO

Did the student participate in an accelerated learning program?

 
AUCodeSetsYesOrNoCategoryType
 YoungCarersRoleO

Is the student a carer of other family members?

 
AUCodeSetsYesOrNoCategoryType
 LiteracyO

Progress in Literacy or English according to the National Standard.

 
AUCodeSetsProgressLevelType
 NumeracyO

Progress in Numeracy or Maths according to the National Standard.

 
AUCodeSetsProgressLevelType
 OtherLearningAreasListO

 

List
 OtherLearningAreasList/OtherLearningArea
     
MR

Repeatable element of progress in other learning areas.

 
 
 OtherLearningAreasList/OtherLearningArea/
     Description
M

Description of Other Learning Area.

 
xs:normalizedString
 OtherLearningAreasList/OtherLearningArea/
     Result
O

Progress in other learning area according to the National Standard.

 
AUCodeSetsProgressLevelType
 LatestStudentReportAvailableO

Is the latest student report available?

 
AUCodeSetsYesOrNoCategoryType
 PastoralCareO

Pastoral care and behaviour management

 
 
 PastoralCare/DisciplinaryAbsences
     
O

Have there been any school disciplinary absences (in or out of school) in the last 12 months

 
AUCodeSetsYesOrNoCategoryType
 PastoralCare/IndividualBehaviourPlan
     
O

Is there an individual behaviour management plan

 
AUCodeSetsYesOrNoCategoryType
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.26-1: StudentSDTN
<StudentSDTN RefId="9ECC96830E02406F926C1C4D3542D122"> <SnapDate>2009-03-01</SnapDate> <StudentPersonalRefId>646C5D4AC8294886A02B971695C7BC06</StudentPersonalRefId> <PersonInfo> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Fred</GivenName> <FullName>Fred Smith</FullName> </Name> <OtherNames> <Name Type="AKA"> <FamilyName>Anderson</FamilyName> <GivenName>Samuel</GivenName> <FullName>Samuel Anderson</FullName> </Name> <Name Type="PRF"> <FamilyName>Rowinski</FamilyName> <GivenName>Sam</GivenName> <FullName>Sam Rowinski </FullName> </Name> </OtherNames> <Demographics> <Sex>1</Sex> <BirthDate>1995-09-26</BirthDate> <AustralianCitizenshipStatus>1</AustralianCitizenshipStatus> </Demographics> </PersonInfo> <SchoolInfoRefId>476C5D4AC8294886A02B971695C7BC06</SchoolInfoRefId> <SchoolLocalId>01011234</SchoolLocalId> <SchoolName>Lincoln Secondary College</SchoolName> <AddressList> <Address Type="0123" Role="012B"> <Street> <Line1>23 Nicholson Street</Line1> </Street> <City>Carnegie</City> <StateProvince>VIC</StateProvince> <Country>1101</Country> <PostalCode>3004</PostalCode> <GridLocation> <Latitude>23.9876</Latitude> <Longitude>-98.8765</Longitude> </GridLocation> </Address> </AddressList> <PrincipalInfo> <ContactName Type="LGL"> <Title>Mr</Title> <FamilyName>Miller</FamilyName> <GivenName>James</GivenName> <MiddleName>Frank</MiddleName> <Suffix>Jr.</Suffix> <FullName>Mr James Frank Miller Jr.</FullName> </ContactName> <ContactTitle>School Principal</ContactTitle> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>03 9637-2000</Number> <Extension>72345</Extension> <ListedStatus>Y</ListedStatus> </PhoneNumber> </PhoneNumberList> <EmailList> <Email Type="01">jmiller@lsc.vic.edu.au</Email> <Email Type="02">jmiller@yahoo.com.au</Email> </EmailList> </PrincipalInfo> <FurtherInformation> <ContactName Type="LGL"> <Title>Mr</Title> <FamilyName>Knudson</FamilyName> <GivenName>Raymond</GivenName> <FullName>Mr Raymond Knudson</FullName> </ContactName> <PhoneNumberList> <PhoneNumber Type="0096"> <Number>03 9637-2200</Number> <Extension>72348</Extension> <ListedStatus>Y</ListedStatus> </PhoneNumber> <PhoneNumber Type="0888"> <Number>0416 123 785</Number> <ListedStatus>N</ListedStatus> </PhoneNumber> </PhoneNumberList> <EmailList> <Email Type="01">rknudson@lsc.vic.edu.au</Email> <Email Type="02">rknudson@hotmail.com</Email> </EmailList> </FurtherInformation> <EnrollmentDate>2005-01-31</EnrollmentDate> <DepartureDate>2008-12-18</DepartureDate> <YearLevel> <Code>7</Code> </YearLevel> <ReasonForLeaving>Family re-location</ReasonForLeaving> <PreviousSchoolsList> <PreviousSchool> <SchoolName>Lincoln Primary School</SchoolName> <ReasonLeft>Graduated</ReasonLeft> </PreviousSchool> </PreviousSchoolsList> <AttendanceConcerns>N</AttendanceConcerns> <HealthNeeds>N</HealthNeeds> <AreasOfInterestList> <ActivityInfo> <StudentActivityInfoRefId>6472B2610947583A463DBB345291B001</StudentActivityInfoRefId> <StudentActivityDescription>Athletics</StudentActivityDescription> </ActivityInfo> </AreasOfInterestList> <NegotiatedCurriculumPlan>N</NegotiatedCurriculumPlan> <AdjustedEducationProgram>N</AdjustedEducationProgram> <CareerGuidanceFileHeld>N</CareerGuidanceFileHeld> <SchoolCounsellorFileHeld>N</SchoolCounsellorFileHeld> <OtherLearningSupport>ESL Support Given</OtherLearningSupport> <AcceleratedProgram>N</AcceleratedProgram> <YoungCarersRole>N</YoungCarersRole> <Literacy>Below</Literacy> <Numeracy>At</Numeracy> <OtherLearningAreasList> <OtherLearningArea> <Description>Language</Description> <Result>At</Result> </OtherLearningArea> </OtherLearningAreasList> <LatestStudentReportAvailable>Y</LatestStudentReportAvailable> <PastoralCare> <DisciplinaryAbsences>N</DisciplinaryAbsences> <IndividualBehaviourPlan>N</IndividualBehaviourPlan> </PastoralCare> </StudentSDTN>
Example 6.3.26-1: StudentSDTN

6.3.27 StudentSnapshot

This object provides a snapshot of a student's record on a given day. All information reported in the object is reported as it appeared in the responding system on the date specified in SnapDate. It can be used for synching data across applications, for periodically loading a data warehouse, or for vertical reporting of data to a requesting authority, such as a state department of education.

SIF_Events are not reported for this object.

StudentSnapshot
Figure 6.3.27-1: StudentSnapshot StudentSnapshot SnapDate StudentPersonalRefId SchoolYear Name LocalId StateProvinceId Sex BirthDate Age ProjectedGraduationYear OnTimeGraduationYear StudentSubjectChoiceList StudentSubjectChoice PreferenceNumber SubjectLocalId StudyDescription OtherSchoolLocalId HomeEnrollment StudentSchoolEnrollmentRefId SchoolName SchoolInfoRefId LocalId SchoolNo YearLevel Homeroom SIF_RefObject HomeroomNumber SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 StudentSnapshot 

This object provides a snapshot of a student's record on a given day. All information reported in the object is reported as it appeared in the responding system on the date specified in SnapDate. It can be used for synching data across applications, for periodically loading a data warehouse, or for vertical reporting of data to a requesting authority, such as a state department of education.

 
 
@
key
SnapDateM

The date the data snapshot was taken. Some elements are provided/calculated as of the SnapDate, and some are provided as of the date the object is requested (i.e., some can be historical and some will represent the last information available/last known value). In a SIS the following elements are provided/calculated as of the SnapDate: Age, HomeEnrollment and all its child elements. Other applications (e.g., data warehouses) may be able to provide values for other elements on various snap dates.

 
xs:date
@
key
StudentPersonalRefIdM

The ID (GUID) of the student to whom this information relates.

 
IdRefType
 SchoolYearM

School year in which the SnapDate falls, and for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g. 2007).

 
SchoolYear
 NameM

The name of the student.

 
Name
 LocalIdM

The locally-defined identifier for this student.

 
LocalId
 StateProvinceIdO

The state-assigned identifier for this student.

 
StateProvinceId
 SexO

'Sex' is the distinction 'male' and 'female', as reported by the person.

 
AUCodeSetsSexCodeType
 BirthDateO

The person's date of birth.

 
BirthDate
 AgeO

The age (in years) of the student on the date in SnapDate.

 
xs:unsignedInt
 ProjectedGraduationYearO

Currently projected graduation year.

 
ProjectedGraduationYear
 OnTimeGraduationYearO

First projected graduation year, usually determined when student is accepted into ninth grade.

 
OnTimeGraduationYear
 StudentSubjectChoiceListO

List of Student Subject Choices where available.

 
List
 StudentSubjectChoiceList/
     StudentSubjectChoice
MR

Subjects Students Choose

 
 
 StudentSubjectChoiceList/
     StudentSubjectChoice/PreferenceNumber
     
O

Subject Priority

 
xs:unsignedInt
 StudentSubjectChoiceList/
     StudentSubjectChoice/SubjectLocalId
     
M

Local Subject Id

 
LocalId
 StudentSubjectChoiceList/
     StudentSubjectChoice/StudyDescription
     
O

Description about Study Mode.

 
SubjectArea
 StudentSubjectChoiceList/
     StudentSubjectChoice/OtherSchoolLocalId
     
O

Localid of a school where the student studies this subject if not at the home school.

 
LocalId
 HomeEnrollmentM

Enrollment-related information for the school that is responsible for reporting the student's membership/child accounting information. This is most likely the primary enrollment site for the student.

 
 
 HomeEnrollment/StudentSchoolEnrollmentRefId
     
O

The ID (GUID) of the StudentSchoolEnrollment object from which the enrollment information is derived.

 
IdRefType
 HomeEnrollment/SchoolName
     
O

Name of the school.

 
xs:normalizedString
 HomeEnrollment/SchoolInfoRefId
     
C

The ID (GUID) of the school. Provide both the HomeEnrollment/SchoolInfoRefId and HomeEnrollment/LocalId elements if possible. If not, one or the other must be provided.

 
IdRefType
 HomeEnrollment/LocalIdC

The locally-defined identifier for this school. Provide both the HomeEnrollment/LocalId and HomeEnrollment/SchoolId elements if possible. If not, one or the other must be provided.

 
LocalId
 HomeEnrollment/SchoolNoO

The state or province defined identifier for this school.

 
LocalId
 HomeEnrollment/YearLevelO

Year or academic level of student.

 
YearLevel
 HomeEnrollment/HomeroomOHomeGroup this student belongs to IdRefType
@SIF_RefObjectM

The name of the SIF object referenced.

 
values:
RoomInfo
 HomeEnrollment/HomeroomNumber
     
O

The locally-defined identifier of that room

 
HomeroomNumber
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.27-1: StudentSnapshot
<StudentSnapshot SnapDate="2003-10-01" StudentPersonalRefId="A15484ED564995254A4568EFFC5100BD"> <SchoolYear>2004</SchoolYear> <Name Type="LGL"> <FamilyName>Woodall</FamilyName> <GivenName>Charles</GivenName> <MiddleName>William</MiddleName> </Name> <LocalId>1089543</LocalId> <StateProvinceId>A50321</StateProvinceId> <Sex>1</Sex> <BirthDate>1988-03-02</BirthDate> <Age>15</Age> <ProjectedGraduationYear>2007</ProjectedGraduationYear> <OnTimeGraduationYear>2006</OnTimeGraduationYear> <HomeEnrollment> <StudentSchoolEnrollmentRefId>0847987235489729AAA73011BB365EC3</StudentSchoolEnrollmentRefId> <SchoolName>Academy HS</SchoolName> <SchoolInfoRefId>834787627836AC74B05EE3066ABC9231</SchoolInfoRefId> <LocalId>ACAD</LocalId> <YearLevel> <Code>9</Code> </YearLevel> <Homeroom SIF_RefObject="RoomInfo">9475683579BA648E0548DDA8365700F4</Homeroom> <HomeroomNumber>B024</HomeroomNumber> </HomeEnrollment> </StudentSnapshot>
Example 6.3.27-1: StudentSnapshot

6.3.28 SummaryEnrollmentInfo

A key Australian business requirement is the ability to publish a complete student status update on demand. This status may include multiple school enrolments.

This object supports the publishing of a consolidated student update containing all school enrollments and the student’s classes at each school.

SIF_Events are reported for this object.

SummaryEnrollmentInfo
Figure 6.3.28-1: SummaryEnrollmentInfo SummaryEnrollmentInfo RefId SchoolYear ParentObjectRefId SIF_RefObject LocalId StateProvinceId PersonInfo SchoolEnrollmentList SchoolEnrollment SchoolName SchoolInfoRefId SchoolLocalId SchoolStateProvinceId Student StudentSchoolEnrollmentRefId StudentLocalId Staff StaffAssignmentRefId StaffLocalId EnrollmentList Enrollment TeachingGroupRefId SchoolCourseInfoRefId TimeTableSubjectRefId LocalId ShortName SchoolYear SubjectLocalId CourseLocalId SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 SummaryEnrollmentInfo 

A key Australian business requirement is the ability to publish a complete student status update on demand. This status may include multiple school enrolments.

This object supports the publishing of a consolidated student update containing all school enrollments and the student’s classes at each school.

 
 
@
key
RefIdM

The ID (GUID) that uniquely identifies the enrollment.

 
RefIdType
 SchoolYearM

School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2009").

 
SchoolYear
 ParentObjectRefIdM

The GUID of the related parent object

 
RefIdType
@SIF_RefObjectM

 

values:
StudentPersonal
StaffPersonal
 LocalIdM

The locally-defined identifier for this student/teacher.

 
LocalId
 StateProvinceIdO

The state-assigned identifier for this student/teacher.

 
StateProvinceId
 PersonInfoM

Personal Information.

 
PersonInfo
 SchoolEnrollmentListM

List of school enrollments for a Student or assignments for a Staff member. There must be at least one.

 
List
 SchoolEnrollmentList/SchoolEnrollment
     
MR

School information for the Student enrollment or Staff assignment. There must be at least one.

 
 
 SchoolEnrollmentList/SchoolEnrollment/
     SchoolName
M

Name of school/campus.

 
xs:normalizedString
 SchoolEnrollmentList/SchoolEnrollment/
     SchoolInfoRefId
C

The ID (GUID) of the school. Provide both the SchoolInfo RefId and LocalId elements if possible. If not, one or the other must be provided.

 
RefIdType
 SchoolEnrollmentList/SchoolEnrollment/
     SchoolLocalId
C

The locally-defined identifier for this school. Provide both the LocalId and SchoolId elements if possible. If not, one or the other must be provided.

 
LocalId
 SchoolEnrollmentList/SchoolEnrollment/
     SchoolStateProvinceId
O

The state or province defined identifier for this school.

 
StateProvinceId
 SchoolEnrollmentList/SchoolEnrollment/
     Student
C

Either the Staff or Student must be provided.

 
 
 SchoolEnrollmentList/SchoolEnrollment/
     Student/StudentSchoolEnrollmentRefId
     
M

The ID (GUID) of the StudentSchoolEnrollment object from which the enrollment information is derived.

 
RefIdType
 SchoolEnrollmentList/SchoolEnrollment/
     Student/StudentLocalId
O

The locally-defined identifier for this Student.

 
LocalId
 SchoolEnrollmentList/SchoolEnrollment/
     Staff
C

Either the Staff or Student must be provided.

 
 
 SchoolEnrollmentList/SchoolEnrollment/
     Staff/StaffAssignmentRefId
     
M

The ID (GUID) of the StaffAssignment object from which the enrollment information is derived.

 
RefIdType
 SchoolEnrollmentList/SchoolEnrollment/
     Staff/StaffLocalId
O

The locally-defined identifier for this Staff.

 
LocalId
 SchoolEnrollmentList/SchoolEnrollment/
     EnrollmentList
O

A List of enrolments. Note these are enrolments at a class level rather than at a school level.

 
List
 SchoolEnrollmentList/SchoolEnrollment/
     EnrollmentList/Enrollment
     
MR

Enrollment at the class level.

 
 
 SchoolEnrollmentList/SchoolEnrollment/
     EnrollmentList/Enrollment/
     TeachingGroupRefId
O

GUID that identifies this Class as a Teaching Group.

 
IdRefType
 SchoolEnrollmentList/SchoolEnrollment/
     EnrollmentList/Enrollment/
     SchoolCourseInfoRefId
O

GUID that identifies this Course for this class.

 
IdRefType
 SchoolEnrollmentList/SchoolEnrollment/
     EnrollmentList/Enrollment/
     TimeTableSubjectRefId
O

GUID that identifies this Subject/Offering for this class.

 
IdRefType
 SchoolEnrollmentList/SchoolEnrollment/
     EnrollmentList/Enrollment/
     LocalId
M

Local Class ID for this enrolment. Should be the same as the LocalId in the TeachingGroup

 
LocalId
 SchoolEnrollmentList/SchoolEnrollment/
     EnrollmentList/Enrollment/
     ShortName
O

Short free format label that describes the class. Should be the same as the ShortName in the TeachingGroup

 
xs:normalizedString
 SchoolEnrollmentList/SchoolEnrollment/
     EnrollmentList/Enrollment/
     SchoolYear
O

School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2009").

 
SchoolYear
 SchoolEnrollmentList/SchoolEnrollment/
     EnrollmentList/Enrollment/
     SubjectLocalId
O

The local subject/offering code for this class.

 
LocalId
 SchoolEnrollmentList/SchoolEnrollment/
     EnrollmentList/Enrollment/
     CourseLocalId
O

The local course code for this class.

 
LocalId
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.28-1: SummaryEnrollmentInfo
<SummaryEnrollmentInfo RefId="9ECC96830E02406F926C1C4D3542D122"> <SchoolYear>2009</SchoolYear> <ParentObjectRefId SIF_RefObject="StudentPersonal">646C5D4AC8294886A02B971695C7BC06</ParentObjectRefId> <LocalId>01011234</LocalId> <StateProvinceId>012456M</StateProvinceId> <PersonInfo> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Fred</GivenName> <FullName>Fred Smith</FullName> </Name> <OtherNames> <Name Type="PRF"> <FamilyName>Smith</FamilyName> <GivenName>Sam</GivenName> <FullName>Sam Smith</FullName> </Name> </OtherNames> <Demographics> <Sex>1</Sex> <BirthDate>1995-09-26</BirthDate> <AustralianCitizenshipStatus>1</AustralianCitizenshipStatus> </Demographics> </PersonInfo> <SchoolEnrollmentList> <SchoolEnrollment> <SchoolName>Lilyput High School</SchoolName> <SchoolInfoRefId>9ECC96830E02406F926C1C4D3542D124</SchoolInfoRefId> <SchoolLocalId>012359</SchoolLocalId> <Student> <StudentSchoolEnrollmentRefId>99F3CC9B5CCE49EEBDEBA82CE52AC4FB</StudentSchoolEnrollmentRefId> <StudentLocalId>SMI00123</StudentLocalId> </Student> <EnrollmentList> <Enrollment> <TeachingGroupRefId>B1A081420BBB486590ABC919447C4379</TeachingGroupRefId> <LocalId>YR10 Commerce</LocalId> </Enrollment> <Enrollment> <TeachingGroupRefId>7B5542C664D94DB4B3386B3B4A8EACF3</TeachingGroupRefId> <LocalId>YR10 Core</LocalId> <SchoolYear>2009</SchoolYear> </Enrollment> </EnrollmentList> </SchoolEnrollment> <SchoolEnrollment> <SchoolName>Lily Language School</SchoolName> <SchoolInfoRefId>9DCC94830E02406F926C1C4D3542D124</SchoolInfoRefId> <SchoolLocalId>012345</SchoolLocalId> <Student> <StudentSchoolEnrollmentRefId>CC0ACB4FAD6E485FBAC07EAD8BE5E38F</StudentSchoolEnrollmentRefId> <StudentLocalId>SMI00456</StudentLocalId> </Student> <EnrollmentList> <Enrollment> <TeachingGroupRefId>74557C466A524E8D9085EB215B80865D</TeachingGroupRefId> <LocalId>YR10 French</LocalId> </Enrollment> </EnrollmentList> </SchoolEnrollment> </SchoolEnrollmentList> </SummaryEnrollmentInfo>
Example 6.3.28-1: SummaryEnrollmentInfo

6.3.29 TeachingGroup

This object identifies a particular Teaching Group or class in a particular a time table.

The proposed object is based on the UK B1: TeachingGroup object. For the Australian object, a subject being taught at any one year level can have more than one �teaching group� in any one time table. Also a teaching group can be brought together for more than one subject.

All local ids in non-authoritative objects are optional. It is therefore up to the provider and the actual agent's design and choreography to determine whether or not to use or local ids from parent objects. There are cases in some subscribing systems where it might not possible to add RefId columns and therefore the RefId of related objects cannot be stored. For example a target system that listens to TimeTableSubject events and updates them may not be able to store the associated SchoolCourseInfoRefId with that object. The only way it can link the TimeTableSubject object with the appropriate course might be through its local course id. Having local ids that link the parent objects with the child object can simplify the agent design. Generally it is suggested to use the appropriate RefIds whenever possible and only use local ids if there is no other way to use RefIds.

SIF_Events are reported for this object.

TeachingGroup
Figure 6.3.29-1: TeachingGroup TeachingGroup RefId SchoolYear LocalId ShortName LongName Set Block CurriculumLevel SchoolInfoRefId SchoolLocalId SchoolCourseInfoRefId SchoolCourseLocalId TimeTableSubjectRefId TimeTableSubjectLocalId StudentList TeachingGroupStudent StudentPersonalRefId StudentLocalId Name TeacherList TeachingGroupTeacher StaffPersonalRefId StaffLocalId Name Association MinClassSize MaxClassSize SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 TeachingGroup 

This object identifies a particular Teaching Group or class in a particular a time table.

The proposed object is based on the UK B1: TeachingGroup object. For the Australian object, a subject being taught at any one year level can have more than one �teaching group� in any one time table. Also a teaching group can be brought together for more than one subject.

All local ids in non-authoritative objects are optional. It is therefore up to the provider and the actual agent's design and choreography to determine whether or not to use or local ids from parent objects. There are cases in some subscribing systems where it might not possible to add RefId columns and therefore the RefId of related objects cannot be stored. For example a target system that listens to TimeTableSubject events and updates them may not be able to store the associated SchoolCourseInfoRefId with that object. The only way it can link the TimeTableSubject object with the appropriate course might be through its local course id. Having local ids that link the parent objects with the child object can simplify the agent design. Generally it is suggested to use the appropriate RefIds whenever possible and only use local ids if there is no other way to use RefIds.

 
 
@
key
RefIdM

The GUID of the TeachingGroup

 
RefIdType
 SchoolYearM

School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2007").

 
SchoolYear
 LocalIdM

LocalId of the Teaching Group (previously ClassIndicator).

 
LocalId
 ShortNameM

Short free format label that describes the group.

 
xs:normalizedString
 LongNameO

Longer description of required

 
xs:normalizedString
 SetO

Set Number (UK)

 
xs:normalizedString
 BlockO

Block (UK)

 
xs:normalizedString
 CurriculumLevelO

Assessment Stage eg VELS Level

 
xs:normalizedString
 SchoolInfoRefIdO

GUID of SchoolInfo object this teaching group belongs to.

 
RefIdType
 SchoolLocalIdO

Local School Id.

 
LocalId
 SchoolCourseInfoRefIdO

GUID of SchoolCourseInfo object this teaching group is part of.

 
RefIdType
 SchoolCourseLocalIdO

Local Course Id.

 
LocalId
 TimeTableSubjectRefIdO

GUID of TimeTableSubject object this teaching group belongs to.

 
RefIdType
 TimeTableSubjectLocalIdO

Local subject Id.

 
LocalId
 StudentListO

List of Students in this Teaching Group

 
List
 StudentList/TeachingGroupStudent
     
MR

Students who belong to the TeachingGroup

 
 
 StudentList/TeachingGroupStudent/
     StudentPersonalRefId
O

GUID from the StudentPersonal or StudentSnapshot Object (if known), that identifies the student.

 
IdRefType
 StudentList/TeachingGroupStudent/
     StudentLocalId
M

Local Id of the Student

 
LocalId
 StudentList/TeachingGroupStudent/
     Name
M

Name of student

 
NameOfRecordType
 TeacherListO

A List of teachers associated with the group – may or maynot include the teacher timetabled in the schedule.

 
List
 TeacherList/TeachingGroupTeacher
     
MR

Teacher associated with the Teaching group – may or may not be the teacher timetabled in the schedule

 
 
 TeacherList/TeachingGroupTeacher/
     StaffPersonalRefId
O

GUID from the StaffPersonal Object that identifies the Staff member

 
IdRefType
 TeacherList/TeachingGroupTeacher/
     StaffLocalId
M

LocalId of the Staff member

 
LocalId
 TeacherList/TeachingGroupTeacher/
     Name
M

 

NameOfRecordType
 TeacherList/TeachingGroupTeacher/
     Association
M

Association with the Teaching Group (free format for this release)

 
xs:normalizedString
 MinClassSizeO

Minimum class size.

 
xs:integer
 MaxClassSizeO

Maximum class size

 
xs:integer
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.29-1: TeachingGroup
<TeachingGroup RefId="64A309DA063A2E35B359D75101A8C3D1"> <SchoolYear>2008</SchoolYear> <LocalId>20087ASPN</LocalId> <ShortName>7A SPN</ShortName> <LongName>Year 7A Maths – Space and Numbers</LongName> <Set>4</Set> <Block>6</Block> <CurriculumLevel>VELS Level 5</CurriculumLevel> <StudentList> <TeachingGroupStudent> <StudentPersonalRefId>9897466F200E4BC1B9AED1507DA15CEF</StudentPersonalRefId> <StudentLocalId>SMI001</StudentLocalId> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Peter</GivenName> </Name> </TeachingGroupStudent> <TeachingGroupStudent> <StudentPersonalRefId>7C834EA9EDA12090347F83297E1C290D</StudentPersonalRefId> <StudentLocalId>SMI002</StudentLocalId> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Jennifer</GivenName> </Name> </TeachingGroupStudent> <TeachingGroupStudent> <StudentPersonalRefId>7C834EA9EDA12090347F83297E1C290E</StudentPersonalRefId> <StudentLocalId>SMI003</StudentLocalId> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Terence</GivenName> </Name> </TeachingGroupStudent> </StudentList> <TeacherList> <TeachingGroupTeacher> <StaffPersonalRefId>A8C3A2E35B359D75101D00AA001A0000</StaffPersonalRefId> <StaffLocalId>SMI1</StaffLocalId> <Name Type="LGL"> <FamilyName>Smith</FamilyName> <GivenName>Thomas</GivenName> </Name> <Association>Class Teacher</Association> </TeachingGroupTeacher> <TeachingGroupTeacher> <StaffPersonalRefId>A8CCCCE35B359D75101D00AA001A0000</StaffPersonalRefId> <StaffLocalId>LONG2</StaffLocalId> <Name Type="LGL"> <FamilyName>Long</FamilyName> <GivenName>Tamara</GivenName> </Name> <Association>Integration Aide</Association> </TeachingGroupTeacher> </TeacherList> </TeachingGroup>
Example 6.3.29-1: TeachingGroup

6.3.30 TermInfo

This object provides information about a term; i.e., a reportable period of time.

SIF_Events are reported for this object.

TermInfo
Figure 6.3.30-1: TermInfo TermInfo RefId SchoolInfoRefId SchoolYear StartDate EndDate Description RelativeDuration TermCode Track TermSpan MarkingTerm SchedulingTerm AttendanceTerm SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 TermInfo 

This object provides information about a term; i.e., a reportable period of time.

 
 
@
key
RefIdM

The ID (GUID) that uniquely identifies this TermInfo entity.

 
RefIdType
 SchoolInfoRefIdM

The ID (GUID) that identifies the school where the term is used.

 
IdRefType
 SchoolYearM

School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2009").

 
SchoolYear
 StartDateM

Starting date of the term.

 
xs:date
 EndDateM

Ending date of the term.

 
xs:date
 DescriptionO

Text-based description of the term.

 
xs:normalizedString
 RelativeDurationO

Portion of the school year represented by this term, expressed in decimal form precise to 4 decimal places (e.g., 0.1333).

 
xs:decimal
xs:minInclusive0
xs:maxInclusive1
xs:fractionDigits4
 TermCodeO

Locally-defined code.

 
xs:normalizedString
 TrackO

The name, description, or code of the track that contains this term. This is used when there are multiple tracks within a school. For instance, kindergarten commonly has a different set of terms than other grades within the school.

 
xs:normalizedString
 TermSpanOWhat sort of Session this TermSpan equates to. AUCodeSetsSessionTypeType
 MarkingTermO

Does this TermInfo represent a marking period?

 
AUCodeSetsYesOrNoCategoryType
 SchedulingTermO

Does this TermInfo represent a scheduling term?

 
AUCodeSetsYesOrNoCategoryType
 AttendanceTermO

Does this TermInfo represent an attendance term?

 
AUCodeSetsYesOrNoCategoryType
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.30-1: TermInfo
<TermInfo RefId="7E59D75101A80A70016375DE097A0726"> <SchoolInfoRefId>A2E35B359D75101A8C3D00AA001A0000</SchoolInfoRefId> <SchoolYear>2004</SchoolYear> <StartDate>2003-01-05</StartDate> <EndDate>2004-04-01</EndDate> <Description>Spring Semester 2004</Description> <RelativeDuration>0.1333</RelativeDuration> <TermCode>Sp2004</TermCode> <Track>PreK</Track> <TermSpan>0833</TermSpan> </TermInfo>
Example 6.3.30-1: TermInfo

6.3.31 TimeTable

The purpose of this object is to define a schedule or Time Table structure/skeleton for the school. The Time Table is produced by the Time Tabling software. Once the Time Table is produced, the time tabling software creates the schedule based on business rules and constraints to fit into the time table structure.

The proposed Time Table object is based on a combination of the proposed UK B6 – Timetable Cycle Object and Timetable Scope Object.

The Time Table is identified uniquely in the SIF Zone by its' GUID, School and School Year. A Time Table is linked to a particular school.

All local ids in non-authoritative objects are optional. It is therefore up to the provider and the actual agent's design and choreography to determine whether or not to use or local ids from parent objects. There are cases in some subscribing systems where it might not possible to add RefId columns and therefore the RefId of related objects cannot be stored. For example a target system that listens to TimeTableSubject events and updates them may not be able to store the associated SchoolCourseInfoRefId with that object. The only way it can link the TimeTableSubject object with the appropriate course might be through its local course id. Having local ids that link the parent objects with the child object can simplify the agent design. Generally it is suggested to use the appropriate RefIds whenever possible and only use local ids if there is no other way to use RefIds.

SIF_Events are reported for this object.

TimeTable
Figure 6.3.31-1: TimeTable TimeTable RefId SchoolInfoRefId SchoolYear LocalId Title DaysPerCycle PeriodsPerDay TeachingPeriodsPerDay SchoolLocalId SchoolName TimeTableCreationDate StartDate EndDate TimeTableDayList TimeTableDay DayId DayTitle TimeTablePeriodList TimeTablePeriod PeriodId PeriodTitle SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 TimeTable 

The purpose of this object is to define a schedule or Time Table structure/skeleton for the school. The Time Table is produced by the Time Tabling software. Once the Time Table is produced, the time tabling software creates the schedule based on business rules and constraints to fit into the time table structure.

The proposed Time Table object is based on a combination of the proposed UK B6 – Timetable Cycle Object and Timetable Scope Object.

The Time Table is identified uniquely in the SIF Zone by its' GUID, School and School Year. A Time Table is linked to a particular school.

All local ids in non-authoritative objects are optional. It is therefore up to the provider and the actual agent's design and choreography to determine whether or not to use or local ids from parent objects. There are cases in some subscribing systems where it might not possible to add RefId columns and therefore the RefId of related objects cannot be stored. For example a target system that listens to TimeTableSubject events and updates them may not be able to store the associated SchoolCourseInfoRefId with that object. The only way it can link the TimeTableSubject object with the appropriate course might be through its local course id. Having local ids that link the parent objects with the child object can simplify the agent design. Generally it is suggested to use the appropriate RefIds whenever possible and only use local ids if there is no other way to use RefIds.

 
 
@
key
RefIdM

GUID that identifies this TimeTable object.

 
RefIdType
 SchoolInfoRefIdO

Optional the GUID of the SchoolInfo Object if this object is known in the zone.

 
IdRefType
 SchoolYearM

School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2007").

 
SchoolYear
 LocalIdO

Local TimeTable ID

 
LocalId
 TitleM

Unique Name of the proposed Time Table

 
xs:normalizedString
 DaysPerCycleM

Max Number of days per Time Table cycle

 
xs:unsignedInt
 PeriodsPerDayM

Max Number of periods per Time Table Day

 
xs:unsignedInt
 TeachingPeriodsPerDayO

Teaching periods per day if different to PeriodsPerDay

 
xs:unsignedInt
 SchoolLocalIdO

Optional Local School Id

 
LocalId
 SchoolNameO

The school name in plain text.

 
xs:normalizedString
 TimeTableCreationDateO

Date Schedule was created or last edited.

 
xs:date
 StartDateO

First day of TimeTable.

 
xs:date
 EndDateO

Last day of the TimeTable.

 
xs:date
 TimeTableDayListM

Container for TimeTableDays in Schedule

 
List
 TimeTableDayList/TimeTableDay
     
MR

This element identifies a ‘day’ in a TimeTable.

 
 
 TimeTableDayList/TimeTableDay/
     DayId
M

Local Time Table Identifier

 
LocalId
 TimeTableDayList/TimeTableDay/
     DayTitle
M

 

xs:normalizedString
 TimeTableDayList/TimeTableDay/
     TimeTablePeriodList
M

Title of Day eg. Monday or Day 1

 
List
 TimeTableDayList/TimeTableDay/
     TimeTablePeriodList/TimeTablePeriod
     
MR

Container for TimeTablePeriods in a Time Table Day

 
 
 TimeTableDayList/TimeTableDay/
     TimeTablePeriodList/TimeTablePeriod/
     PeriodId
M

Period in Day Identifier

 
LocalId
 TimeTableDayList/TimeTableDay/
     TimeTablePeriodList/TimeTablePeriod/
     PeriodTitle
M

Title of Period eg. Session 1 or Period 1

 
xs:normalizedString
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.31-1: TimeTable
<TimeTable RefId="64A309DA063A2E35B359D75101A8C3D0"> <SchoolInfoRefId>F2256EE2B67F47D6AB4794D4DEE0D0AD</SchoolInfoRefId> <SchoolYear>2008</SchoolYear> <LocalId>2008S1</LocalId> <Title>2008 Semester 1</Title> <DaysPerCycle>5</DaysPerCycle> <PeriodsPerDay>6</PeriodsPerDay> <TeachingPeriodsPerDay>5</TeachingPeriodsPerDay> <SchoolLocalId>01011234</SchoolLocalId> <SchoolName>Newest Secondary College</SchoolName> <TimeTableCreationDate>2008-02-01</TimeTableCreationDate> <StartDate>2008-01-30</StartDate> <EndDate>2008-06-20</EndDate> <TimeTableDayList> <TimeTableDay> <DayId>1</DayId> <DayTitle>Monday</DayTitle> <TimeTablePeriodList> <TimeTablePeriod> <PeriodId>1</PeriodId> <PeriodTitle>P1</PeriodTitle> </TimeTablePeriod> <TimeTablePeriod> <PeriodId>2</PeriodId> <PeriodTitle>P2</PeriodTitle> </TimeTablePeriod> <TimeTablePeriod> <PeriodId>3</PeriodId> <PeriodTitle>P3</PeriodTitle> </TimeTablePeriod> <TimeTablePeriod> <PeriodId>4</PeriodId> <PeriodTitle>P4</PeriodTitle> </TimeTablePeriod> <TimeTablePeriod> <PeriodId>5</PeriodId> <PeriodTitle>P5</PeriodTitle> </TimeTablePeriod> <TimeTablePeriod> <PeriodId>6</PeriodId> <PeriodTitle>P6</PeriodTitle> </TimeTablePeriod> </TimeTablePeriodList> </TimeTableDay> <TimeTableDay> <DayId>2</DayId> <DayTitle>Tuesday</DayTitle> <TimeTablePeriodList> <TimeTablePeriod> <PeriodId>1</PeriodId> <PeriodTitle>P1</PeriodTitle> </TimeTablePeriod> <TimeTablePeriod> <PeriodId>2</PeriodId> <PeriodTitle>P2</PeriodTitle> </TimeTablePeriod> <TimeTablePeriod> <PeriodId>3</PeriodId> <PeriodTitle>P3</PeriodTitle> </TimeTablePeriod> <TimeTablePeriod> <PeriodId>4</PeriodId> <PeriodTitle>P4</PeriodTitle> </TimeTablePeriod> <TimeTablePeriod> <PeriodId>5</PeriodId> <PeriodTitle>P5</PeriodTitle> </TimeTablePeriod> <TimeTablePeriod> <PeriodId>6</PeriodId> <PeriodTitle>P6</PeriodTitle> </TimeTablePeriod> </TimeTablePeriodList> </TimeTableDay> </TimeTableDayList> </TimeTable>
Example 6.3.31-1: TimeTable

6.3.32 TimeTableCell

The purpose of this object is to identify a specific cell within a particular TimeTable. A time table is a structure that represents all the available days and times (periods) for which a particular teaching group, or subject can be scheduled.

A TimeTableCell is uniquely identified in the ZIF zone by its' GUID.

And the following must be provided at object creation:

All local ids in non-authoritative objects are optional. It is therefore up to the provider and the actual agent's design and choreography to determine whether or not to use or local ids from parent objects. There are cases in some subscribing systems where it might not possible to add RefId columns and therefore the RefId of related objects cannot be stored. For example a target system that listens to TimeTableSubject events and updates them may not be able to store the associated SchoolCourseInfoRefId with that object. The only way it can link the TimeTableSubject object with the appropriate course might be through its local course id. Having local ids that link the parent objects with the child object can simplify the agent design. Generally it is suggested to use the appropriate RefIds whenever possible and only use local ids if there is no other way to use RefIds.

SIF_Events are reported for this object.

TimeTableCell
Figure 6.3.32-1: TimeTableCell TimeTableCell RefId TimeTableRefId TimeTableSubjectRefId TeachingGroupRefId RoomInfoRefId StaffPersonalRefId TimeTableLocalId SubjectLocalId TeachingGroupLocalId RoomNumber StaffLocalId DayId PeriodId CellType SchoolInfoRefId SchoolLocalId SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 TimeTableCell 

The purpose of this object is to identify a specific cell within a particular TimeTable. A time table is a structure that represents all the available days and times (periods) for which a particular teaching group, or subject can be scheduled.

A TimeTableCell is uniquely identified in the ZIF zone by its' GUID.

And the following must be provided at object creation:

  • the timetable it belongs to,
  • the subject that is being scheduled,
  • the teaching group (representing the students, teachers and subject),
  • the room that is allocated,
  • the allocated teacher.

All local ids in non-authoritative objects are optional. It is therefore up to the provider and the actual agent's design and choreography to determine whether or not to use or local ids from parent objects. There are cases in some subscribing systems where it might not possible to add RefId columns and therefore the RefId of related objects cannot be stored. For example a target system that listens to TimeTableSubject events and updates them may not be able to store the associated SchoolCourseInfoRefId with that object. The only way it can link the TimeTableSubject object with the appropriate course might be through its local course id. Having local ids that link the parent objects with the child object can simplify the agent design. Generally it is suggested to use the appropriate RefIds whenever possible and only use local ids if there is no other way to use RefIds.

 
 
@
key
RefIdM

The GUID of the TimeTableCell

 
RefIdType
 TimeTableRefIdM

The GUID of the TimeTable to which this Cell belongs

 
IdRefType
 TimeTableSubjectRefIdM

The GUID of the Subject that this Cell is scheduling

 
IdRefType
 TeachingGroupRefIdM

The GUID of the TeachingGroup being scheduled

 
IdRefType
 RoomInfoRefIdM

The GUID of the Resource being Scheduled

 
IdRefType
 StaffPersonalRefIdM

The GUID of the Staff Member being Scheduled

 
IdRefType
 TimeTableLocalIdO

Time Table Local Identifier

 
LocalId
 SubjectLocalIdO

Subject Local Id

 
LocalId
 TeachingGroupLocalIdO

Teaching Group

 
LocalId
 RoomNumberM

Room number as presented to the user/application.

 
HomeroomNumber
 StaffLocalIdO

Staff LocalId

 
LocalId
 DayIdM

Day Id

 
LocalId
 PeriodIdM

Period Id within the Day Id

 
LocalId
 CellTypeM

Type of Lesson/Session eg Teaching, Lunch etc

 
xs:normalizedString
 SchoolInfoRefIdO

Optional the GUID of the SchoolInfo Object if this object is known in the zone

 
IdRefType
 SchoolLocalIdO

Optional Local School Id

 
LocalId
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.32-1: TimeTableCell
<TimeTableCell RefId="64A309DA063A2E35B359D75101A8C3D1"> <TimeTableRefId>64A309DA063A2E35B359D75101A8C3D0</TimeTableRefId> <TimeTableSubjectRefId>22860091719245B4AB0CF5B9DC19DE5C</TimeTableSubjectRefId> <TeachingGroupRefId>64A309DA063A2E35B359D75101A8C3D1</TeachingGroupRefId> <RoomInfoRefId>D3E34B359D75101A8C3D00AA001A1652</RoomInfoRefId> <StaffPersonalRefId>D3E34F419D75101A8C3D00AA001A1652</StaffPersonalRefId> <TimeTableLocalId>2008S1</TimeTableLocalId> <SubjectLocalId>07AR</SubjectLocalId> <TeachingGroupLocalId>20087ASPN 2008S1</TeachingGroupLocalId> <RoomNumber>101</RoomNumber> <StaffLocalId>946379881</StaffLocalId> <DayId>1</DayId> <PeriodId>1</PeriodId> <CellType>T</CellType> <SchoolInfoRefId>D3E34B359D75101A8C3D00AA001A1652</SchoolInfoRefId> <SchoolLocalId>01011234</SchoolLocalId> </TimeTableCell>
Example 6.3.32-1: TimeTableCell

6.3.33 TimeTableSubject

This purpose of this object is to define and communicate the subject or distinct piece of curriculum that needs to be scheduled by the time table generator. This is a new object proposed to meet SIF-AU needs. Reviews of the existing specifications identified two relevant objects – SchoolCourseInfo, defined in SIF US 2.2 specification and SchoolGroup, defined within the SIF UK 1.1 specification. These objects appear to have some similar context but seem overly complex considering that Australian requirements, which are limited to the Student Administration System or Curriculum Delivery System providing base information to the Time Tabling application about what curriculum offerings are being proposed. When this data is sent in a Request/Response only those subjects that are relevant to be scheduled (or active), should be sent to the TimeTabling application.

All local ids in non-authoritative objects are optional. It is therefore up to the provider and the actual agent's design and choreography to determine whether or not to use or local ids from parent objects. There are cases in some subscribing systems where it might not possible to add RefId columns and therefore the RefId of related objects cannot be stored. For example a target system that listens to TimeTableSubject events and updates them may not be able to store the associated SchoolCourseInfoRefId with that object. The only way it can link the TimeTableSubject object with the appropriate course might be through its local course id. Having local ids that link the parent objects with the child object can simplify the agent design. Generally it is suggested to use the appropriate RefIds whenever possible and only use local ids if there is no other way to use RefIds.

SIF_Events are reported for this object.

TimeTableSubject
Figure 6.3.33-1: TimeTableSubject TimeTableSubject RefId SubjectLocalId AcademicYear AcademicYearRange Start End CourseLocalId SchoolCourseInfoRefId Faculty SubjectShortName SubjectLongName SubjectType ProposedMaxClassSize ProposedMinClassSize SchoolInfoRefId SchoolLocalId Semester SchoolYear OtherCodeList SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 TimeTableSubject 

This purpose of this object is to define and communicate the subject or distinct piece of curriculum that needs to be scheduled by the time table generator. This is a new object proposed to meet SIF-AU needs. Reviews of the existing specifications identified two relevant objects – SchoolCourseInfo, defined in SIF US 2.2 specification and SchoolGroup, defined within the SIF UK 1.1 specification. These objects appear to have some similar context but seem overly complex considering that Australian requirements, which are limited to the Student Administration System or Curriculum Delivery System providing base information to the Time Tabling application about what curriculum offerings are being proposed. When this data is sent in a Request/Response only those subjects that are relevant to be scheduled (or active), should be sent to the TimeTabling application.

All local ids in non-authoritative objects are optional. It is therefore up to the provider and the actual agent's design and choreography to determine whether or not to use or local ids from parent objects. There are cases in some subscribing systems where it might not possible to add RefId columns and therefore the RefId of related objects cannot be stored. For example a target system that listens to TimeTableSubject events and updates them may not be able to store the associated SchoolCourseInfoRefId with that object. The only way it can link the TimeTableSubject object with the appropriate course might be through its local course id. Having local ids that link the parent objects with the child object can simplify the agent design. Generally it is suggested to use the appropriate RefIds whenever possible and only use local ids if there is no other way to use RefIds.

 
 
@
key
RefIdM

GUID that identifies this TimeTableSubject.

 
RefIdType
 SubjectLocalIdM

SubjectLocalID - Distinct piece of curriculum that is to be scheduled.

 
LocalId
 AcademicYearC

Subject Year Level. Either AcademicYear or AcademicYearRange must be provided.

 
YearLevel
 AcademicYearRangeC

Range of Academic Years subject spans. Either AcademicYear or AcademicYearRange must be provided.

 
 
 AcademicYearRange/StartM

Lowest year in range.

 
YearLevel
 AcademicYearRange/EndM

Highest year in range

 
YearLevel
 CourseLocalIdO

Local Course Id, if associated with a Course.

 
LocalId
 SchoolCourseInfoRefIdO

The GUID of the SchoolCourseInfo object.

 
RefIdType
 FacultyO

Faculty

 
xs:normalizedString
 SubjectShortNameO

SubjectShortName

 
xs:normalizedString
 SubjectLongNameM

SubjectLongName

 
xs:normalizedString
 SubjectTypeO

Core or Elective or ?

 
xs:normalizedString
 ProposedMaxClassSizeO

Suggested maximum class size for this subject.

 
xs:decimal
 ProposedMinClassSizeO

Suggested minimum class size for this subject.

 
xs:decimal
 SchoolInfoRefIdO

Optional the GUID of the SchoolInfo Object if this object is known in the zone.

 
IdRefType
 SchoolLocalIdO

Optional Local School Id

 
LocalId
 SemesterO

Semester, Term, or Quarter subject offered.

 
xs:unsignedInt
 SchoolYearO

School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2007").

 
SchoolYear
 OtherCodeListOAny other codes this subject is known by; eg VASS code for VCE in Vic. OtherCodeList
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table 6.3.33-1: TimeTableSubject
<TimeTableSubject RefId="D3E34B359D75101A8C3D00AA001A1652"> <SubjectLocalId>07AR</SubjectLocalId> <AcademicYear> <Code>7</Code> </AcademicYear> <SubjectShortName>7 ART</SubjectShortName> <SubjectLongName>Year 7 Art</SubjectLongName> <SubjectType>E</SubjectType> <SchoolYear>2009</SchoolYear> </TimeTableSubject>
Example 6.3.33-1: TimeTableSubject

Appendix A: Common Types

Common and supporting types referenced in this specification are included here as a reference.

A.1 AbstractContentPackageType

An abstract type for derived content package types, elements and objects. This structure may be used verbatim, optionally extending with additional attributes, or may be redefined to include only a subset of child elements and/or to add validation to XML contained in XMLData. Only one instance of XMLData, TextData, BinaryData or Reference can occur in a single instance.

AbstractContentPackageType
Figure A.1-1: AbstractContentPackageType AbstractContentPackageType RefId XMLData Description TextData MIMEType FileName Description BinaryData MIMEType FileName Description Reference MIMEType Description URL SIF_Metadata SIF_ExtendedElements
 Element/@AttributeCharDescriptionType
 AbstractContentPackageType 

An abstract type for derived content package types, elements and objects. This structure may be used verbatim, optionally extending with additional attributes, or may be redefined to include only a subset of child elements and/or to add validation to XML contained in XMLData. Only one instance of XMLData, TextData, BinaryData or Reference can occur in a single instance.

 
 
@
key
RefIdM

The GUID that uniquely identifies an instance of the package.

 
RefIdType
 XMLDataC

Contains an arbitary XML element, encoded in UTF-8.

 
<xs:any processContents="lax" />
@DescriptionO

Contains an optional description of the content or a processing hint with regard to its structure (e.g. named standard, file layout or XSD). Contents may be mandated in instances of this type, or types that follow the AbstractContentPackageType pattern.

 
xs:token
 TextDataC

Contains arbitrary text, encoded in UTF-8.

 
xs:string
@MIMETypeO

Optional MIME type to specifically indicate the text type. Otherwise text/plain can be assumed.

 
xs:token
@FileNameO

Optional file name to indicate the file from which the content originated, or to suggest a name to use when saving the content.

 
xs:token
@DescriptionO

Contains an optional description of the content or a processing hint with regard to its structure (e.g. named standard, file layout or XSD). Contents may be mandated in instances of this type, or types that follow the AbstractContentPackageType pattern.

 
xs:token
 BinaryDataC

Contains the base64Binary encoding of binary or text data not encoded in UTF-8.

 
xs:base64Binary
@MIMETypeM

MIME type to indicate the content type.

 
xs:token
@FileNameO

Optional file name to indicate the file from which the content originated, or to suggest a name to use when saving the content.

 
xs:token
@DescriptionO

Contains an optional description of the content or a processing hint with regard to its structure (e.g. named standard, file layout or XSD). Contents may be mandated in instances of this type, or types that follow the AbstractContentPackageType pattern.

 
xs:token
 ReferenceC

References external content via a URL.

 
 
@MIMETypeM

MIME type to indicate the content type to be expected when retrieving the external content.

 
xs:token
@DescriptionO

Contains an optional description of the content or a processing hint with regard to its structure (e.g. named standard, file layout or XSD). Contents may be mandated in instances of this type, or types that follow the AbstractContentPackageType pattern.

 
xs:token
 Reference/URLM

Location of external content.

 
xs:anyURI
 SIF_MetadataO SIF_Metadata
 SIF_ExtendedElementsO SIF_ExtendedElements
Table A.1-1: AbstractContentPackageType

A.2 BaseNameType

Base type, without attributes, for Name elements, primarily to allow structure to be leveraged with different Type attribute values.

BaseNameType
Figure A.2-1: BaseNameType BaseNameType Title FamilyName GivenName MiddleName FamilyNameFirst PreferredFamilyName PreferredFamilyNameFirst PreferredGivenName Suffix FullName
 Element/@AttributeCharDescriptionType
 BaseNameType 

Base type, without attributes, for Name elements, primarily to allow structure to be leveraged with different Type attribute values.

 
 
 TitleO

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:normalizedString
 FamilyNameC

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 required when known. However, it may not be possible to know the family name in which case you should add the available information to the FullName element.

 
xs:normalizedString
 GivenNameC

Given name of the person. Note that this element is required if known. However, it may not be possible to know the given name in which case you should add the available information to the FullName element.

 
xs:normalizedString
 MiddleNameO

All other given or middle names, each separated with a single space character.

 
xs:normalizedString
 FamilyNameFirstO

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.

 
AUCodeSetsYesOrNoCategoryType
 PreferredFamilyNameO

The family name preferred most by the person (as written).

 
xs:normalizedString
 PreferredFamilyNameFirstO

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.

 
AUCodeSetsYesOrNoCategoryType
 PreferredGivenNameO

The given name preferred most by the person (as written).

 
xs:normalizedString
 SuffixO

Textual suffix like PHD, JP, BSc.

 
xs:normalizedString
 FullNameC

A free text field for the complete name for display purposes. If this is associated with a StudentPersonal,StaffPersonal or StudentContactPersonal record and the FamilyName and GivenName are not both specified, then this becomes mandatory.

 
xs:normalizedString
Table A.2-1: BaseNameType
<Name Type="LGL"> <FamilyName>Wesson</FamilyName> <GivenName>Melanie</GivenName> <MiddleNames>Joan</MiddleNames> <FamilyNameFirst>N</FamilyNameFirst> <PreferredFamilyName>Wesson</PreferredFamilyName> <PreferredFamilyNameFirst>N</PreferredFamilyNameFirst> <PreferredGivenName>Mel</PreferredGivenName> </Name>
Example A.2-1: BaseNameType

A.3 DefinedProtocolsType

The transport protocols defined in SIF.
DefinedProtocolsType
Figure A.3-1: DefinedProtocolsType DefinedProtocolsType
 Element/@AttributeCharDescriptionType
 DefinedProtocolsType The transport protocols defined in SIF. values:
HTTPS
HTTP
Table A.3-1: DefinedProtocolsType

A.4 ExtendedContentType

Allows for any mixed XML in an element.
ExtendedContentType
Figure A.4-1: ExtendedContentType ExtendedContentType
 Element/@AttributeCharDescriptionType
 ExtendedContentType Allows for any mixed XML in an element. 
<xs:complexContent mixed="true"> <xs:restriction base="xs:anyType"> <xs:sequence> <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:restriction> </xs:complexContent>
Table A.4-1: ExtendedContentType

A.5 GUIDType

SIF format for a GUID.
GUIDType
Figure A.5-1: GUIDType GUIDType
 Element/@AttributeCharDescriptionType
 GUIDType SIF format for a GUID. xs:token
xs:pattern[0-9A-F]{32}
Table A.5-1: GUIDType

A.6 IdRefType

A reference to a RefId.
IdRefType
Figure A.6-1: IdRefType IdRefType
 Element/@AttributeCharDescriptionType
 IdRefType A reference to a RefId. RefIdType
Table A.6-1: IdRefType

A.7 MonetaryAmountType

A monetary amount.

MonetaryAmountType
Figure A.7-1: MonetaryAmountType MonetaryAmountType Currency
 Element/@AttributeCharDescriptionType
 MonetaryAmountType 

A monetary amount.

 
xs:decimal
@CurrencyOCurrency code. Where omitted, defaults to implementation-defined local currency, typically USD in the United States. ISO4217CurrencyNamesAndCodeElementsType
Table A.7-1: MonetaryAmountType

A.8 MsgIdType

A message identifier.
MsgIdType
Figure A.8-1: MsgIdType MsgIdType
 Element/@AttributeCharDescriptionType
 MsgIdType A message identifier. GUIDType
Table A.8-1: MsgIdType

A.9 NameOfRecordType

Extends BaseNameType to allow for one Type attribute value, indicating the name is the name of record; serves as the primary name in some SIF objects, including StudentPersonal.

NameOfRecordType
Figure A.9-1: NameOfRecordType NameOfRecordType Type
 Element/@AttributeCharDescriptionType
 NameOfRecordType 

Extends BaseNameType to allow for one Type attribute value, indicating the name is the name of record; serves as the primary name in some SIF objects, including StudentPersonal.

 
BaseNameType
@TypeM

Code that specifies what type of name this is. Note that type “LGL” must be used here.

 
values:
LGL
Name of Record
Table A.9-1: NameOfRecordType

A.10 ObjectNameType

An unenumerated SIF object name.

ObjectNameType
Figure A.10-1: ObjectNameType ObjectNameType
 Element/@AttributeCharDescriptionType
 ObjectNameType 

An unenumerated SIF object name.

 
xs:NCName
xs:maxLength64
Table A.10-1: ObjectNameType

A.11 OtherNameType

Extends BaseNameType to allow for Type attribute values excluding "name of record." Used for other names to be included in addition to the name of record in objects.

OtherNameType
Figure A.11-1: OtherNameType OtherNameType Type
 Element/@AttributeCharDescriptionType
 OtherNameType 

Extends BaseNameType to allow for Type attribute values excluding "name of record." Used for other names to be included in addition to the name of record in objects.

 
BaseNameType
@TypeM

Code that specifies what type of name this is. Note that type “LGL” is NOT to be used here.

 
AUCodeSetsNameUsageTypeType
Table A.11-1: OtherNameType

A.12 PartialDateType

A year, with an optional month/day, or an optional month by itself.

PartialDateType
Figure A.12-1: PartialDateType PartialDateType
 Element/@AttributeCharDescriptionType
 PartialDateType 

A year, with an optional month/day, or an optional month by itself.

 
union of:

xs:date
xs:gYearMonth
xs:gYear
Table A.12-1: PartialDateType

A.13 RefIdType

An object or element identifier.
RefIdType
Figure A.13-1: RefIdType RefIdType
 Element/@AttributeCharDescriptionType
 RefIdType An object or element identifier. GUIDType
Table A.13-1: RefIdType

A.14 ReportDataObjectType

The SIF objects that can be included in SIF_ReportObject/ReportData, plus ReportPackage.
ReportDataObjectType
Figure A.14-1: ReportDataObjectType ReportDataObjectType CalendarDate CalendarSummary Identity LEAInfo PersonPicture ReportAuthorityInfo ReportManifest RoomInfo SchoolCourseInfo SchoolInfo SchoolPrograms SessionInfo SIF_AgentACL SIF_LogEntry SIF_ReportObject SIF_ZoneStatus StaffAssignment StaffPersonal StudentActivityInfo StudentActivityParticipation StudentAttendanceSummary StudentContactPersonal StudentContactRelationship StudentDailyAttendance StudentParticipation StudentPeriodAttendance StudentPersonal StudentSchoolEnrollment StudentSDTN StudentSnapshot SummaryEnrollmentInfo TeachingGroup TermInfo TimeTable TimeTableCell TimeTableSubject ReportPackage
 Element/@AttributeCharDescriptionType
 ReportDataObjectType The SIF objects that can be included in SIF_ReportObject/ReportData, plus ReportPackagechoice of:

CalendarDate
CalendarSummary
Identity
LEAInfo
PersonPicture
ReportAuthorityInfo
ReportManifest
RoomInfo
SchoolCourseInfo
SchoolInfo
SchoolPrograms
SessionInfo
SIF_AgentACL
SIF_LogEntry
SIF_ReportObject
SIF_ZoneStatus
StaffAssignment
StaffPersonal
StudentActivityInfo
StudentActivityParticipation
StudentAttendanceSummary
StudentContactPersonal
StudentContactRelationship
StudentDailyAttendance
StudentParticipation
StudentPeriodAttendance
StudentPersonal
StudentSchoolEnrollment
StudentSDTN
StudentSnapshot
SummaryEnrollmentInfo
TeachingGroup
TermInfo
TimeTable
TimeTableCell
TimeTableSubject
ReportPackage
Table A.14-1: ReportDataObjectType

A.15 ReportPackageType

This package has exactly the same structure as AbstractContentPackageType. ReportPackage can be used in addition to SIF objects specifically in reporting situations within SIF_ReportObject. At this time, it is not a SIF object. It cannot be requested via SIF_Query or SIF_ExtendedQuery in a ReportManifest. It may be included in SIF_ReportObject as part of an external report definition.
ReportPackageType
Figure A.15-1: ReportPackageType ReportPackageType
 Element/@AttributeCharDescriptionType
 ReportPackageType  This package has exactly the same structure as AbstractContentPackageType. ReportPackage can be used in addition to SIF objects specifically in reporting situations within SIF_ReportObject. At this time, it is not a SIF object. It cannot be requested via SIF_Query or SIF_ExtendedQuery in a ReportManifest. It may be included in SIF_ReportObject as part of an external report definition.  AbstractContentPackageType
Table A.15-1: ReportPackageType

A.16 SelectedContentType

Allows an XML fragment selected from an object to be used in an element with XML validation skipped.
SelectedContentType
Figure A.16-1: SelectedContentType SelectedContentType
 Element/@AttributeCharDescriptionType
 SelectedContentType Allows an XML fragment selected from an object to be used in an element with XML validation skipped. 
<xs:complexContent mixed="true"> <xs:restriction base="xs:anyType"> <xs:sequence> <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:restriction> </xs:complexContent>
Table A.16-1: SelectedContentType

A.17 SIF_EventObjectType

The SIF objects that can be included in a SIF_Event message.
SIF_EventObjectType
Figure A.17-1: SIF_EventObjectType SIF_EventObjectType CalendarDate CalendarSummary Identity LEAInfo PersonPicture ReportAuthorityInfo ReportManifest RoomInfo SchoolCourseInfo SchoolInfo SchoolPrograms SessionInfo SIF_AgentACL SIF_LogEntry SIF_ReportObject SIF_ZoneStatus StaffAssignment StaffPersonal StudentActivityInfo StudentActivityParticipation StudentContactPersonal StudentContactRelationship StudentDailyAttendance StudentParticipation StudentPeriodAttendance StudentPersonal StudentSchoolEnrollment StudentSDTN SummaryEnrollmentInfo TeachingGroup TermInfo TimeTable TimeTableCell TimeTableSubject
 Element/@AttributeCharDescriptionType
 SIF_EventObjectType The SIF objects that can be included in a SIF_Event message. choice of:

CalendarDate
CalendarSummary
Identity
LEAInfo
PersonPicture
ReportAuthorityInfo
ReportManifest
RoomInfo
SchoolCourseInfo
SchoolInfo
SchoolPrograms
SessionInfo
SIF_AgentACL
SIF_LogEntry
SIF_ReportObject
SIF_ZoneStatus
StaffAssignment
StaffPersonal
StudentActivityInfo
StudentActivityParticipation
StudentContactPersonal
StudentContactRelationship
StudentDailyAttendance
StudentParticipation
StudentPeriodAttendance
StudentPersonal
StudentSchoolEnrollment
StudentSDTN
SummaryEnrollmentInfo
TeachingGroup
TermInfo
TimeTable
TimeTableCell
TimeTableSubject
Table A.17-1: SIF_EventObjectType

A.18 SIF_ExampleObjectType

The SIF objects that can be included in SIF_Query/SIF_Example.
SIF_ExampleObjectType
Figure A.18-1: SIF_ExampleObjectType SIF_ExampleObjectType
 Element/@AttributeCharDescriptionType
 SIF_ExampleObjectType The SIF objects that can be included in SIF_Query/SIF_ExampleEMPTY
Table A.18-1: SIF_ExampleObjectType

A.19 SIF_LogEntryExtendedContentType

Allows for any mixed XML in an element. XSD content processing is set to skip.
SIF_LogEntryExtendedContentType
Figure A.19-1: SIF_LogEntryExtendedContentType SIF_LogEntryExtendedContentType
 Element/@AttributeCharDescriptionType
 SIF_LogEntryExtendedContentType Allows for any mixed XML in an element. XSD content processing is set to skip. 
<xs:complexContent mixed="true"> <xs:restriction base="xs:anyType"> <xs:sequence> <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:restriction> </xs:complexContent>
Table A.19-1: SIF_LogEntryExtendedContentType

A.20 SIF_ProvideObjectNamesType

The SIF object names that can be specified in a SIF_Provide message.
SIF_ProvideObjectNamesType
Figure A.20-1: SIF_ProvideObjectNamesType SIF_ProvideObjectNamesType
 Element/@AttributeCharDescriptionType
 SIF_ProvideObjectNamesType The SIF object names that can be specified in a SIF_Provide message. values:
CalendarDate
CalendarSummary
Identity
LEAInfo
PersonPicture
ReportAuthorityInfo
ReportManifest
RoomInfo
SchoolCourseInfo
SchoolInfo
SchoolPrograms
SessionInfo
SIF_LogEntry
SIF_ReportObject
StaffAssignment
StaffPersonal
StudentActivityInfo
StudentActivityParticipation
StudentAttendanceSummary
StudentContactPersonal
StudentContactRelationship
StudentDailyAttendance
StudentParticipation
StudentPeriodAttendance
StudentPersonal
StudentSchoolEnrollment
StudentSDTN
StudentSnapshot
SummaryEnrollmentInfo
TeachingGroup
TermInfo
TimeTable
TimeTableCell
TimeTableSubject
Table A.20-1: SIF_ProvideObjectNamesType

A.21 SIF_RequestObjectNamesType

The SIF object names that can be specified in a SIF_Request message, or every SIF object name.
SIF_RequestObjectNamesType
Figure A.21-1: SIF_RequestObjectNamesType SIF_RequestObjectNamesType
 Element/@AttributeCharDescriptionType
 SIF_RequestObjectNamesType The SIF object names that can be specified in a SIF_Request message, or every SIF object name. values:
CalendarDate
CalendarSummary
Identity
LEAInfo
PersonPicture
ReportAuthorityInfo
ReportManifest
RoomInfo
SchoolCourseInfo
SchoolInfo
SchoolPrograms
SessionInfo
SIF_AgentACL
SIF_LogEntry
SIF_ReportObject
SIF_ZoneStatus
StaffAssignment
StaffPersonal
StudentActivityInfo
StudentActivityParticipation
StudentAttendanceSummary
StudentContactPersonal
StudentContactRelationship
StudentDailyAttendance
StudentParticipation
StudentPeriodAttendance
StudentPersonal
StudentSchoolEnrollment
StudentSDTN
StudentSnapshot
SummaryEnrollmentInfo
TeachingGroup
TermInfo
TimeTable
TimeTableCell
TimeTableSubject
Table A.21-1: SIF_RequestObjectNamesType

A.22 SIF_ResponseObjectsType

The SIF objects that can be included, repeated, in a SIF_Response message.
SIF_ResponseObjectsType
Figure A.22-1: SIF_ResponseObjectsType SIF_ResponseObjectsType
 Element/@AttributeCharDescriptionType
 SIF_ResponseObjectsType The SIF objects that can be included, repeated, in a SIF_Response message. 
<xs:choice minOccurs="0"> <xs:sequence> <xs:element ref="sif:CalendarDate" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:CalendarSummary" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:Identity" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:LEAInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:PersonPicture" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:ReportAuthorityInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:ReportManifest" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:RoomInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SchoolCourseInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SchoolInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SchoolPrograms" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SessionInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SIF_AgentACL" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SIF_LogEntry" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SIF_ReportObject" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SIF_ZoneStatus" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StaffAssignment" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StaffPersonal" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentActivityInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentActivityParticipation" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentAttendanceSummary" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentContactPersonal" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentContactRelationship" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentDailyAttendance" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentParticipation" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentPeriodAttendance" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentPersonal" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentSchoolEnrollment" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentSDTN" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:StudentSnapshot" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:SummaryEnrollmentInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:TeachingGroup" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:TermInfo" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:TimeTable" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:TimeTableCell" maxOccurs="unbounded" /> </xs:sequence> <xs:sequence> <xs:element ref="sif:TimeTableSubject" maxOccurs="unbounded" /> </xs:sequence> </xs:choice>
Table A.22-1: SIF_ResponseObjectsType

A.23 SIF_ResponseObjectType

The SIF objects that can be included in a SIF_Response message, or every SIF object.
SIF_ResponseObjectType
Figure A.23-1: SIF_ResponseObjectType SIF_ResponseObjectType CalendarDate CalendarSummary Identity LEAInfo PersonPicture ReportAuthorityInfo ReportManifest RoomInfo SchoolCourseInfo SchoolInfo SchoolPrograms SessionInfo SIF_AgentACL SIF_LogEntry SIF_ReportObject SIF_ZoneStatus StaffAssignment StaffPersonal StudentActivityInfo StudentActivityParticipation StudentAttendanceSummary StudentContactPersonal StudentContactRelationship StudentDailyAttendance StudentParticipation StudentPeriodAttendance StudentPersonal StudentSchoolEnrollment StudentSDTN StudentSnapshot SummaryEnrollmentInfo TeachingGroup TermInfo TimeTable TimeTableCell TimeTableSubject
 Element/@AttributeCharDescriptionType
 SIF_ResponseObjectType The SIF objects that can be included in a SIF_Response message, or every SIF object. choice of:

CalendarDate
CalendarSummary
Identity
LEAInfo
PersonPicture
ReportAuthorityInfo
ReportManifest
RoomInfo
SchoolCourseInfo
SchoolInfo
SchoolPrograms
SessionInfo
SIF_AgentACL
SIF_LogEntry
SIF_ReportObject
SIF_ZoneStatus
StaffAssignment
StaffPersonal
StudentActivityInfo
StudentActivityParticipation
StudentAttendanceSummary
StudentContactPersonal
StudentContactRelationship
StudentDailyAttendance
StudentParticipation
StudentPeriodAttendance
StudentPersonal
StudentSchoolEnrollment
StudentSDTN
StudentSnapshot
SummaryEnrollmentInfo
TeachingGroup
TermInfo
TimeTable
TimeTableCell
TimeTableSubject
Table A.23-1: SIF_ResponseObjectType

A.24 SIF_SubscribeObjectNamesType

The SIF object names that can be specified in a SIF_Subscribe message.
SIF_SubscribeObjectNamesType
Figure A.24-1: SIF_SubscribeObjectNamesType SIF_SubscribeObjectNamesType
 Element/@AttributeCharDescriptionType
 SIF_SubscribeObjectNamesType The SIF object names that can be specified in a SIF_Subscribe message. values:
CalendarDate
CalendarSummary
Identity
LEAInfo
PersonPicture
ReportAuthorityInfo
ReportManifest
RoomInfo
SchoolCourseInfo
SchoolInfo
SchoolPrograms
SessionInfo
SIF_AgentACL
SIF_LogEntry
SIF_ReportObject
SIF_ZoneStatus
StaffAssignment
StaffPersonal
StudentActivityInfo
StudentActivityParticipation
StudentContactPersonal
StudentContactRelationship
StudentDailyAttendance
StudentParticipation
StudentPeriodAttendance
StudentPersonal
StudentSchoolEnrollment
StudentSDTN
SummaryEnrollmentInfo
TeachingGroup
TermInfo
TimeTable
TimeTableCell
TimeTableSubject
Table A.24-1: SIF_SubscribeObjectNamesType

A.25 URIOrBinaryType

Allows for a URL or a Base-64 encoding.
URIOrBinaryType
Figure A.25-1: URIOrBinaryType URIOrBinaryType
 Element/@AttributeCharDescriptionType
 URIOrBinaryType Allows for a URL or a Base-64 encoding. union of:

xs:anyURI
xs:base64Binary
Table A.25-1: URIOrBinaryType

A.26 VersionType

A SIF version number.
VersionType
Figure A.26-1: VersionType VersionType
 Element/@AttributeCharDescriptionType
 VersionType A SIF version number. xs:token
xs:pattern[0-9]+[.][0-9]+(r[0-9]+)?
xs:maxLength12
Table A.26-1: VersionType

A.27 VersionWithWildcardsType

A SIF version number, with wildcards for matching multiple versions.
VersionWithWildcardsType
Figure A.27-1: VersionWithWildcardsType VersionWithWildcardsType
 Element/@AttributeCharDescriptionType
 VersionWithWildcardsType A SIF version number, with wildcards for matching multiple versions. xs:token
xs:pattern\*|([0-9]+[.]\*)|([0-9]+[.][0-9]+r\*)|([0-9]+[.][0-9]+(r[0-9]+)?)
xs:maxLength12
Table A.27-1: VersionWithWildcardsType

Appendix B: Code Sets

Select shared and named code sets defined in SIF are included here for reference.

AU Code Sets

Activity Involvement Code

1010Exercise, n.f.d.
1011Exercise biking
1012Fitness centre activities
1013Gymnasium workouts
1014Aerobics/exercising (other)
1015Circuits
1020Air sports, n.f.d.
1021Aerobatics
1022Ballooning
1023Gliding
1024Gyroplane flying
1025Hang gliding
1026Ultralight flying
1027Air sport ( other )
1031Aquarobics
1041Archery
1051Athletics, track & field
1061Australian rules football
1071Badminton
1081Baseball
1091Basketball (indoor & outdoor)
1101Beach volleyball
1110Cue Sports, n.f.d.
1111Billiards
1112Pool
1113Snooker
1121Bocce
1122Boules
1123Petanque
1131Boxing
1141Bush walking
1151Canoeing
1152Kayaking
1161Carpet bowls
1171Cricket (Indoor)
1181Cricket (Outdoor)
1191Croquet
1201Cross country running
1210Bike sports, n.f.d.
1211Bike riding
1212Cycling
1213BMXing
1214Mountain biking
1220Dance Sports, n.f.d.
1221Boot scooting
1222Classical Ballet
1223Jazz Ballet
1224Ballroom Dancing
1225Dance team
1229Dancing (other)
1231Darts
1241Dog racing
1250Dog competitions, n.f.d.
1251Dog shows
1252Sheepdog trials
1261Fencing
1271Angling
1272Fishing
1280Throwing, n.f.d.
1281Ultimate frisbee
1282Boomerang throwing
1291Gaelic football
1301Golf
1311Gridiron (USA football )
1321Gymnastics
1322Circus acrobatics
1323Callisthenics
1324Trampolining
1331Handball
1341Harness racing/Trotting
1351Hockey (Indoor)
1352Hockey (Outdoor)
1362Horse racing
1371Horse riding/Equestrian activities
1372Polo
1373Polo cross
1374Show jumping
1380Ice/Snow Sports, n.f.d.
1381Ice hockey
1383Ice/Snow sport (other)
1384Snow skiing
1385Snow boarding
1391Korfball
1392Ice skating
1401Lacrosse
1402Softcrosse
1411Lawn bowls
1421Marching
1430Martial arts, n.f.d.
1431Chi Kung
1432Judo/Jujitsu
1433Karate
1434Kickboxing
1435Taekwondo
1436Tai Chi
1439Martial arts (other)
1441Minigolf
1442Putt-putt golf
1450Motor sports, n.f.d.
1451Go-Karting (motor sports)
1452Track motor sport
1459Motor sport (other)
1461Netball (Indoor and outdoor)
1471Orienteering
1472Rogaining
1481Pilates
1490Outdoor rock activities, n.f.d.
1491Abseiling
1492Caving
1493Rock climbing
1501Rodeos
1510Roller sports, n.f.d.
1511Roller-blading
1512Skateboarding
1513Inline hockey
1514Roller sport (other)
1521Rowing
1531Royal Tennis
1541Rugby league (football)
1551Rugby union (football)
1561Jogging
1562Running
1571Sailing
1581Scuba diving
1590Shooting sports, n.f.d.
1591Hunting
1592Paintball shooting
1593Pistol shooting
1594Shooting sport (other)
1595Target shooting
1601Soccer (Indoor)
1612Soccer (Outdoor)
1621Softball
1622Tee ball (T ball)
1631Squash
1632Racquet ball
1641Surf Lifesaving/Royal Lifesaving
1651Surfing
1652Surf sport (other)
1660Indoor water sports, n.f.d.
1661Diving (board)
1662Swimming
1663Synchronized Swimming
1671Table tennis
1681Tennis (Indoor and outdoor)
1691Tenpin bowling
1701Touch football
1711Trail biking (motor sports)
1712Dirt bike riding (motor sports)
1721Triathlons
1731Volleyball (Indoor and outdoor)
1741Walking for exercise
1751Water polo
1760Motorised water sports, n.f.d.
1761Jet skiing
1762Powerboating
1763Water-skiing
1770Non-motorised outdoor water sports, n.f.d.
1771Canoe polo
1772Water volleyball
1773Underwater hockey
1774White water rafting
1781Competition weight-lifting
1791Bodybuilding
1792Weight training (for fitness - other)
1800Board sports, n.f.d.
1801Wind surfing
1802Sailboarding
1811Wood chopping
1821Wrestling
1831Yoga
1840Other sporting activities, n.f.d.
1841Pigeon racing
1842Playing
1843Multidisciplinary events
1844Radio controlled model car/boat/plane racing
1845Cheerleading
1849Other sporting activities
2010Leadership Actvities
2011Team captain
2012Student representative council president
2013Class captain
2014Class officer
2015Student representative council officer
2016School captain
2017Duke of Edinburugh Award
2019Other student leadership
3010Youth Development, n.f.d.
3011Army Cadets
3012Airforce Cadets
3013Other Cadets
3014Boy Scouts
3015Girl Scouts
3019Other youth development group
4011Music - vocal
4012Choir
4019Other vocal ensemble
4021Music - instrumental
4022Concert Band
4023Orchestra
4024Jazz ensemble
4025Chamber ensemble
4029Other instrumental ensemble
4031Music - theory and composition
4039Other Music
4041Theatre/drama
4042Eisteddfod
4043Annual music production
4044Other performing arts
5010Arts activites, n.f.d.
5011Art and graphic design
5012Painting
5013Embroidery
5019Other arts activity
5020Communications, nf.d.
5021Journalism
5022Broadcasting
5023School Year book
5024Literary publications
5025Speech/debate
5029Other communications
6011Book Club
6012Drama club
6013Language club
6014Art club
6019Other Cultural club
6021Technology Students
6022Computer club
6023Science Club
6029Other Technology Club
6031Health Occupations Students
6032Chess club
6039Other club or organization
7011Peer counseling
7012Tutoring
7013Formal/Social/Debutante Ball
7019Other general activity

Activity Type

0750Co-curricular activity
0751Extra-curricular Activity
9999Other

Address Role

012ATerm Address
012BHome Address
012CHome Stay Address
013AOverseas Address
1073Other home address
1074Employer's address
1075Employment address
2382Other organisation address
9999Other Address

Address Type

0123Mailing address
0123AAlternate Mailing address
0124Shipping address
0124AAlternate Shipping address
0765Physical location address
0765AAlternate Physical location address
9999Other
9999AAlternate Other address

Attendance Code

0Not Marked
100Present
101Absent - General
111Late arrival at School
112Early departure from School
113Late arrival unexplained
114Early departure unexplained
116Late arrival to Class
117Early leaver from Class
118Late Class Unexplained
119Early Class Unexplained
200Medical
201Illness
202Accident
203Counselling
204Sick Bay
205Medical Appointment
206Hospitalised
207Quarantine
208Refusal
209Dentist
210Medical/Welfare
211Bereavement
300Truancy
400Suspension
401Suspension - External
500Unexplained
600Educational
601Group Activity
602Community Service
603Duty Student
604Excursion
605Special Event
606Camp
607Other Educational Activity
608Off-Site Learning Program (eg. TAFE)
609Work Experience
610School Production
611Sports
612Study Leave
700Flags
701Exit
702Transferred
800Parent Choice
801Parental Arrangement
802Exempt
803Parental Acknowledgement
804Extended Family Holidays
805Religious/Cultural Observance
900School Choice
901Industrial Action
902Facility Damage
903Weather
904Staff Meeting
999Other

Attendance Status

01Excused
02Unexcused
99Unknown
NANot Applicable

Australian Citizenship Status

1Australian Citizen
2New Zealand Citizen
3Permanent Resident
4Temporary Entry Permit
5Other Overseas
8Permanent Humanitarian Visa
XNot Provided

Australian Standard Classification of Cultural and Ethnic Groups (ASCCEG)

ABS 1249.0 - Australian Standard Classification of Cultural and Ethnic Groups (ASCCEG), 2005-06

0000Inadequately described
0001Not stated
0901Eurasian, so described
0902Asian, so described
0903African, so described
0904 European, so described
0905Caucasian, so described
0906Creole, so described
1000Oceanian, n.f.d.
1100 Australian Peoples, n.f.d.
1101Australian
1102Australian Aboriginal
1103Australian South Sea Islander
1104Torres Strait Islander
1200New Zealand Peoples, n.f.d.
1201Maori
1202New Zealander
1300Melanesian and Papuan, n.f.d.
1301New Caledonian
1302Ni-Vanuatu
1303Papua New Guinean
1304Solomon Islander
1399Melanesian and Papuan, n.e.c. (includes Bisorio, Bougainvillian, Huli)
1400Micronesian, n.f.d.
1401I-Kiribati
1402Nauruan
1499Micronesian, n.e.c. (includes Marianas Islander, Marshallese, Palauan)
1500Polynesian, n.f.d.
1501Cook Islander
1502Fijian
1503Niuean
1504Samoan
1505Tongan
1506Hawaiian
1507Tahitian
1508Tokelauan
1511Tuvaluan
1599Polynesian, n.e.c. (includes French Polynesian, Pitcairn Islander, Wallisian)
2000North-West European, n.f.d.
2100British, n.f.d.
2101English
2102Scottish
2103Welsh
2104Channel Islander
2105Manx
2199British, n.e.c. (includes Falkland Islander)
2201Irish
2300Western European, n.f.d.
2301Austrian
2303Dutch
2304Flemish
2305French
2306German
2307Swiss
2311Belgian
2312Frisian
2313Luxembourg
2399Western European, n.e.c. (includes Alsatian, Breton, Walloon)
2400Northern European, n.f.d.
2401Danish
2402Finnish
2403Icelandic
2404Norwegian
2405Swedish
2499Northern European, n.e.c. (includes Faeroese, Greenlandic, Saami)
3000Southern and Eastern European, n.f.d.
3100Southern European, n.f.d.
3101Basque
3102Catalan
3103Italian
3104Maltese
3105Portuguese
3106Spanish
3107Gibraltarian
3199Southern European, n.e.c. (includes Andorran, Galician, Ladin)
3200South Eastern European, n.f.d.
3201Albanian
3202Bosnian
3203Bulgarian
3204Croatian
3205Greek
3206Macedonian
3207Moldovan
3208Montenegrin
3211Romanian
3212Roma/Gypsy
3213Serbian
3214Slovene
3215Cypriot
3216Vlach
3299South Eastern European, n.e.c. (includes Aromani, Karakachani)
3300Eastern European, n.f.d.
3301Belarusan
3302Czech
3303Estonian
3304Hungarian
3305Latvian
3306Lithuanian
3307Polish
3308Russian
3311Slovak
3312Ukrainian
3313Sorb/Wend
3399Eastern European, n.e.c. (includes Adygei, Khanty, Nenets)
4000North African and Middle Eastern, n.f.d.
4100Arab, n.f.d.
4101Algerian
4102Egyptian
4103Iraqi
4104Jordanian
4105Kuwaiti
4106Lebanese
4107Libyan
4108Moroccan
4111Palestinian
4112Saudi Arabian
4113Syrian
4114Tunisian
4115Yemeni
4199Arab, n.e.c. (includes Baggara, Bedouin, Omani)
4201Jewish
4900Other North African and Middle Eastern, n.f.d.
4901Assyrian/Chaldean
4902Berber
4903Coptic
4904Iranian
4905Kurdish
4906Sudanese
4907Turkish
4999Other North African and Middle Eastern, n.e.c. (includes Azande, Madi, Nubian)
5000South-East Asian, n.f.d.
5100Mainland South-East Asian, n.f.d.
5101Anglo-Burmese
5102Burmese
5103Hmong
5104Khmer
5105Lao
5106Thai
5107Vietnamese
5108Karen
5111Mon
5199Mainland South-East Asian, n.e.c. (includes Arakanese, Chin, Shan)
5200Maritime South-East Asian, n.f.d.
5201Filipino
5202Indonesian
5203Javanese
5204Madurese
5205Malay
5206Sundanese
5207Timorese
5208Acehnese
5211Balinese
5212Bruneian
5213Kadazan
5214Singaporean
5215Temoq
5299Maritime South-East Asian, n.e.c. (includes Iban, Irian Jayan, Sumatran)
6000North-East Asian, n.f.d.
6100Chinese Asian, n.f.d.
6101Chinese
6102Taiwanese
6199Chinese Asian, n.e.c. (includes Hui, Manchu, Yi)
6900Other North-East Asian, n.f.d.
6901Japanese
6902Korean
6903Mongolian
6904Tibetan
6999Other North-East Asian, n.e.c. (includes Ainu, Menba, Xiareba)
7000Southern and Central Asian, n.f.d.
7100Southern Asian, n.f.d.
7101Anglo-Indian
7102Bengali
7103Burgher
7104Gujarati
7106Indian
7107Malayali
7111Nepalese
7112Pakistani
7113Punjabi
7114Sikh
7115Sinhalese
7116Tamil
7117Maldivian
7199Southern Asian, n.e.c. (includes Gurkha, Kashmiri, Marathi)
7200Central Asian, n.f.d.
7201Afghan
7202Armenian
7203Georgian
7204Kazakh
7205Pathan
7206Uzbek
7207Azeri
7208Hazara
7211Tajik
7212Tatar
7213Turkmen
7214Uighur
7299Central Asian, n.e.c. (includes Chechen, Circassian, Ingush)
8000People of the Americas, n.f.d.
8100North American, n.f.d.
8101African American
8102American
8103Canadian
8104French Canadian
8105Hispanic (North American)
8106Native North American Indian
8107Bermudan
8199North American, n.e.c. (includes Aleut, Inuit, Metis)
8200South American, n.f.d.
8201Argentinian
8202Bolivian
8203Brazilian
8204Chilean
8205Colombian
8206Ecuadorian
8207Guyanese
8208Peruvian
8211Uruguayan
8212Venezuelan
8213Paraguayan
8299South American, n.e.c. (includes Arawak, Carib, Surinamese)
8300Central American, n.f.d.
8301Mexican
8302Nicaraguan
8303Salvadoran
8304Costa Rican
8305Guatemalan
8306Mayan
8399Central American, n.e.c. (includes Belizean, Honduran, Panamanian)
8400Caribbean Islander, n.f.d.
8401Cuban
8402Jamaican
8403Trinidadian (Tobagonian)
8404Barbadian
8405Puerto Rican
8499Caribbean Islander, n.e.c. (includes Bahamian, Grenadian, Haitian)
9000Sub-Saharan African, n.f.d.
9100Central and West African, n.f.d.
9101Akan
9103Ghanaian
9104Nigerian
9105Yoruba
9106Ivorean
9107Liberian
9108Sierra Leonean
9199Central and West African, n.e.c. (includes Fang, Fulani, Kongo)
9200Southern and East African, n.f.d.
9201Afrikaner
9202Angolan
9203Eritrean
9204Ethiopian
9205Kenyan
9206Malawian
9207Mauritian
9208Mozambican
9212Oromo
9213Seychellois
9214Somali
9215South African
9216Tanzanian
9217Ugandan
9218Zambian
9221Zimbabwean
9222Amhara
9223Batswana
9224Dinka
9225Hutu
9226Masai
9227Nuer
9228Tigrayan
9231Tigre
9232Zulu
9299Southern and East African, n.e.c. (includes Afar, Namibian, Tutsi)

Australian Standard Classification of Languages (ASCL)

ABS 1267.0 - Australian Standard Classification of Languages (ASCL), 2005-06

0000Inadequately Described
0Not Stated
0001Non Verbal, so described
0002Not Stated
0003Swiss, so described
0004Cypriot, so described
0005Creole, nfd
0006French Creole, nfd
0007Spanish Creole, nfd
0008Portuguese Creole, nfd
0009Pidgin, nfd
1000Northern European Languages, nfd
1100Celtic, nfd
1101Gaelic (Scotland)
1102Irish
1103Welsh
1199Celtic, nec
1201English
1300German and Related Languages, nfd
1301German
1302Letzeburgish
1303Yiddish
1400Dutch and Related Languages, nfd
1401Dutch
1402Frisian
1403Afrikaans
1500Scandinavian, nfd
1501Danish
1502Icelandic
1503Norwegian
1504Swedish
1599Scandinavian, nec
1600Finnish and Related Languages, nfd
1601Estonian
1602Finnish
1699Finnish and Related Languages, nec
2000Southern European Languages, nfd
2101French
2201Greek
2300Iberian Romance, nfd
2301Catalan
2302Portuguese
2303Spanish
2399Iberian Romance, nec
2401Italian
2501Maltese
2900Other Southern European Languages, nfd
2901Basque
2902Latin
2999Other Southern European Languages, nec
3000Eastern European Languages, nfd
3100Baltic, nfd
3101Latvian
3102Lithuanian
3301Hungarian
3400East Slavic, nfd
3401Belorussian
3402Russian
3403Ukrainian
3500South Slavic, nfd
3501Bosnian
3502Bulgarian
3503Croatian
3504Macedonian
3505Serbian
3506Slovene
3507Serbo-Croatian/Yugoslavian, so described
3600West Slavic, nfd
3601Czech
3602Polish
3603Slovak
3900Other Eastern European Languages, nfd
3901Albanian
3903Aromunian (Macedo-Romanian)
3904Romanian
3905Romany
3999Other Eastern European Languages, nec
4000Southwest and Central Asian Languages, nfd
4100Iranic, nfd
4101Kurdish
4102Pashto
4104Balochi
4105Dari
4106Persian (excluding Dari)
4199Iranic, nec
4200Middle Eastern Semitic Languages, nfd
4202Arabic
4203Assyrian
4204Hebrew
4299Middle Eastern Semitic Languages, nec
4300Turkic, nfd
4301Turkish
4302Azeri
4303Tatar
4304Turkmen
4305Uygur
4306Uzbek
4399Turkic, nec
4900Other Southwest and Central Asian Languages, nfd
4901Armenian
4902Georgian
4999Other Southwest and Central Asian Languages, nec
5000Southern Asian Languages, nfd
5100Dravidian, nfd
5101Kannada
5102Malayalam
5103Tamil
5104Telugu
5105Tulu
5199Dravidian, nec
5200Indo-Aryan, nfd
5201Bengali
5202Gujarati
5203Hindi
5204Konkani
5205Marathi
5206Nepali
5207Punjabi
5208Sindhi
5211Sinhalese
5212Urdu
5213Assamese
5214Dhivehi
5215Kashmiri
5216Oriya
5299Indo-Aryan, nec
5999Other Southern Asian Languages
6000Southeast Asian Languages, nfd
6100Burmese and Related Languages, nfd
6101Burmese
6102Haka
6103Karen
6199Burmese and Related Languages, nec
6200Hmong-Mien, nfd
6201Hmong
6299Hmong-Mien, nec
6300Mon-Khmer, nfd
6301Khmer
6302Vietnamese
6303Mon
6399Mon-Khmer, nec
6400Tai, nfd
6401Lao
6402Thai
6499Tai, nec
6500Southeast Asian Austronesian Languages, nfd
6501Bisaya
6502Cebuano
6503IIokano
6504Indonesian
6505Malay
6507Tetum
6508Timorese
6511Tagalog
6512Filipino
6513Acehnese
6514Balinese
6515Bikol
6516Iban
6517Ilonggo (Hiligaynon)
6518Javanese
6521Pampangan
6599Southeast Asian Austronesian Languages, nec
6999Other Southeast Asian Languages
7000Eastern Asian Languages, nfd
7100Chinese, nfd
7101Cantonese
7102Hakka
7103Hokkien
7104Mandarin
7105Teochew
7106Wu
7199Chinese, nec
7201Japanese
7301Korean
7900Other Eastern Asian Languages, nfd
7901Tibetan
7902Mongolian
7999Other Eastern Asian Languages, nec
8000Australian Indigenous Languages, nfd
8100Arnhem Land and Daly River Region Languages, nfd
8101Anindilyakwa
8102Burarra
8108Kunwinjku
8111Maung
8113Ngan'gikurunggurr
8114Nunggubuyu
8115Rembarrnga
8117Tiwi
8121Alawa
8122Dalabon
8123Gudanji
8124Gundjeihmi
8125Gun-nartpa
8126Gurr-goni
8127Iwaidja
8128Jaminjung
8131Jawoyn
8132Jingulu
8133Kunbarlang
8134Kune
8135Kuninjku
8136Larrakiya
8137Malak Malak
8138Mangarrayi
8141Maringarr
8142Marra
8143Marrithiyel
8144Matngala
8145Mayali
8146Murrinh Patha
8147Na-kara
8148Ndjébbana (Gunavidji)
8151Ngalakgan
8152Ngaliwurru
8153Nungali
8154Wambaya
8155Wardaman
8199Arnhem Land and Daly River Region Languages, nec
8200Yongu Matha, nfd
8210Dhangu, nfd
8211Galpu
8212Golumala
8213Wangurri
8219Dhangu, nec
8220Dhay'yi, nfd
8221Dhalwangu
8222Djarrwark
8229Dhay'yi, nec
8230Dhuwal, nfd
8231Djambarrpuyngu
8232Djapu
8233Daatiwuy
8234Marrangu
8235Liyagalawumirr
8239Dhuwal, nec
8240Dhuwala, nfd
8241Dhuwaya
8242Gumatj
8243Gupapuyngu
8244Guyamirrilili
8245Madarrpa
8246Manggalili
8247Wubulkarra
8249Dhuwala, nec
8250Djinang, nfd
8251Wurlaki
8259Djinang, nec
8260Djinba, nfd
8261Ganalbingu
8269Djinba, nec
8270 Yakuy, nfd
8271Ritharrngu
8279Yakuy, nec
8281Nhangu
8299Other Yolngu Matha
8300Cape York Peninsula Languages, nfd
8301Kuku Yalanji
8302Guugu Yimidhirr
8303Kuuku-Ya'u
8304Wik Mungkan
8305Djabugay
8306Dyirbal
8307Girramay
8308Koko-Bera
8311Kuuk Thayorre
8312Lamalama
8313Yidiny
8314Wik Ngathan
8399Cape York Peninsula Languages, nec
8400Torres Strait Island Languages, nfd
8401Kalaw Kawaw Ya/Kalaw Lagaw Ya
8402Meriam Mir
8403Torres Strait Creole
8500Northern Desert Fringe Area Languages, nfd
8504Bilinarra
8505Gurindji
8506Gurindji Kriol
8507Jaru
8508Light Warlpiri
8511Malngin
8512Mudburra
8513Ngandi
8514Ngardi
8515Ngarinyman
8516Walmajarri
8517Wanyjirra
8518Warlmanpa
8521Warlpiri
8522Warumungu
8599Northern Desert Fringe Area Languages, nec
8600Arandic, nfd
8603Alyawarr
8604Anmatyerr
8605Arrernte
8606Kaytetye
8699Arandic, nec
8700Western Desert Language, nfd
8703Antikarinya
8704Kartujarra
8705Kukatha
8706Kukatja
8707Luritja
8708Manyjilyjarra
8711Martu Wangka
8712Ngaanyatjarra
8713Pintupi
8714Pitjantjatjara
8715Wangkajunga
8716Wangkatha
8717Warnman
8718Yankunytjatjara
8721Yulparija
8799Western Desert Language, nec
8800Kimberley Area Languages, nfd
8801Bardi
8802Bunuba
8803Gooniyandi
8804Miriwoong
8805Ngarinyin
8806Nyikina
8807Worla
8808Worrorra
8811Wunambal
8812Yawuru
8899Kimberley Area Languages, nec
8900Other Australian Indigenous Languages, nfd
8901Adnymathanha
8902Arabana
8903Bandjalang
8904Banyjima
8905Batjala
8906Bidjara
8907Dhanggatti
8908Diyari
8911Gamilaraay
8912Garrwa
8913Garuwali
8914Githabul
8915Gumbaynggir
8916Kanai
8917Karajarri
8918Kariyarra
8921Kaurna
8922Kayardild
8923Kija
8924Kriol
8925Lardil
8926Mangala
8927Muruwari
8928Narungga
8931Ngarluma
8932Ngarrindjeri
8933Nyamal
8934Nyangumarta
8935Nyungar
8936Paakantyi
8937Palyku/Nyiyaparli
8938Wajarri
8941Wiradjuri
8942Yanyuwa
8943Yindjibarndi
8944Yinhawangka
8945Yorta Yorta
8998Aboriginal English, so described
8999Other Australian Indigenous Languages, nec
9000Other Languages, nfd
9101American Languages
9200African Languages, nfd
9201Acholi
9203Akan
9205Mauritian Creole
9206Oromo
9207Shona
9208Somali
9211Swahili
9212Yoruba
9213Zulu
9214Amharic
9215Bemba
9216Dinka
9217Ewe
9218Ga
9221Harari
9222Hausa
9223Igbo
9224Kikuyu
9225Krio
9226Luganda
9227Luo
9228Ndebele
9231Nuer
9232Nyanja (Chichewa)
9233Shilluk
9234Tigré
9235Tigrinya
9236Tswana
9237Xhosa
9238Seychelles Creole
9299African Languages, nec
9300Pacific Austronesian Languages, nfd
9301Fijian
9302Gilbertese
9303Maori (Cook Island)
9304Maori (New Zealand)
9305Motu
9306Nauruan
9307Niue
9308Samoan
9311Tongan
9312Rotuman
9313Tokelauan
9314Tuvaluan
9315Yapese
9399Pacific Austronesian Languages, nec
9400Oceanian Pidgins and Creoles, nfd
9401Tok Pisin
9402Bislama
9403Hawaiian English
9404Pitcairnese
9405Solomon Islands Pijin
9499Oceanian Pidgins and Creoles, nec
9500Papua New Guinea Papuan Languages, nfd
9502Kiwai
9599Papua New Guinea Papuan Languages, nec
9601Invented Languages
9700Sign Languages, nfd
9701Auslan
9702Makaton
9799Sign Languages, nec

Australian Standard Classification of Religious Groups (ASCRG)

ABS 1266.0 - Australian Standard Classification of Religious Groups, 2005 

0001Not Stated
0002Religious Belief, nfd
0003Not Defined
0004New Age, so described
0005Theism
1011Buddhism
2000Christian, nfd
2001Apostolic Church, so described
2002Church of God, so described
2003Australian Christian Churches, so described
2004New Church Alliance, so described
2010Anglican, nfd
2012Anglican Church of Australia
2013Anglican Catholic Church
2031Baptist
2051Brethren
2071Western Catholic
2072Maronite Catholic
2073Melkite Catholic
2074Ukrainian Catholic
2075Chaldean Catholic
2079Catholic, nec
2110Churches of Christ, nfd
2111Churches of Christ (Conference)
2112Church of Christ (Nondenominational)
2113International Church of Christ
2131Jehovah's Witnesses
2150Church of Jesus Christ of Latter Day Saints, nfd
2151Church of Jesus Christ of LDS (Mormons)
2152Community of Christ
2171Lutheran
2210Oriental Orthodox, nfd
2212Armenian Apostolic
2214Coptic Orthodox Church
2215Syrian Orthodox Church
2216Ethiopian Orthodox Church
2219Oriental Orthodox, nec
2220Assyrian Apostolic, nfd
2221Assyrian Church of the East
2222Ancient Church of the East
2229Assyrian Apostolic, nec
2230Eastern Orthodox, nfd
2231Albanian Orthodox
2232Antiochian Orthodox
2233Greek Orthodox
2234Macedonian Orthodox
2235Romanian Orthodox
2236Russian Orthodox
2237Serbian Orthodox
2238Ukrainian Orthodox
2239Eastern Orthodox, nec
2250Presbyterian and Reformed, nfd
2251Presbyterian
2252Reformed
2253Free Reformed
2271Salvation Army
2311Seventh-day Adventist
2331Uniting Church
2400Pentecostal, nfd
2401Apostolic Church (Australia)
2402Assemblies of God
2403Bethesda Churches
2404Christian City Church
2405Christian Life Churches International
2406Christian Outreach Centres
2407Christian Revival Crusade
2408Faith Churches
2411Foursquare Gospel Church
2412Full Gospel Church
2413Revival Centres
2414Rhema Family Church
2415United Pentecostal
2499Pentecostal, nec
2800Other Protestant, nfd
2801Aboriginal Evangelical Missions
2802Born Again Christian
2803Christian and Missionary Alliance
2804Church of the Nazarene
2805Congregational
2806Ethnic Evangelical Churches
2807Independent Evangelical Churches
2808Wesleyan Methodist Church
2899Other Protestant, nec
2900Other Christian, nfd
2901Apostolic Church of Queensland
2902Christadelphians
2903Christian Science
2904Gnostic Christians
2905Liberal Catholic Church
2906New Apostolic Church
2907New Churches (Swedenborgian)
2908Ratana (Maori)
2911Religious Science
2912Religious Society of Friends (Quakers)
2913Temple Society
2914Unitarian
2915Worldwide Church of God
2999Other Christian, nec
3011Hinduism
4011Islam
5011Judaism
6011Australian Aboriginal Traditional Religions
6031Baha'i
6050Chinese Religions, nfd
6051Ancestor Veneration
6052Confucianism
6053Taoism
6059Chinese Religions, nec
6071Druse
6110Japanese Religions, nfd
6111Shinto
6112Sukyo Mahikari
6113Tenrikyo
6119Japanese Religions, nec
6130Nature Religions, nfd
6131Animism
6132Druidism
6133Paganism
6134Pantheism
6135Wiccan/Witchcraft
6139Nature Religions, nec
6151Sikhism
6171Spiritualism
6991Caodaism
6992Church of Scientology
6993Eckankar
6994Rastafarianism
6995Satanism
6996Theosophy
6997Jainism
6998Zoroastrianism
6999Religious Groups, nec
7010No Religion, nfd
7011Agnosticism
7012Atheism
7013Humanism
7014Rationalism

Australian Standard Geographical Classification (ASGC)

ABS 1216.0 - Australian Standard Geographical Classification (ASGC), Jul 2008 

Statistical Local Area (from ASGC)

105051100Botany Bay (C)
105054800Leichhardt (A)
105055200Marrickville (A)
105057201Sydney (C) - Inner
105057204Sydney (C) - East
105057205Sydney (C) - South
105057206Sydney (C) - West
105106550Randwick (C)
105108050Waverley (A)
105108500Woollahra (A)
105154150Hurstville (C)
105154450Kogarah (A)
105156650Rockdale (C)
105157151Sutherland Shire (A) - East
105157152Sutherland Shire (A) - West
105200351Bankstown (C) - North-East
105200353Bankstown (C) - North-West
105200355Bankstown (C) - South
105201550Canterbury (C)
105252851Fairfield (C) - East
105252854Fairfield (C) - West
105254901Liverpool (C) - East
105254904Liverpool (C) - West
105301450Camden (A)
105301501Campbelltown (C) - North
105301504Campbelltown (C) - South
105308400Wollondilly (A)
105350150Ashfield (A)
105351300Burwood (A)
105351521Canada Bay (A) - Concord
105351524Canada Bay (A) - Drummoyne
105357100Strathfield (A)
105400200Auburn (A)
105403950Holroyd (C)
105406251Parramatta (C) - Inner
105406252Parramatta (C) - North-East
105406253Parramatta (C) - North-West
105406254Parramatta (C) - South
105450900Blue Mountains (C)
105453800Hawkesbury (C)
105456351Penrith (C) - East
105456354Penrith (C) - West
105530751Blacktown (C) - North
105530752Blacktown (C) - South-East
105530753Blacktown (C) - South-West
105554100Hunters Hill (A)
105554700Lane Cove (A)
105555350Mosman (A)
105555950North Sydney (A)
105556700Ryde (C)
105558250Willoughby (C)
105600501Baulkham Hills (A) - Central
105600503Baulkham Hills (A) - North
105600505Baulkham Hills (A) - South
105604001Hornsby (A) - North
105604004Hornsby (A) - South
105604500Ku-ring-gai (A)
105655150Manly (A)
105656370Pittwater (A)
105658000Warringah (A)
105703101Gosford (C) - East
105703104Gosford (C) - West
105708551Wyong (A) - North-East
105708554Wyong (A) - South and West
110051720Cessnock (C)
110054651Lake Macquarie (C) - East
110054653Lake Macquarie (C) - North
110054655Lake Macquarie (C) - West
110055050Maitland (C)
110055903Newcastle (C) - Inner City
110055904Newcastle (C) - Outer West
110055905Newcastle (C) - Throsby
110056400Port Stephens (A)
110102700Dungog (A)
110103050Gloucester (A)
110103400Great Lakes (A)
110105650Muswellbrook (A)
110107000Singleton (A)
110107620Upper Hunter Shire (A)
115054400Kiama (A)
115056900Shellharbour (C)
115058451Wollongong (C) - Inner
115058454Wollongong (C) Bal
115076951Shoalhaven (C) - Pt A
115106952Shoalhaven (C) - Pt B
115108350Wingecarribee (A)
120057554Tweed (A) - Tweed-Heads
120057556Tweed (A) - Tweed Coast
120074851Lismore (C) - Pt A
120100250Ballina (A)
120101350Byron (A)
120104550Kyogle (A)
120104854Lismore (C) - Pt B
120106611Richmond Valley (A) - Casino
120106612Richmond Valley (A) Bal
120107558Tweed (A) - Pt B
125011801Coffs Harbour (C) - Pt A
125036381Port Macquarie-Hastings (A) - Pt A
125050600Bellingen (A)
125051736Clarence Valley (A) - Coast
125051737Clarence Valley (A) - Grafton
125051738Clarence Valley (A) Bal
125051804Coffs Harbour (C) - Pt B
125055700Nambucca (A)
125103350Greater Taree (C)
125104350Kempsey (A)
125106385Port Macquarie-Hastings (A) - Pt B
125108859Lord Howe Island
130057311Tamworth Regional (A) - Pt A
130103550Gunnedah (A)
130103660Gwydir (A)
130104201Inverell (A) - Pt A
130104920Liverpool Plains (A)
130107314Tamworth Regional (A) - Pt B
130150111Armidale Dumaresq (A) - City
130150112Armidale Dumaresq (A) Bal
130153010Glen Innes Severn (A)
130153650Guyra (A)
130154202Inverell (A) - Pt B
130157400Tenterfield (A)
130157650Uralla (A)
130157850Walcha (A)
130205300Moree Plains (A)
130205750Narrabri (A)
135012601Dubbo (C) - Pt A
135052604Dubbo (C) - Pt B
135052950Gilgandra (A)
135055271Mid-Western Regional (A) - Pt A
135055850Narromine (A)
135058020Warrumbungle Shire (A)
135058150Wellington (A)
135100950Bogan (A)
135102150Coonamble (A)
135107900Walgett (A)
135107950Warren (A)
135151150Bourke (A)
135151200Brewarrina (A)
135151750Cobar (A)
140030471Bathurst Regional (A) - Pt A
140070473Bathurst Regional (A) - Pt B
140070850Blayney (A)
140071400Cabonne (A)
140074870Lithgow (C)
140075274Mid-Western Regional (A) - Pt B
140076100Oberon (A)
140150800Bland (A)
140152350Cowra (A)
140152900Forbes (A)
140154600Lachlan (A)
140156200Parkes (A)
140158100Weddin (A)
140206150Orange (C)
145056181Palerang (A) - Pt A
145056470Queanbeyan (C)
145101050Boorowa (A)
145103311Goulburn Mulwaree (A) - Goulburn
145103314Goulburn Mulwaree (A) Bal
145103700Harden (A)
145106184Palerang (A) - Pt B
145107640Upper Lachlan Shire (A)
145108710Yass Valley (A)
145108750Young (A)
145150550Bega Valley (A)
145152750Eurobodalla (A)
145201000Bombala (A)
145202050Cooma-Monaro (A)
145207050Snowy River (A)
150057751Wagga Wagga (C) - Pt A
150102000Coolamon (A)
150102200Cootamundra (A)
150103500Gundagai (A)
150104300Junee (A)
150104950Lockhart (A)
150105800Narrandera (A)
150107350Temora (A)
150107500Tumut Shire (A)
150107754Wagga Wagga (C) - Pt B
150151600Carrathool (A)
150153450Griffith (C)
150153850Hay (A)
150154750Leeton (A)
150155550Murrumbidgee (A)
155050050Albury (C)
155053371Greater Hume Shire (A) - Pt A
155102300Corowa Shire (A)
155103374Greater Hume Shire (A) - Pt B
155107450Tumbarumba (A)
155107700Urana (A)
155150650Berrigan (A)
155151860Conargo (A)
155152500Deniliquin (A)
155154250Jerilderie (A)
155155500Murray (A)
155157800Wakool (A)
155200300Balranald (A)
155208200Wentworth (A)
160101250Broken Hill (C)
160101700Central Darling (A)
160108809Unincorp. Far West
185019779Off-Shore Areas and Migratory
205054601Melbourne (C) - Inner
205054605Melbourne (C) - S'bank-D'lands
205054608Melbourne (C) - Remainder
205055901Port Phillip (C) - St Kilda
205055902Port Phillip (C) - West
205056351Stonnington (C) - Prahran
205057351Yarra (C) - North
205057352Yarra (C) - Richmond
205101181Brimbank (C) - Keilor
205101182Brimbank (C) - Sunshine
205103111Hobsons Bay (C) - Altona
205103112Hobsons Bay (C) - Williamstown
205104330Maribyrnong (C)
205105063Moonee Valley (C) - Essendon
205105065Moonee Valley (C) - West
205204651Melton (S) - East
205204654Melton (S) Bal
205207261Wyndham (C) - North
205207264Wyndham (C) - South
205207267Wyndham (C) - West
205255251Moreland (C) - Brunswick
205255252Moreland (C) - Coburg
205255253Moreland (C) - North
205300661Banyule (C) - Heidelberg
205300662Banyule (C) - North
205301891Darebin (C) - Northcote
205301892Darebin (C) - Preston
205353271Hume (C) - Broadmeadows
205353274Hume (C) - Craigieburn
205353275Hume (C) - Sunbury
205405713Nillumbik (S) - South
205405715Nillumbik (S) - South-West
205405718Nillumbik (S) Bal
205407071Whittlesea (C) - North
205407075Whittlesea (C) - South-East
205407076Whittlesea (C) - South-West
205451111Boroondara (C) - Camberwell N.
205451112Boroondara (C) - Camberwell S.
205451113Boroondara (C) - Hawthorn
205451114Boroondara (C) - Kew
205504211Manningham (C) - East
205504214Manningham (C) - West
205504971Monash (C) - South-West
205504974Monash (C) - Waverley East
205504975Monash (C) - Waverley West
205506981Whitehorse (C) - Box Hill
205506984Whitehorse (C) - Nunawading E.
205506985Whitehorse (C) - Nunawading W.
205553672Knox (C) - North-East
205553673Knox (C) - North-West
205553674Knox (C) - South
205554411Maroondah (C) - Croydon
205554412Maroondah (C) - Ringwood
205607451Yarra Ranges (S) - Central
205607452Yarra Ranges (S) - Dandenongs
205607453Yarra Ranges (S) - Lilydale
205607454Yarra Ranges (S) - North
205607456Yarra Ranges (S) - Seville
205650911Bayside (C) - Brighton
205650912Bayside (C) - South
205652311Glen Eira (C) - Caulfield
205652314Glen Eira (C) - South
205653431Kingston (C) - North
205653434Kingston (C) - South
205656352Stonnington (C) - Malvern
205752671Gr. Dandenong (C) - Dandenong
205752674Gr. Dandenong (C) Bal
205801452Cardinia (S) - North
205801453Cardinia (S) - Pakenham
205801454Cardinia (S) - South
205801612Casey (C) - Berwick
205801613Casey (C) - Cranbourne
205801616Casey (C) - Hallam
205801618Casey (C) - South
205852171Frankston (C) - East
205852174Frankston (C) - West
205905341Mornington P'sula (S) - East
205905344Mornington P'sula (S) - South
205905345Mornington P'sula (S) - West
210052751Bellarine - Inner
210052752Corio - Inner
210052753Geelong
210052754Geelong West
210052755Newtown
210052756South Barwon - Inner
210102757Greater Geelong (C) - Pt B
210106080Queenscliffe (B)
210106493Surf Coast (S) - East
210106495Surf Coast (S) - West
210151751Colac-Otway (S) - Colac
210151754Colac-Otway (S) - North
210151755Colac-Otway (S) - South
210152491Golden Plains (S) - North-West
210152492Golden Plains (S) - South-East
210152758Greater Geelong (C) - Pt C
215016730Warrnambool (C)
215051831Corangamite (S) - North
215051832Corangamite (S) - South
215055491Moyne (S) - North-East
215055493Moyne (S) - North-West
215055496Moyne (S) - South
215058469Lady Julia Percy Island
215102411Glenelg (S) - Heywood
215102412Glenelg (S) - North
215102413Glenelg (S) - Portland
215106261S. Grampians (S) - Hamilton
215106264S. Grampians (S) - Wannon
215106265S. Grampians (S) Bal
220050571Ballarat (C) - Central
220050572Ballarat (C) - Inner North
220050573Ballarat (C) - North
220050574Ballarat (C) - South
220102911Hepburn (S) - East
220102912Hepburn (S) - West
220105151Moorabool (S) - Bacchus Marsh
220105154Moorabool (S) - Ballan
220105155Moorabool (S) - West
220150260Ararat (RC)
220155991Pyrenees (S) - North
220155994Pyrenees (S) - South
225053191Horsham (RC) - Central
225053194Horsham (RC) Bal
225055811N. Grampians (S) - St Arnaud
225055814N. Grampians (S) - Stawell
225056890West Wimmera (S)
225102980Hindmarsh (S)
225107631Yarriambiack (S) - North
225107632Yarriambiack (S) - South
230054781Mildura (RC) - Pt A
230101271Buloke (S) - North
230101272Buloke (S) - South
230104782Mildura (RC) - Pt B
230152250Gannawarra (S)
230156611Swan Hill (RC) - Central
230156614Swan Hill (RC) - Robinvale
230156616Swan Hill (RC) Bal
235052621Gr. Bendigo (C) - Central
235052622Gr. Bendigo (C) - Eaglehawk
235052623Gr. Bendigo (C) - Inner East
235052624Gr. Bendigo (C) - Inner North
235052625Gr. Bendigo (C) - Inner West
235052626Gr. Bendigo (C) - S'saye
235101671C. Goldfields (S) - M'borough
235101674C. Goldfields (S) Bal
235102628Gr. Bendigo (C) - Pt B
235103943Loddon (S) - North
235103945Loddon (S) - South
235105431Mount Alexander (S) - C'maine
235105434Mount Alexander (S) Bal
235204131Macedon Ranges (S) - Kyneton
235204134Macedon Ranges (S) - Romsey
235204135Macedon Ranges (S) Bal
240052831Gr. Shepparton (C) - Pt A
240101371Campaspe (S) - Echuca
240101374Campaspe (S) - Kyabram
240101375Campaspe (S) - Rochester
240101376Campaspe (S) - South
240102834Gr. Shepparton (C) - Pt B East
240102835Gr. Shepparton (C) - Pt B West
240104901Moira (S) - East
240104904Moira (S) - West
240151011Benalla (RC) - Benalla
240151014Benalla (RC) Bal
240154250Mansfield (S)
240156430Strathbogie (S)
240158249Mount Buller Alpine Resort
240158349Mount Stirling Alpine Resort
240204851Mitchell (S) - North
240204854Mitchell (S) - South
240205621Murrindindi (S) - East
240205622Murrindindi (S) - West
240208149Lake Mountain Alpine Resort
245053351Indigo (S) - Pt A
245056671Towong (S) - Pt A
245057170Wodonga (RC)
245103352Indigo (S) - Pt B
245106701Wangaratta (RC) - Central
245106704Wangaratta (RC) - North
245106705Wangaratta (RC) - South
245150111Alpine (S) - East
245150112Alpine (S) - West
245156672Towong (S) - Pt B
245158109Falls Creek Alpine Resort
245158309Mount Hotham Alpine Resort
250052111E. Gippsland (S) - Bairnsdale
250052113E. Gippsland (S) - Orbost
250052115E. Gippsland (S) - South-West
250052117E. Gippsland (S) Bal
250156811Wellington (S) - Alberton
250156812Wellington (S) - Avon
250156813Wellington (S) - Maffra
250156814Wellington (S) - Rosedale
250156815Wellington (S) - Sale
255050831Baw Baw (S) - Pt A
255053811Latrobe (C) - Moe
255053814Latrobe (C) - Morwell
255053815Latrobe (C) - Traralgon
255053818Latrobe (C) Bal
255100834Baw Baw (S) - Pt B East
255100835Baw Baw (S) - Pt B West
255107458Yarra Ranges (S) - Pt B
255108209Mount Baw Baw Alpine Resort
255200741Bass Coast (S) - Phillip Is.
255200744Bass Coast (S) Bal
255206171South Gippsland (S) - Central
255206174South Gippsland (S) - East
255206175South Gippsland (S) - West
255208529French Island
255208649Bass Strait Islands
285019779Off-Shore Areas and Migratory
305011067Bowen Hills
305011143City - Inner
305011146City - Remainder
305011187Dutton Park
305011227Fortitude Valley
305011274Herston
305011277Highgate Hill
305011304Kangaroo Point
305011315Kelvin Grove
305011378Milton
305011421New Farm
305011427Newstead
305011454Paddington
305011481Red Hill
305011525South Brisbane
305011528Spring Hill
305011607West End
305011631Woolloongabba
305031004Albion
305031007Alderley
305031026Ascot
305031031Ashgrove
305031048Bardon
305031132Chelmer
305031151Clayfield
305031162Corinda
305031206Enoggera
305031241Graceville
305031244Grange
305031255Hamilton
305031271Hendra
305031293Indooroopilly
305031312Kedron
305031345Lutwyche
305031424Newmarket
305031446Nundah
305031506St Lucia
305031522Sherwood
305031533Stafford
305031536Stafford Heights
305031558Taringa
305031574Toowong
305031618Wilston
305031623Windsor
305031634Wooloowin
305071018Anstead
305071034Aspley
305071037Bald Hills
305071045Banyo
305071053Bellbowrie
305071064Boondall
305071072Bracken Ridge
305071075Bridgeman Downs
305071078Brighton
305071084Brookfield (incl. Brisbane Forest Park)
305071121Carseldine
305071127Chapel Hill
305071135Chermside
305071138Chermside West
305071167Darra-Sumner
305071173Deagon
305071176Doolandella-Forest Lake
305071184Durack
305071203Ellen Grove
305071211Everton Park
305071217Ferny Grove
305071222Fig Tree Pocket
305071236Geebung
305071288Inala
305071296Jamboree Heights
305071301Jindalee
305071306Karana Downs-Lake Manchester
305071318Kenmore
305071323Kenmore Hills
305071326Keperra
305071353McDowall
305071375Middle Park
305071383Mitchelton
305071386Moggill
305071408Mount Ommaney
305071435Northgate
305071442Nudgee
305071451Oxley
305071465Pinjarra Hills
305071467Pinkenba-Eagle Farm
305071473Pullenvale
305071484Richlands
305071487Riverhills
305071514Sandgate
305071517Seventeen Mile Rocks
305071556Taigum-Fitzgibbon
305071567The Gap
305071585Upper Kedron
305071593Virginia
305071596Wacol
305071604Wavell Heights
305071612Westlake
305071653Zillmere
305091015Annerley
305091042Balmoral
305091086Bulimba
305091097Camp Hill
305091102Cannon Hill
305091108Carindale
305091113Carina
305091116Carina Heights
305091157Coorparoo
305091195East Brisbane
305091214Fairfield
305091247Greenslopes
305091258Hawthorne
305091282Holland Park
305091285Holland Park West
305091391Moorooka
305091397Morningside
305091432Norman Park
305091563Tarragindi
305091645Yeerongpilly
305091648Yeronga
305111001Acacia Ridge
305111012Algester
305111023Archerfield
305111057Belmont-Mackenzie
305111091Burbank
305111094Calamvale
305111123Chandler-Capalaba West
305111154Coopers Plains
305111198Eight Mile Plains
305111251Gumdale-Ransome
305111265Hemmant-Lytton
305111331Kuraby
305111337Lota
305111356MacGregor
305111364Manly
305111367Manly West
305111372Mansfield
305111394Moreton Island
305111402Mount Gravatt
305111405Mount Gravatt East
305111413Murarrie
305111416Nathan
305111456Pallara-Heathwood-Larapinta
305111463Parkinson-Drewvale
305111492Robertson
305111495Rochedale
305111498Rocklea
305111503Runcorn
305111511Salisbury
305111541Stretton-Karawatha
305111547Sunnybank
305111552Sunnybank Hills
305111571Tingalpa
305111588Upper Mount Gravatt
305111601Wakerley
305111615Willawong
305111626Wishart
305111637Wynnum
305111642Wynnum West
305205019Bribie Island
305205021Burpengary-Narangba
305205023Caboolture Central
305205025Caboolture East
305205027Caboolture Hinterland
305205028Caboolture Midwest
305205039Deception Bay
305205056Morayfield
305253962Ipswich (C) - Central
305253965Ipswich (C) - East
305253966Ipswich (C) - North
305253971Ipswich (C) - South-West
305253976Ipswich (C) - West
305304595Beenleigh
305304597Bethania-Waterford
305304601Browns Plains
305304603Carbrook-Cornubia
305304605Daisy Hill-Priestdale
305304606Eagleby
305304607Edens Landing-Holmview
305304608Greenbank-Boronia Heights
305304611Jimboomba-Logan Village
305304612Kingston
305304615Loganholme
305304618Loganlea
305304623Marsden
305304626Mt Warren Park
305304627Park Ridge-Logan Reserve
305304631Rochedale South
305304634Shailer Park
305304637Slacks Creek
305304642Springwood
305304645Tanah Merah
305304651Underwood
305304654Waterford West
305304655Wolffdene-Bahrs Scrub
305304656Woodridge
305405013Albany Creek
305405016Bray Park
305405033Central Pine West
305405037Dakabin-Kallangur-M. Downs
305405043Griffin-Mango Hill
305405047Hills District
305405051Lawnton
305405058Petrie
305405067Strathpine-Brendale
305405068Moreton Bay (R) Bal
305455035Clontarf
305455053Margate-Woody Point
305455063Redcliffe-Scarborough
305455065Rothwell-Kippa-Ring
305506251Alexandra Hills
305506254Birkdale
305506257Capalaba
305506262Cleveland
305506264Ormiston
305506265Redland Bay
305506267Sheldon-Mt Cotton
305506268Thorneside
305506271Thornlands
305506273Victoria Point
305506276Wellington Point
305506283Redland (C) Bal
307103508Biggera Waters-Labrador
307103511Bilinga-Tugun
307103514Broadbeach-Mermaid Beach
307103515Broadbeach Waters
307103517Bundall
307103521Burleigh Heads
307103523Burleigh Waters
307103527Coolangatta
307103533Currumbin
307103555Main Beach-South Stradbroke
307103562Mermaid Wtrs-Clear Is. Wtrs
307103563Miami
307103573Palm Beach
307103576Paradise Point-Runaway Bay
307103585Southport
307103587Surfers Paradise
307153502Ashmore-Benowa
307153525Carrara-Merrimac
307153531Coombabah
307153534Currumbin Valley-Tallebudgera
307153535Currumbin Waters
307153537Elanora
307153543Helensvale
307153547Hope Island
307153552Jacobs Well-Alberton
307153556Kingsholme-Upper Coomera
307153564Molendinar
307153566Mudgeeraba-Reedy Creek
307153567Nerang
307153568Oxenford-Maudsland
307153572Pacific Pines-Gaven
307153574Ormeau-Yatala
307153578Parkwood-Arundel
307153581Pimpama-Coomera
307153582Robina
307153592Varsity Lakes
307153593Worongary-Tallai
307203538Guanaba-Springbrook
309056713Buderim
309056718Caloundra North
309056721Caloundra South
309056723Coolum-Mudjimba
309056728Kawana
309056738Maroochydore
309056744Mooloolaba
309056748Nambour
309056755Noosa-Noosaville
309056761Paynter-Petrie Creek
309056763Sunshine-Peregian
309056772Tewantin
309106716Caloundra Hinterland
309106725Glass House Country
309106733Maroochy Hinterland
309106753Noosa Hinterland
312056582Somerset (R) - Esk
312056584Somerset (R) - Kilcoy
312104582Lockyer Valley (R) - Gatton
312104584Lockyer Valley (R) - Laidley
312106512Scenic Rim (R) - Beaudesert
312106514Scenic Rim (R) - Boonah
312106516Scenic Rim (R) - Tamborine-Canungra
315051822Bundaberg (R) - Bundaberg
315051824Bundaberg (R) - Burnett Pt A
315073222Fraser Coast (R) - Hervey Bay Pt A
315101825Bundaberg (R) - Burnett Pt B
315101827Bundaberg (R) - Isis
315101828Bundaberg (R) - Kolan
315102330Cherbourg (S)
315103223Fraser Coast (R) - Hervey Bay Pt B
315103225Fraser Coast (R) - Maryborough
315103227Fraser Coast (R) - Woocoo-Tiaro
315103622Gympie (R) - Cooloola
315103624Gympie (R) - Gympie
315103626Gympie (R) - Kilkivan
315105761North Burnett (R) - Biggenden
315105762North Burnett (R) - Eidsvold
315105763North Burnett (R) - Gayndah
315105764North Burnett (R) - Monto
315105765North Burnett (R) - Mundubbera
315105766North Burnett (R) - Perry
315106632South Burnett (R) - Kingaroy
315106634South Burnett (R) - Murgon
315106636South Burnett (R) - Nanango
315106638South Burnett (R) - Wondai
320016912Cambooya
320016921Gowrie
320016926Highfields
320016937Toowoomba Central
320016941Toowoomba North-East
320016943Toowoomba North-West
320016945Toowoomba South-East
320016946Toowoomba West
320016947Westbrook
320052662Dalby (R) - Chinchilla
320052663Dalby (R) - Dalby
320052665Dalby (R) - Murilla-Wandoan
320052666Dalby (R) - Tara
320052668Dalby (R) - Wambo
320053612Goondiwindi (R) - Goondiwindi
320053614Goondiwindi (R) - Inglewood
320053616Goondiwindi (R) - Waggamba
320056662Southern Downs (R) - Allora
320056665Southern Downs (R) - Killarney
320056666Southern Downs (R) - Stanthorpe
320056667Southern Downs (R) - Warwick
320056668Southern Downs (R) - West
320056914Clifton
320056916Crow's Nest
320056923Greenmount
320056928Jondaryan
320056931Millmerran
320056933Pittsworth
320056935Rosalie
325050300Balonne (S)
325051750Bulloo (S)
325055600Murweh (S)
325055800Paroo (S)
325056150Quilpie (S)
325056412Roma (R) - Bendemere
325056414Roma (R) - Booringa
325056415Roma (R) - Bungil
325056417Roma (R) - Roma
325056418Roma (R) - Warroo
330056362Rockhampton (R) - Fitzroy Pt A
330056365Rockhampton (R) - Livingstone Pt A
330056368Rockhampton (R) - Rockhampton
330103362Gladstone (R) - Calliope Pt A
330103366Gladstone (R) - Gladstone
330150370Banana (S)
330152272Central Highlands (R) - Bauhinia
330152274Central Highlands (R) - Duaringa
330152276Central Highlands (R) - Emerald
330152278Central Highlands (R) - Peak Downs
330153364Gladstone (R) - Calliope Pt B
330153368Gladstone (R) - Miriam Vale
330156363Rockhampton (R) - Fitzroy Pt B
330156366Rockhampton (R) - Livingstone Pt B
330156367Rockhampton (R) - Mount Morgan
330157550Woorabinda (S)
335050412Barcaldine (R) - Aramac
335050416Barcaldine (R) - Barcaldine
335050418Barcaldine (R) - Jericho
335050450Barcoo (S)
335050762Blackall Tambo (R) - Blackall
335050765Blackall Tambo (R) - Tambo
335050900Boulia (S)
335052750Diamantina (S)
335054712Longreach (R) - Ilfracombe
335054714Longreach (R) - Isisford
335054716Longreach (R) - Longreach
335057400Winton (S)
340054772Mackay (R) - Mackay Pt A
340103982Isaac (R) - Belyando
340103984Isaac (R) - Broadsound
340103986Isaac (R) - Nebo
340104773Mackay (R) - Mackay Pt B
340104775Mackay (R) - Mirani
340104777Mackay (R) - Sarina
340107342Whitsunday (R) - Bowen
340107345Whitsunday (R) - Whitsunday
345057001Aitkenvale
345057003City
345057007Cranbrook
345057012Currajong
345057014Douglas
345057015Garbutt
345057018Gulliver
345057023Heatley
345057026Hermit Park
345057027Hyde Park-Mysterton
345057031Magnetic Island
345057033Mt Louisa-Mt St John-Bohle
345057034Mundingburra
345057038Murray
345057041North Ward-Castle Hill
345057044Oonoonba-Idalia-Cluden
345057047Pallarenda-Shelley Beach
345057051Pimlico
345057054Railway Estate
345057058Rosslea
345057062Rowes Bay-Belgian Gardens
345057065South Townsville
345057068Stuart-Roseneath
345057071Vincent
345057074West End
345057078Wulguru
345107005Condon-Rasmussen-Bohle Basin
345107028Kelso
345107030Kirwan
345151900Burdekin (S)
345152312Charters Towers (R) - Charters Towers
345152314Charters Towers (R) - Dalrymple
345153800Hinchinbrook (S)
345155790Palm Island (S)
345157043Northern Beaches-Pinnacles
345157076Woodstock-Cleveland-Ross
350052062Cairns (R) - Barron
350052065Cairns (R) - Central Suburbs
350052066Cairns (R) - City
350052068Cairns (R) - Mt Whitfield
350052072Cairns (R) - Northern Suburbs
350052074Cairns (R) - Trinity
350052076Cairns (R) - Western Suburbs
350100250Aurukun (S)
350102067Cairns (R) - Douglas
350102078Cairns (R) - Pt B
350102262Cassowary Coast (R) - Cardwell
350102264Cassowary Coast (R) - Johnstone
350102500Cook (S)
350102600Croydon (S)
350103100Etheridge (S)
350103830Hope Vale (S)
350104420Kowanyama (S)
350104570Lockhart River (S)
350104830Mapoon (S)
350105670Napranum (S)
350105781Northern Peninsula Area (R) - Bamaga
350105783Northern Peninsula Area (R) - Injinoo
350105784Northern Peninsula Area (R) - New Mapoon
350105786Northern Peninsula Area (R) - Seisia
350105788Northern Peninsula Area (R) - Umagico
350106070Pormpuraaw (S)
350106812Tablelands (R) - Atherton
350106814Tablelands (R) - Eacham
350106816Tablelands (R) - Herberton
350106818Tablelands (R) - Mareeba
350106950Torres (S)
350106963Torres Strait Island (R) - Badu
350106965Torres Strait Island (R) - Boigu
350106968Torres Strait Island (R) - Dauan
350106972Torres Strait Island (R) - Erub
350106974Torres Strait Island (R) - Hammond
350106976Torres Strait Island (R) - Iama
350106978Torres Strait Island (R) - Kubin
350106982Torres Strait Island (R) - Mabuiag
350106984Torres Strait Island (R) - Mer
350106986Torres Strait Island (R) - Poruma
350106992Torres Strait Island (R) - Saibai
350106993Torres Strait Island (R) - St Pauls
350106995Torres Strait Island (R) - Ugar
350106996Torres Strait Island (R) - Warraber
350106998Torres Strait Island (R) - Yorke
350107300Weipa (T)
350107570Wujal Wujal (S)
350107600Yarrabah (S)
355051950Burke (S)
355052250Carpentaria (S)
355052450Cloncurry (S)
355052770Doomadgee (S)
355053200Flinders (S)
355054800McKinlay (S)
355055250Mornington (S)
355055300Mount Isa (C)
355056300Richmond (S)
385019779Off-Shore Areas and Migratory
405052030Gawler (T)
405055681Playford (C) - East Central
405055683Playford (C) - Elizabeth
405055684Playford (C) - Hills
405055686Playford (C) - West
405055688Playford (C) - West Central
405055891Port Adel. Enfield (C) - East
405055894Port Adel. Enfield (C) - Inner
405057141Salisbury (C) - Central
405057143Salisbury (C) - Inner North
405057144Salisbury (C) - North-East
405057146Salisbury (C) - South-East
405057148Salisbury (C) Bal
405057701Tea Tree Gully (C) - Central
405057704Tea Tree Gully (C) - Hills
405057705Tea Tree Gully (C) - North
405057708Tea Tree Gully (C) - South
405101061Charles Sturt (C) - Coastal
405101064Charles Sturt (C) - Inner East
405101065Charles Sturt (C) - Inner West
405101068Charles Sturt (C) - North-East
405105895Port Adel. Enfield (C) - Coast
405105896Port Adel. Enfield (C) - Park
405105897Port Adel. Enfield (C) - Port
405108411West Torrens (C) - East
405108414West Torrens (C) - West
405108899Unincorp. Western
405150070Adelaide (C)
405150121Adelaide Hills (DC) - Central
405150124Adelaide Hills (DC) - Ranges
405150701Burnside (C) - North-East
405150704Burnside (C) - South-West
405150911Campbelltown (C) - East
405150914Campbelltown (C) - West
405155291Norw. P'ham St Ptrs (C) - East
405155294Norw. P'ham St Ptrs (C) - West
405156510Prospect (C)
405157981Unley (C) - East
405157984Unley (C) - West
405158260Walkerville (M)
405202601Holdfast Bay (C) - North
405202604Holdfast Bay (C) - South
405204061Marion (C) - Central
405204064Marion (C) - North
405204065Marion (C) - South
405204341Mitcham (C) - Hills
405204344Mitcham (C) - North-East
405204345Mitcham (C) - West
405205341Onkaparinga (C) - Hackham
405205342Onkaparinga (C) - Hills
405205343Onkaparinga (C) - Morphett
405205344Onkaparinga (C) - North Coast
405205345Onkaparinga (C) - Reservoir
405205346Onkaparinga (C) - South Coast
405205347Onkaparinga (C) - Woodcroft
410050311Barossa (DC) - Angaston
410050314Barossa (DC) - Barossa
410050315Barossa (DC) - Tanunda
410053650Light (RegC)
410053920Mallala (DC)
410102750Kangaroo Island (DC)
410150125Adelaide Hills (DC) - North
410150128Adelaide Hills (DC) Bal
410154551Mount Barker (DC) - Central
410154554Mount Barker (DC) Bal
410200221Alexandrina (DC) - Coastal
410200224Alexandrina (DC) - Strathalbyn
410208050Victor Harbor (C)
410208750Yankalilla (DC)
415050430Barunga West (DC)
415051560Copper Coast (DC)
415058831Yorke Peninsula (DC) - North
415058834Yorke Peninsula (DC) - South
415058969Unincorp. Yorke
415101140Clare and Gilbert Valleys (DC)
415102110Goyder (DC)
415108130Wakefield (DC)
420050521Berri and Barmera (DC) - Barmera
420050524Berri and Barmera (DC) - Berri
420053791Loxton Waikerie (DC) - East
420053794Loxton Waikerie (DC) - West
420054210Mid Murray (DC)
420056671Renmark Paringa (DC) - Paringa
420056674Renmark Paringa (DC) - Renmark
420059039Unincorp. Riverland
420103080Karoonda East Murray (DC)
420105040Murray Bridge (RC)
420107290Southern Mallee (DC)
420107800The Coorong (DC)
420109109Unincorp. Murray Mallee
425053360Kingston (DC)
425055090Naracoorte and Lucindale (DC)
425056860Robe (DC)
425057630Tatiara (DC)
425102250Grant (DC)
425104620Mount Gambier (C)
425108341Wattle Range (DC) - East
425108344Wattle Range (DC) - West
430051190Cleve (DC)
430051750Elliston (DC)
430051960Franklin Harbour (DC)
430053220Kimba (DC)
430053570Le Hunte (DC)
430053710Lower Eyre Peninsula (DC)
430056300Port Lincoln (C)
430057910Tumby Bay (DC)
430059179Unincorp. Lincoln
430101010Ceduna (DC)
430107490Streaky Bay (DC)
430109249Unincorp. West Coast
435058540Whyalla (C)
435059389Unincorp. Whyalla
435155120Northern Areas (DC)
435155400Orroroo/Carrieton (DC)
435155540Peterborough (DC)
435156451Port Pirie C Dists (M) - City
435156454Port Pirie C Dists (M) Bal
435159459Unincorp. Pirie
435201830Flinders Ranges (DC)
435204830Mount Remarkable (DC)
435206090Port Augusta (C)
435209529Unincorp. Flinders Ranges
435250250Anangu Pitjantjatjara (AC)
435251330Coober Pedy (DC)
435254000Maralinga Tjarutja (AC)
435256970Roxby Downs (M)
435259589Unincorp. Far North
485019779Off-Shore Areas & Migratory
505051310Cambridge (T)
505051750Claremont (T)
505052170Cottesloe (T)
505055740Mosman Park (T)
505056580Nedlands (C)
505056930Peppermint Grove (S)
505057081Perth (C) - Inner
505057082Perth (C) - Remainder
505057980Subiaco (C)
505058570Vincent (T)
505100350Bassendean (T)
505100420Bayswater (C)
505104200Kalamunda (S)
505106090Mundaring (S)
505108050Swan (C)
505154171Joondalup (C) - North
505154174Joondalup (C) - South
505157914Stirling (C) - Central
505157915Stirling (C) - Coastal
505157916Stirling (C) - South-Eastern
505158761Wanneroo (C) - North-East
505158764Wanneroo (C) - North-West
505158767Wanneroo (C) - South
505201820Cockburn (C)
505203150East Fremantle (T)
505203431Fremantle (C) - Inner
505203432Fremantle (C) - Remainder
505204830Kwinana (T)
505205320Melville (C)
505207490Rockingham (C)
505250210Armadale (C)
505250490Belmont (C)
505251330Canning (C)
505253780Gosnells (C)
505257700Serpentine-Jarrahdale (S)
505257840South Perth (C)
505258510Victoria Park (T)
510015110Mandurah (C)
510016230Murray (S)
510031190Bunbury (C)
510031401Capel (S) - Pt A
510032661Dardanup (S) - Pt A
510033991Harvey (S) - Pt A
510100630Boddington (S)
510101404Capel (S) - Pt B
510101890Collie (S)
510102664Dardanup (S) - Pt B
510102870Donnybrook-Balingup (S)
510103994Harvey (S) - Pt B
510108820Waroona (S)
510150280Augusta-Margaret River (S)
510151260Busselton (S)
510200770Boyup Brook (S)
510200840Bridgetown-Greenbushes (S)
510205180Manjimup (S)
510206300Nannup (S)
515051080Broomehill-Tambellup (S)
515053640Gnowangerup (S)
515054130Jerramungup (S)
515054340Katanning (S)
515054480Kent (S)
515054550Kojonup (S)
515059380Woodanilling (S)
515100081Albany (C) - Central
515100084Albany (C) Bal
515102240Cranbrook (S)
515102730Denmark (S)
515107210Plantagenet (S)
520050910Brookton (S)
520052310Cuballing (S)
520053010Dumbleyung (S)
520056440Narrogin (T)
520056510Narrogin (S)
520057140Pingelly (S)
520058610Wagin (S)
520058680Wandering (S)
520058890West Arthur (S)
520059100Wickepin (S)
520059170Williams (S)
520102100Corrigin (S)
520104620Kondinin (S)
520104760Kulin (S)
520104900Lake Grace (S)
525051680Chittering (S)
525052590Dandaragan (S)
525053570Gingin (S)
525055600Moora (S)
525058540Victoria Plains (S)
525100560Beverley (S)
525102450Cunderdin (S)
525102520Dalwallinu (S)
525102940Dowerin (S)
525103710Goomalling (S)
525104690Koorda (S)
525106732Northam
525106735Northam Town
525107350Quairading (S)
525108190Tammin (S)
525108330Toodyay (S)
525109310Wongan-Ballidu (S)
525109450Wyalkatchem (S)
525109730York (S)
525151120Bruce Rock (S)
525154410Kellerberrin (S)
525155460Merredin (S)
525155880Mount Marshall (S)
525155950Mukinbudin (S)
525156370Narembeen (S)
525156860Nungarin (S)
525158400Trayning (S)
525159030Westonia (S)
525159660Yilgarn (S)
530014281Kalgoorlie/Boulder (C) - Pt A
530051960Coolgardie (S)
530054284Kalgoorlie/Boulder (C) - Pt B
530054970Laverton (S)
530055040Leonora (S)
530055390Menzies (S)
530056620Ngaanyatjarraku (S)
530103080Dundas (S)
530103290Esperance (S)
530107420Ravensthorpe (S)
535033522Geraldton
535033524Greenough - Pt A
535051540Carnarvon (S)
535053360Exmouth (S)
535057770Shark Bay (S)
535058470Upper Gascoyne (S)
535102380Cue (S)
535105250Meekatharra (S)
535105810Mount Magnet (S)
535106160Murchison (S)
535107630Sandstone (S)
535109250Wiluna (S)
535109590Yalgoo (S)
535151470Carnamah (S)
535151610Chapman Valley (S)
535152030Coorow (S)
535153526Greenough - Pt B
535154060Irwin (S)
535155530Mingenew (S)
535155670Morawa (S)
535156020Mullewa (S)
535156790Northampton (S)
535157000Perenjori (S)
535158260Three Springs (S)
540053220East Pilbara (S)
540057280Port Hedland (T)
540100250Ashburton (S)
540107560Roebourne (S)
545053920Halls Creek (S)
545059520Wyndham-East Kimberley (S)
545100980Broome (S)
545102800Derby-West Kimberley (S)
585019779Off-Shore Areas & Migratory
605050410Brighton (M)
605051410Clarence (C)
605051511Derwent Valley (M) - Pt A
605052610Glenorchy (C)
605052811Hobart (C) - Inner
605052812Hobart (C) - Remainder
605053611Kingborough (M) - Pt A
605054811Sorell (M) - Pt A
610051010Central Highlands (M)
610051512Derwent Valley (M) - Pt B
610052410Glamorgan/Spring Bay (M)
610053010Huon Valley (M)
610053612Kingborough (M) - Pt B
610054812Sorell (M) - Pt B
610055010Southern Midlands (M)
610055210Tasman (M)
615052211George Town (M) - Pt A
615054011Launceston (C) - Inner
615054012Launceston (C) - Pt B
615054211Meander Valley (M) - Pt A
615054611Northern Midlands (M) - Pt A
615055811West Tamar (M) - Pt A
615102212George Town (M) - Pt B
615104013Launceston (C) - Pt C
615104212Meander Valley (M) - Pt B
615104612Northern Midlands (M) - Pt B
615105812West Tamar (M) - Pt B
615150210Break O'Day (M)
615151810Dorset (M)
615152010Flinders (M)
620050611Burnie (C) - Pt A
620050811Central Coast (M) - Pt A
620051610Devonport (C)
620053811Latrobe (M) - Pt A
620055411Waratah/Wynyard (M) - Pt A
620100612Burnie (C) - Pt B
620100812Central Coast (M) - Pt B
620101210Circular Head (M)
620103210Kentish (M)
620103410King Island (M)
620103812Latrobe (M) - Pt B
620105412Waratah/Wynyard (M) - Pt B
620155610West Coast (M)
685019779Off-Shore Areas & Migratory
705051004Alawa
705051008Anula
705051011Bayview-Woolner
705051014Brinkin
705051018City - Inner
705051024Coconut Grove
705051028Fannie Bay
705051034Jingili
705051038Karama
705051044Larrakeyah
705051048Leanyer
705051052Lee Point-Leanyer Swamp
705051054Ludmilla
705051058Malak
705051064Marrara
705051068Millner
705051074Moil
705051078Nakara
705051084Narrows
705051088Nightcliff
705051094Parap
705051098Rapid Creek
705051104Stuart Park
705051108The Gardens
705051114Tiwi
705051118Wagaman
705051124Wanguri
705051128Winnellie
705051134Wulagi
705051138City - Remainder
705101169East Arm
705102802Bakewell
705102804Driver
705102806Durack
705102808Gray
705102811Gunn-Palmerston City
705102814Moulden
705102818Woodroffe
705102824Palmerston (C) Bal
705202304Litchfield (S) - Pt A
705202308Litchfield (S) - Pt B
710050540Belyuen (S)
710050700Coomalie (S)
710051509Finniss-Mary
710054560Wagait (S)
710104050Tiwi Islands (S)
710154663West Arnhem (S) - Jabiru
710154666West Arnhem (S) Bal
710250419Alyangula
710251300East Arnhem (S)
710252409Nhulunbuy
710302200Katherine (T)
710303600Roper Gulf (S)
710304505Victoria-Daly (S) - Wadeye and OS
710304508Victoria-Daly (S) Bal
710350422Barkly (S) - Tennant Creek
710350425Barkly (S) Bal
710400201Alice Springs (T) - Charles
710400203Alice Springs (T) - Heavitree
710400205Alice Springs (T) - Larapinta
710400207Alice Springs (T) - Ross
710400208Alice Springs (T) - Stuart
710400620Central Desert (S)
710402330MacDonnell (S)
710406059Yulara
785019779Off-Shore Areas & Migratory
805050089Acton
805050189Ainslie
805050639Braddon
805050909Campbell
805051449City
805051889Dickson
805051989Downer
805052169Duntroon
805053609Hackett
805055049Kowen
805055229Lyneham
805055769Majura
805056389O'Connor
805057209Reid
805057479Russell
805058289Turner
805058559Watson
805100279Aranda
805100459Belconnen Town Centre
805100549Belconnen - SSD Bal
805100729Bruce
805101179Charnwood
805101629Cook
805102139Dunlop
805102259Evatt
805102619Florey
805102709Flynn
805102889Fraser
805103249Giralang
805103879Hawker
805103969Higgins
805104149Holt
805104779Kaleen
805105139Latham
805105409McKellar
805105589Macgregor
805105679Macquarie
805105949Melba
805106669Page
805107569Scullin
805107659Spence
805108649Weetangera
805151269Chifley
805151719Curtin
805152439Farrer
805153069Garran
805154239Hughes
805154419Isaacs
805155319Lyons
805155859Mawson
805156489O'Malley
805156849Pearce
805156939Phillip
805158109Torrens
805201089Chapman
805202079Duffy
805202529Fisher
805204059Holder
805207389Rivett
805207749Stirling
805207839Stromlo
805208469Waramanga
805208739Weston
805208829Weston Creek-Stromlo - SSD Bal
805250339Banks
805250609Bonython
805250819Calwell
805251359Chisholm
805251549Conder
805252349Fadden
805253159Gilmore
805253289Gordon
805253339Gowrie
805253379Greenway
805254509Isabella Plains
805254869Kambah
805255489Macarthur
805256129Monash
805256579Oxley
805257289Richardson
805258019Theodore
805258189Tuggeranong - SSD Bal
805258379Wanniassa
805350369Barton
805351809Deakin
805352789Forrest
805352979Fyshwick
805353429Griffith
805353789Harman
805354329Hume
805354589Jerrabomberra
805354959Kingston
805356219Narrabundah
805356309Oaks Estate
805356759Parkes
805357029Pialligo
805357119Red Hill
805357929Symonston
805358919Yarralumla
805400239Amaroo
805400589Bonner
805400939Casey
805401649Crace
805402779Forde
805402919Franklin
805403519Gungahlin
805403529Gungahlin-Hall - SSD Bal
805403689Hall
805403819Harrison
805406039Mitchell
805406249Ngunnawal
805406279Nicholls
805406719Palmerston
810059009Remainder of ACT
910051009Jervis Bay Territory
910052009Territory of Christmas Island
910053009Territory of Cocos (Keeling) Islands
985019779Off-Shore Areas & Migratory

Birthdate Verification

1004Birth certificate
1006Hospital certificate
1008Passport
1009Physician's certificate
1010Previously verified school records
1011State-issued ID
1012Driver's license
1013Immigration document/visa
3423Other official document
3424Other non-official document
9999Other
NBirthdate NOT Verified
YDocumentation Sighted, type not recorded

Calendar Event

A code indicating the type of school day

0845Teacher only day
0846Holiday
0848Student late arrival/early dismissal
0849Emergency day
3421Strike
9999Other
INSTInstructional School Day
MKUPInstructional day that is scheduled solely to make up for emergency days or early dismissal days.

Day Value Code

AMMorning
FullAll Day
N/ANot Applicable
PartialPartial Day
PMAfternoon

Dwelling Arrangement

1669Boarding house
1670Cooperative house
1671Crisis shelter
1672Disaster shelter
1673Residential school/dormitory
1674Family residence - Both Parents/Guardians
1675Foster home
1676Institution
1677Prison or juvenile detention center
1678Rooming house
1679Transient shelter
167IIndependent
167oFamily residence - One Parent/Guardian
1680No home (Homeless Youth)
1681Other dormitory
168AArranged by State - Out of Home Care
3425Group home/halfway house
4000Boarder
9999Other

Education Agency Type

01Jurisdictional agency
02Cross-jurisdictional agency
03Intra-jurisdictional agency
99Other

Electronic Id Type

01Barcode
02Magstripe
03PIN
04RFID

Email Type

01Primary
02Alternate 1
03Alternate 2
04Alternate 3
05Alternate 4

Employment Type

1Senior management in large business organisation, government administration and defence and qualified professionals.
2Other business manages, arts/media/sportspersons and associate professionals
3Tradsesmen/women, clerks and skilled office, sales and service staff
4Machine Operators, hospitality staff, assistants, labourers and related workers
8Out of employed work for 12 months or more (If less use previous occupational group.)
9Unknown

English Proficiency

0Not Stated/Inadequately described
1Very well
2Well
3Not well
4Not at all
9Not Applicable - English is 'first language spoken' and do not 'speak a language other than English at home'.

Enrollment Time Frame

CCurrent
FFuture
HHistorical

Entry Type

0998Temporary enrolment
1821Transfer from a public school in the same district
1822Transfer from a public school in a different district in the same jurisdiction
1823Transfer from a public school in a different jurisdication
1824Transfer from a private, non-religiously-affiliated school in the same district
1825Transfer from a private, non-religiously-affiliated school in a different district
1826Transfer from a private, non-religiously-affiliated school in a different jurisdiction
1827Transfer from a private, religiously-affiliated school in the same district
1828Transfer from a private, religiously-affiliated school in a different district in the same jurisdiction
1829Transfer from a private, religiously-affiliated school in a different jurisdiction
1830Transfer from a school outside of the country
1831Transfer from an institution
1833Transfer from home schooling
1835Re-entry from the same school with no interruption of schooling
1836Re-entry after a voluntary withdrawal
1837Re-entry after an involuntary withdrawal
1838Original entry into an Australian school
1839Original entry into an Australian school from a foreign country with no interruption in schooling
1840Original entry into an Australian school from a foreign country with an interruption in schooling
9999Other

Exit/Withdrawal Status

1905Permanent exit/withdrawal
1906Temporary exit/withdrawal
9999Unknown

Exit/Withdrawal Type

1907Student is in a different public school in the same district
1908Transferred to a public school in a different local education agency in the same jurisdiction
1909Transferred to a public school in a different jurisdiction
1910Transferred to a private, non-religiously-affiliated school in the district
1911Transferred to a private, non-religiously-affiliated school in a different district the same jurisdiction
1912Transferred to a private, non-religiously-affiliated school in a different jurisdiction
1913Transferred to a private, religiously-affiliated school in the same district
1914Transferred to a private, religiously-affiliated school in a different district in the same jurisdiction
1915Transferred to a private, religiously-affiliated school in a different jurisdiction
1916Transferred to a school outside of the country
1917Transferred to an institution
1918Transferred to home schooling
1919Transferred to a charter school
1921Graduated with regular, advanced, International Baccalaureate, or other type of diploma
1922Completed school with other credentials
1923Died or is permanently incapacitated
1924Withdrawn due to illness
1925Expelled or involuntarily withdrawn
1926Reached maximum age for services
1927Discontinued schooling
1928Completed grade 12, but did not meet all graduation requirements
1930Enrolled in a postsecondary early admission program, eligible to return
1931Not enrolled, unknown status
3499Student is in the same local education agency and receiving education services, but is not assigned
3500Enrolled in an adult education or training program
3501Completed a state-recognized vocational education program
3502Not enrolled, eligible to return
3503Enrolled in a foreign exchange program, eligible to return
3504Withdrawn from school, under the age for compulsory attendance; eligible to return
3505Exited
3509Completed with a state-recognized equivalency certificate
9999Other

Federal Electorate

Federal Electorates from the Australian Electoral Commission

101Banks
102Barton
103Bennelong
104Berowra
105Blaxland
106Bradfield
107Calare
108Charlton
109Chifley
110Cook
111Cowper
112Cunningham
113Dobell
114Eden-Monaro
115Farrer
116Fowler
117Gilmore
118Grayndler
119Greenway
120Gwydir
121Hughes
122Hume
123Hunter
124Kingsford Smith
125Lindsay
126Lowe
127Lyne
128Macarthur
129Mackellar
130Macquarie
131itchell
132New England
133Newcastle
134North Sydney
135Page
136Parkes
137Parramatta
138Paterson
139Prospect
140Reid
141Richmond
142Riverina
143Robertson
144Shortland
145Sydney
146Throsby
147Warringah
148Watson
149Wentworth
150Werriwa
199Not Applicable (NSW)
201Aston
202Ballarat
203Batman
204Bendigo
205Bruce
206Calwell
207Casey
208Chisholm
209Corangamite
210Corio
211Deakin
212Dunkley
213Flinders
214Gellibrand
215Gippsland
216Goldstein
217Gorton
218Higgins
219Holt
220Hotham
221Indi
222Isaacs
223Jagajaga
224Kooyong
225La Trobe
226Lalor
227Mallee
228Maribyrnong
229McEwen
230McMillan
231Melbourne
232Melbourne Ports
233Menzies
234Murray
235Scullin
236Wannon
237Wills
299Not Applicable (VIC)
301Blair
302Bonner
303Bowman
304Brisbane
305Capricornia
306Dawson
307Dickson
308Fadden
309Fairfax
310Fisher
311Forde
312Griffith
313Groom
314Herbert
315Hinkler
316Kennedy
317Leichhardt
318Lilley
319Longman
320Maranoa
321McPherson
322Moncrieff
323Moreton
324Oxley
325Petrie
326Rankin
327Ryan
328Wide Bay
399Not Applicable (QLD)
401Adelaide
402Barker
403Boothby
404Grey
405Hindmarsh
406Kingston
407Makin
408Mayo
409Port Adelaide
410Sturt
411Wakefield
499Not Applicable (SA)
501Brand
502Canning
503Cowan
504Curtin
505Forrest
506Fremantle
507Hasluck
508Kalgoorlie
509Moore
510O'Connor
511Pearce
512Perth
513Stirling
514Swan
515Tangney
599Not Applicable (WA)
601Bass
602Braddon
603Denison
604Franklin
605Lyons
699Not Applicable (TAS)
701Lingiari
702Solomon
799Not Applicable (NT)
801Canberra
802Fraser
899Not Applicable (ACT)
999Not Applicable

FTPT Status Code

01Full Time
02Part Time

Immunisation Certificate Status

CComplete
IIncomplete
NNot Sighted

Indigenous Status

1Aboriginal but not Torres Strait Islander Origin
2Torres Strait Islander but Not Aboriginal Origin
3Both Torres Strait and Aboriginal Origin
4Neither Aboriginal or Torres Strait Origin
9Not Stated/Unknown

Language Type

1Main Language Spoken at Home
2Main Language Other Than English Spoken at Home,
3First Language Spoken
4Language Spoken at Home
5Language of Greatest Competency
6Preferred Language
9Other

Name Usage Type

AKAAlso known as or alias
BTH Name at Birth
LGLLegal Name of the client as defined by the organisation which collects it (legal not defined in this standard)
MDNMaiden Name
NEWNew born identification name
OTHNon specific name usage type
PRFPreferred name
PRVPrevious name
STGStage name
TRBTribal Name

Non-School Education

0Not stated/Unknown
5Certificate I to IV (including trade certificate)
6Advanced diploma/Diploma
7Bachelor degree or above
8No non-school qualification

Operational Status

BBuilding or Construction Started
CClosed
OOpen
PPending
SSite
UUnstaffed

Permanent Resident Status

99Unknown
NNot a Resident
PPermanent Resident
TTemporary Resident

Picture Source

01URL
02JPG
03Bitmap
04Gif
05PIF
06PDF
09Other
10MIME

Program Funding Source Code

1State/Jurisdiction
2Commonwealth Initiative
3School Source
4Director's Discretion
5Community Sponsored
9Other

Progress Level

AboveAbove level
AtAt level
BelowBelow level

Public School Catchment Status

1652Resident of usual school catchment area
1653Resident of another school catchment area
9999Unknown

Relationship To Student

01Parent
02Step-Parent
03Adoptive Parent
04Foster Parent
05Host Family
06Relative
07Friend
08Self
09Other
10Sibling
11Grandparent
12Aunt/Uncle
13Nephew/Niece
99Not provided

School Co-Ed Status

CCo-Educational
FFemale
MMale

School Education Level Type

0Not stated/Unknown
1Year 9 or equivalent or below
2Year 10 or equivalent
3Year 11 or equivalent
4Year 12 or equivalent

School Enrollment Type

01Home School
02Other School
03Concurrent Enrolment

School Focus Code

01Regular
02Special Ed
03Alternate
04Vocational
98Other
99Not Provided

School Level

CampCamp
CommtyCommunity College
EarlyChEarly Childhood
JunPriJunior Primary
KgartenKindergarten only
KindPreschool/Kindergarten
LangLanguage
MCHMaternal Child Health Centre
MiddleMiddle School
OtherOther
PreSchPreSchool only
Pri/SecPrimary/Seconday Combined
PrimPrimary
SecSecondary
SeniorSenior Secondary School
SpecialSpecial
SpecifSpecific Purpose
SuppSupportCentre
UnknownUnknown

School Location

1Metropolitan Zone
1.1State Capital regions - State Capitals (except Hobart, Darwin)
1.2Major urban Statistical Districts (Pop >=100 000)
2Provincial Zone
2.1.1Provincial City Statistical Districts (Pop 50 000 - 99 999)
2.1.2Provincial City Statistical Districts (Pop 25 000 - 49 999)
2.2.1Inner Provincial areas (CD ARIA Plus score <= 2.4)
2.2.2Outer Provincial areas (CD ARIA Plus score > 2.4 and <= 5.92)
3Remote Zone
3.1Remote areas (CD ARIA Plus score > 5.92 and <= 10.53)
3.2Very Remote areas (CD ARIA Plus score > 10.53)

School Sector Code

GovGovernment School
NGNon-Government School

School System

Codes provided by DEEWR

0001Catholic
0002Anglican
0003Lutheran
0004Seventh Day Adventist
9999Other

Session Type

0827Full school year
0828Semester
0829Trimester
0830Quarter
0832Mini-term
0833Summer term
0837Twelve month
9999Other

Sex Code

1Male
2Female
9Not Stated/Inadequately Described

Source Code Type

CProvided by the child (ie pupil)
OOther
PProvided by the parent
SAscribed by the current school
TAscribed by a previous school

Standard Australian Classification of Countries (SACC)

ABS 1269.0 - Standard Australian Classification of Countries (SACC), Second Edition

0000Inadequately Described
0001At Sea
0003Not Stated
0911Europe, nfd
0912Former USSR, nfd
0913Former Yugoslavia, nfd
0914Former Czechoslovakia, nfd
0915Kurdistan, nfd
0916East Asia, nfd
0917Asia, nfd
0918Africa, nfd
0921Serbia and Montenegro, nfd
0922Channel Islands, nfd
0923United Kingdom, nfd
1000Oceania and Antarctica, nfd
1100Australia (includes External Territories), nfd
1101Australia
1102Norfolk Island
1199Australian External Territories, nec
1201New Zealand
1300Melanesia, nfd
1301New Caledonia
1302Papua New Guinea
1303Solomon Islands
1304Vanuatu
1400Micronesia, nfd
1401Guam
1402Kiribati
1403Marshall Islands
1404Micronesia, Federated States of
1405Nauru
1406Northern Mariana Islands
1407Palau
1500Polynesia (excludes Hawaii), nfd
1501Cook Islands
1502Fiji
1503French Polynesia
1504Niue
1505Samoa
1506Samoa, American
1507Tokelau
1508Tonga
1511Tuvalu
1512Wallis and Futuna
1513Pitcairn Islands
1599Polynesia (excludes Hawaii), nec
1600Antarctica, nfd
1601Adélie Land (France)
1602Argentinian Antarctic Territory
1603Australian Antarctic Territory
1604British Antarctic Territory
1605Chilean Antarctic Territory
1606Queen Maud Land (Norway)
1607Ross Dependency (New Zealand)
2000North-West Europe, nfd
2100United Kingdom, Channel Islands and Isle of Man, nfd
2102England
2103Isle of Man
2104Northern Ireland
2105Scotland
2106Wales
2107Guernsey
2108Jersey
2201Ireland
2300Western Europe, nfd
2301Austria
2302Belgium
2303France
2304Germany
2305Liechtenstein
2306Luxembourg
2307Monaco
2308Netherlands
2311Switzerland
2400Northern Europe, nfd
2401Denmark
2402Faroe Islands
2403Finland
2404Greenland
2405Iceland
2406Norway
2407Sweden
2408Aland Islands
3000Southern and Eastern Europe, nfd
3100Southern Europe, nfd
3101Andorra
3102Gibraltar
3103Holy See
3104Italy
3105Malta
3106Portugal
3107San Marino
3108Spain
3200South Eastern Europe, nfd
3201Albania
3202Bosnia and Herzegovina
3203Bulgaria
3204Croatia
3205Cyprus
3206Former Yugoslav Republic of Macedonia (FYROM)
3207Greece
3208Moldova
3211Romania
3212Slovenia
3214Montenegro
3215Serbia
3216Kosovo
3300Eastern Europe, nfd
3301Belarus
3302Czech Republic
3303Estonia
3304Hungary
3305Latvia
3306Lithuania
3307Poland
3308Russian Federation
3311Slovakia
3312Ukraine
4000North Africa and the Middle East, nfd
4100North Africa, nfd
4101Algeria
4102Egypt
4103Libya
4104Morocco
4105Sudan
4106Tunisia
4107Western Sahara
4108Spanish North Africa
4200Middle East, nfd
4201Bahrain
4202Gaza Strip and West Bank
4203Iran
4204Iraq
4205Israel
4206Jordan
4207Kuwait
4208Lebanon
4211Oman
4212Qatar
4213Saudi Arabia
4214Syria
4215Turkey
4216United Arab Emirates
4217Yemen
5000South-East Asia, nfd
5100Mainland South-East Asia, nfd
5101Burma (Myanmar)
5102Cambodia
5103Laos
5104Thailand
5105Vietnam
5200Maritime South-East Asia, nfd
5201Brunei Darussalam
5202Indonesia
5203Malaysia
5204Philippines
5205Singapore
5206East Timor
6000North-East Asia, nfd
6100Chinese Asia (includes Mongolia), nfd
6101China (excludes SARs and Taiwan)
6102Hong Kong (SAR of China)
6103Macau (SAR of China)
6104Mongolia
6105Taiwan
6200Japan and the Koreas, nfd
6201Japan
6202Korea, Democratic People's Republic of (North)
6203Korea, Republic of (South)
7000Southern and Central Asia, nfd
7100Southern Asia, nfd
7101Bangladesh
7102Bhutan
7103India
7104Maldives
7105Nepal
7106Pakistan
7107Sri Lanka
7200Central Asia, nfd
7201Afghanistan
7202Armenia
7203Azerbaijan
7204Georgia
7205Kazakhstan
7206Kyrgyzstan
7207Tajikistan
7208Turkmenistan
7211Uzbekistan
8000Americas, nfd
8100Northern America, nfd
8101Bermuda
8102Canada
8103St Pierre and Miquelon
8104United States of America
8200South America, nfd
8201Argentina
8202Bolivia
8203Brazil
8204Chile
8205Colombia
8206Ecuador
8207Falkland Islands
8208French Guiana
8211Guyana
8212Paraguay
8213Peru
8214Suriname
8215Uruguay
8216Venezuela
8299South America, nec
8300Central America, nfd
8301Belize
8302Costa Rica
8303El Salvador
8304Guatemala
8305Honduras
8306Mexico
8307Nicaragua
8308Panama
8400Caribbean, nfd
8401Anguilla
8402Antigua and Barbuda
8403Aruba
8404Bahamas
8405Barbados
8406Cayman Islands
8407Cuba
8408Dominica
8411Dominican Republic
8412Grenada
8413Guadeloupe
8414Haiti
8415Jamaica
8416Martinique
8417Montserrat
8418Netherlands Antilles
8421Puerto Rico
8422St Kitts and Nevis
8423St Lucia
8424St Vincent and the Grenadines
8425Trinidad and Tobago
8426Turks and Caicos Islands
8427Virgin Islands, British
8428Virgin Islands, United States
8431St Barthelemy
8432St Martin (French part)
9000Sub-Saharan Africa, nfd
9100Central and West Africa, nfd
9101Benin
9102Burkina Faso
9103Cameroon
9104Cape Verde
9105Central African Republic
9106Chad
9107Congo
9108Congo, Democratic Republic of
9111Côte d'Ivoire
9112Equatorial Guinea
9113Gabon
9114Gambia
9115Ghana
9116Guinea
9117Guinea-Bissau
9118Liberia
9121Mali
9122Mauritania
9123Niger
9124Nigeria
9125Sao Tomé and Principe
9126Senegal
9127Sierra Leone
9128Togo
9200Southern and East Africa, nfd
9201Angola
9202Botswana
9203Burundi
9204Comoros
9205Djibouti
9206Eritrea
9207Ethiopia
9208Kenya
9211Lesotho
9212Madagascar
9213Malawi
9214Mauritius
9215Mayotte
9216Mozambique
9217Namibia
9218Réunion
9221Rwanda
9222St Helena
9223Seychelles
9224Somalia
9225South Africa
9226Swaziland
9227Tanzania
9228Uganda
9231Zambia
9232Zimbabwe
9299Southern and East Africa, nec

State Territory Code

ACTAustralian Capital Teritory
NSWNew South Wales
NTNorthern Territory
QLDQueensland
SASouth Australia
TASTasmania
VICVictoria
WAWestern Australia
XXXNot Provided

Student/Family Program Type

0100Agricultural
0240Regular prekindergarten program
0241Infant and toddlers program
0242Special education services for Birth-Age 2
0244Special education services for preschoolers
0245Migrant early childhood program
0246Head Start
0247Day care
0248After school child care
0249Alternative education program
0250Before school child care
0251Bilingual education
0252Community service projects
0253Compensatory education
0255Counseling
0256English as a second language
0257Free and reduced price school meals programs
0260Hearing or vision screening
0261Higher order thinking skills
0262Medical services
0263Programs for migrants during the school year
0265Programs for migrants during the summer
0267Reading/literacy
0268School supplies
0269Services for out-of-school youth
0270Special education program
0271Special (one-time) events
0272Student assistance programs such as counseling, mentoring, identification and referral
0273Summer child care
0277Transportation
0278Tutoring/remedial instruction
0279Academic/instructional program in regular education
0280Adult basic education/remedial instruction
0281Child care so that parents can attend school meetings
0282Continuing professional education
0283Health or social services
0284Literacy
0285Occupational education
0286Orientation to school setting for new families
0287Parent training/involvement
0288Parenting education
0289Recreational/advocational program
0342Technology
0875After school enrichment
0876Before school enrichment
2381Gifted and talented (Accelerated)
2389Even Start
2393Magnet program
9999Other

Systemic Status

Codes provided by DEEWR

NNon-Systemic
SSystemic

Telephone Number Type

0096Main telephone number
0350Alternate telephone number
0359Answering service
0370Beeper number
0400Appointment telephone number
0426Telex number
0437Telemail
0448Voice mail
0478Instant messaging number
0486Media conferencing number
0888Mobile
2364Facsimile number

Visa Statistical Code

00Subsidised by the Australian Government
01AusAid scholarship holder
02Defence/EMSS personnel
03IPRS, AEAP, AGAP, CSFP scholarshipholder
04Full Fee Paying - International Fee paying student
05Other Australian Government Assisted
06Approved Australian non-government scholarship
07Higher Education Institution Scholarship
08Family Unit exempt from National Charging Policy
09National Foreign Government or multi-lateral agency sponsored

Visa Sub Class

10Bridging Visa Class A
20Bridging Visa Class B
30Bridging Visa Class C
40Bridging Visa (Prospective Applicant)
41Bridging Visa (Non-Applicant)
42Bridging Visa Class A
50Bridging Visa (General)
51Bridging Visa (Protection Visa Applicant)
70Removal Pending Bridging Visa
100Spouse
101Child
102Adoption
103Parent
104Preferential family
105Skilled - Australian Linked
106Regional-linked
110Interdependency
113Aged Parent
114Aged Dependent Relative
115Remaining Relative
116Carer
117Orphan Relative
118Designated Parent
119Regional Sponsored Migration Scheme
120Labour Agreement
121Employer nomination
124Distinguished talent
125Distinguished talent and special service - independent
126Independent
127Business Owner (No longer issued)
128Senior Executive (No longer issued)
129State/Territory sponsored business owner (NLI)
130State/Territory Sponsored Senior Executive (NLI)
131Investment-linked (No longer issued)
132Business Talent (No longer issued)
134Skill Matching
135State/Territory nominated independent
136Skilled - Independent
137Skilled - State/Territory nominated independent
138Skilled - Australian sponsored
139Skilled Designated Area-sponsored (No longer issued)
143Contributory Parent
150Former citizen
151Former resident
152Family of NZ citizen
154Resident Return
155Five year resident return
156One Year Resident Return (No longer Issued)
157Three month resident return
159Provisional resident return
160Business Owner (Provisional)
161Senior Executive (Provisional)
162Investor (Provisional)
163State/Territory Sponsored Business Owner (Prov.)
164State/Territory Sponsored Senior Executive (Prov.)
165State/Territory Sponsored Investor (Provisional)
173Contributory Parent (Temporary)
175Skilled - independent
176Skilled - sponsored
200Refugee
201In-country special humanitarian
202Global special humanitarian
203Emergency rescue
204Woman at risk
205Camp clearance
208East Timorese in Portugal,Macau or Mozambique
209Citizen of former Yugoslavia - displaced person
210Minorities of former USSR
211Burmese in Burma
212Sudanese
213Burmese in Thailand
214Cambodian
215Sri Lankan - special assistance
216Ahmadi
217Vietnamese
300Prospective marriage
302Emergency (Permanent Visa Applicant)
303Emergency (Temporary Visa Applicant)
309Spouse (provisional)
310Interdependency (provisional)
410Retirement
411Exchange
412Independent Executive
413Business Executive
414Business Specialist
415Foreign government agency
416Special program
417Working holiday
418Educational
419Visiting academic
420Entertainment
421Sport
422Medical practitioner
423Media and film staff
424Public lecturer
425Family relationship
426Domestic worker - diplomatic or consular
427Domestic worker - executive
428Religious worker
430Supported dependant
432Expatriate
435Sri Lankan
442Occupational Trainee
443Citizens of former Yugoslavia
444Special Category
445Dependent Child
446Confirmatory (Temporary)
447Secondary Movement Offshore Entry (Temporary)
448Kosovar Safe Haven
449Humanitarian Stay (Temporary)
450Resolution of Status - Family member (Temporary)
451Secondary Movement Relocation (Temporary)
456Business - Short Stay
457Business - long stay
459Sponsored Business Visitor (short stay)
461New Zealand Citizen Family Relationship
462Work and Holiday
470Professional Development
471Trade Skills Training
475Skilled Regional Sponsored
485Skilled - Graduate
487Skilled - Regional Sponsored
495Skilled Independent Regional (Temporary)
496Skilled - Designated Area Sponsored (Provisional)
497Graduate - Skilled
499Olympic (Support) (No longer issued)
560Student (No longer issued)
562Iranian Postgraduate Student
563Iranian Postgraduate Student Dependent
570Student - ELICOS
571Student - Schools
572Student - VET
573Student - Higher Education
574Student - Masters & Doctorate
575Student - Non-Award Foundation
576Student - AusAID & Defence
580Student Guardian Visa
675Medical treatment - short stay
676Tourist - short stay
679Sponsored Family Visitor (short stay)
685Medical treatment - Long Stay
686Tourist - Long Stay
695Temporary Provisional - Pending return
771Transit
773Border
785Temporary Protection
786Temporary (Humanitarian Concern)
800Territorial Asylum
801Spouse
802Child
804Aged Parent
805Skilled
806Family
808Confirmatory Residence
814Interdependency
819Aged Parent
820Spouse
826Interdependency
831Prospective marriage spouse
832Close Ties
833Certain unlawful non-citizens
834Permanent resident of Norfolk Island
835Remaining Relative
836Carer
837Orphan Relative
838Aged Dependant Relative
840Business Owner
841Senior Executive
842State/Territory sponsored business owner
843State/Territory sponsored senior executive
844Investment-linked
845Established Business in Australia
846State/Territory Sponsored Regional Established Busin
850Resolution Status (Temporary)
851Resolution of Status
852Witness Protection
855Labour Agreement
856Employer Nomination Scheme
857Regional Sponsored Migration Scheme
858Distinguished Talent
859Designated Parent
861Skilled - Onshore Independent New Zealand Citizen
862Skilled Australian-sponsored New Zealand Citizen
863Skilled Designated Area-sponsored N. Zealand Citizen
864Contributory Aged Parent (Residence)
866Protection
880Skilled - Independent Overseas Student
881Skilled - Australian-sponsored Overseas Student
882Skilled - Designated Area-sponsored Overseas Student
883Skilled Designated Area Sponsored (Residence) visa
884Contributory Aged Parent (Temporary)
885Skilled - Independent
886Skilled - Sponsored
887Skilled - Regional
890Business Owner
891Investor
892State/Territory sponsored business owner
893State/Territory sponsored senior executive
956Electronic Travel Authority - Business - Long
976Electronic Travel Authority - Visitor
977Electronic Travel Authority - Business - Short
995Diplomatic (Temporary)
998Declaratory

Year Level Code

1Year 1
2Year 2
3Year 3
4Year 4
5Year 5
6Year 6
7Year 7
8Year 8
9Year 9
10Year 10
11Year 11
12Year 12
13Year 13
KKindergarten
PPrep
PSPre-School
UGUngraded

Yes Or No Category

NNo
UUnknown
XNot Provided
YYes

Infrastructure

Status Code

0Success (ZIS ONLY). SIF_Status/SIF_Data may contain additional data.
1Immediate SIF_Ack (AGENT ONLY). Message is persisted or processing is complete. Discard the referenced message.
2Intermediate SIF_Ack (AGENT ONLY). Only valid in response to SIF_Event delivery. Invokes Selective Message Blocking. The event referenced must still be persisted, and no other events must be delivered, until the agent sends a "Final" SIF_Ack at a later time.
3Final SIF_Ack (AGENT ONLY). Sent (a SIF_Ack with this value is never returned by an agent in response to a delivered message) by an agent to the ZIS to end Selective Message Blocking. Discard the referenced event and allow for delivery of other events.
7Already have a message with this SIF_MsgId from you.
8Receiver is sleeping.
9No messages available. This is returned when an agent is trying to pull messages from a ZIS and there are no messages available.

Error Category

The following table describes the functional areas where an error may occur in SIF. When a SIF_Error element is returned within a SIF_Ack message, the SIF_Error/SIF_Category element MUST contain one of the values from the table.

The next tables present the error codes that must be used when constructing a SIF_Error element. The value of SIF_Error/SIF_Code must come from these lists unless the functional category is System where error codes not defined in these tables can be included.

0Unknown (This should NEVER be used if possible)
1XML Validation
2Encryption
3Authentication
4Access and Permissions
5Registration
6Provision
7Subscription
8Request and Response
9Event Reporting and Processing
10Transport
11System (OS, Database, Vendor localized, etc.)
12Generic Message Handling
13SMB Handling

XML Validation Error

1Generic error
2Message is not well-formed
3Generic validation error
4Invalid value for element/attribute
6Missing mandatory element/attribute

Encryption Error

1Generic error

Authentication Error

1Generic error
2Generic authentication error (with signature)
3Missing sender's certificate
4Invalid certificate
5Sender's certificate is not trusted
6Expired certificate
7Invalid signature
8Invalid encryption algorithm (only accepts MD4)
9Missing public key of the receiver (when decrypting message)
10Missing receiver's private key (when decrypting message)

Access and Permission Error

1Generic error
2No permission to register
3No permission to provide this object
4No permission to subscribe to this SIF_Event
5No permission to request this object
6No permission to respond to this object request
7No permission to publish SIF_Event
8No permission to administer policies
9SIF_SourceId is not registered
10No permission to publish SIF_Event Add
11No permission to publish SIF_Event Change
12No permission to publish SIF_Event Delete

Registration Error

1Generic error
2The SIF_SourceId is invalid
3Requested transport protocol is unsupported
4Requested SIF_Version(s) not supported.
6Requested SIF_MaxBufferSize is too small
7ZIS requires a secure transport
9Agent is registered for push mode (returned when a push-mode agent sends a SIF_GetMessage).
10ZIS does not support the requested Accept-Encoding value.

Provision Error

1Generic error
3Invalid object
4Object already has a provider (SIF_Provide message)

Subscription Error

1Generic error
3Invalid object

Request and Response Error

1Generic error
3Invalid object
4No provider
7Responder does not support requested SIF_Version
8Responder does not support requested SIF_MaxBufferSize
9Unsupported query in request
10Invalid SIF_RequestMsgId specified in SIF_Response
11SIF_Response is larger than requested SIF_MaxBufferSize
12SIF_PacketNumber is invalid in SIF_Response
13SIF_Response does not match any SIF_Version from SIF_Request
14SIF_DestinationId does not match SIF_SourceId from SIF_Request
15No support for SIF_ExtendedQuery
16SIF_RequestMsgId deleted from cache due to timeout
17SIF_RequestMsgId deleted from cache by administrator
18SIF_Request cancelled by requesting agent

Event Reporting and Processing Error

1Generic error
3Invalid event

Transport Error

1Generic error
2Requested protocol is not supported
3Secure channel requested and no secure path exists
4Unable to establish connection

System Error

1Generic error

Generic Message Handling Error

1Generic error
2Message not supported
3Version not supported
4Context not supported
5Protocol error
6No such message (as identified by SIF_OriginalMsgId)
7Multiple contexts not supported

SMB Error

1Generic error
2SMB can only be invoked during a SIF_Event acknowledgement
3Final SIF_Ack expected from Push-Mode Agent
4Incorrect SIF_MsgId in final SIF_Ack

SIF_LogEntry

Agent Error Condition

1An exception has occurred in the agent (generic error)

Data Issues with Failure Result

1Insufficient information in message
2Cannot process change due to business rule
3Related information unavailable

Data Issues with Success Result

1Data was changed to complete request successfully
2Data was added to complete request successfully

Success Category

1Success

ZIS Error Condition

1An exception has occurred in the ZIS (generic error)
2Message could not be delivered due to buffer size limitations
3Message could not be delivered due to minimum security requirements
4Message could not be delivered due to destination agent not supporting SIF_Version
5Message could not be delivered due to SIF_Response validation

Appendix C: External Code Sets

All code sets defined by external bodies and referenced within SIF are included here for reference. The left column in each table contains the individual code values that are used in SIF elements and attributes that reference these code sets. These sets of code values are closed and normative for a given version of this specification. Including codes not provided here in corresponding SIF elements and attributes can lead to XML validation errors in installations where the zone integration server or any agent is validating XML messages; the SIF data model allows for locally-defined codes, where deemed appropriate, in the OtherCodeList element. The right column of each table may provide a textual equivalent or description of the corresponding code, and is provided for informational purposes only. The referenced sources for these code sets serve as the authorities for all descriptions and semantics, and for the definition and maintenance of the code set values themselves. In each release of this specification the SIF Association endeavors to synchronize referenced code sets with updates from external sources.

International Standards Organization (ISO)

4217 Currency names and code elements

AEDUAE Dirham
AFNAfghani
ALLLek
AMDArmenian Dram
ANGNetherlands Antillian Guikder
AOAKwanza
ARSArgentine Peso
AUDAustralian Dollar
AWGAruban Guilder
AZNAzerbaijanian Manat
BAMConvertible Marks
BBDBarbados Dollar
BDTTaka
BGNBulgarian Lev
BHDBahraini Dinar
BIFBurundi Franc
BMDBermudian Dollar (customarily known as Bermuda Dollar)
BNDBrunei Dollar
BOBBoliviano
BOVMvdol
BRLBrazilian Real
BSDBahamian Dollar
BTNNgultrum
BWPPula
BYRBelarussian Ruble
BZDBelize Dollar
CADCanadian Dollar
CDFFranc Congolais
CHEWIR Euro
CHFSwiss Franc
CHWWIR Franc
CLFUnidades de formento
CLPChilean Peso
CNYYuan Renminbi
COPColombian Peso
COUUnidad de Valor Real
CRCCosta Rican Colon
CSDSerbian Dinar
CUPCuban Peso
CVECape Verde Escudo
CYPCyprus Pound
CZKCzech Koruna
DJFDjibouti Franc
DKKDanish Krone
DOPDominican Peso
DZDAlgerian Dinar
EEKKroon
EGPEgyptian Pound
ERNNakfa
ETBEthiopian Birr
EUREuro
FJDFiji Dollar
FKPFalkland Islands Pound
GBPPound Sterling
GELLari
GHCCedi
GIPGibraltar Pound
GMDDalasi
GNFGuinea Franc
GTQQuetzal
GWPGuinea-Bissau Peso
GYDGuyana Dollar
HKDHong Kong Dollar
HNLLempira
HRKCroatian Kuna
HTGGourde
HUFForint
IDRRupiah
ILSNew Israeli Sheqel
INRIndian Rupee
IQDIraqi Dinar
IRRIranian Rial
ISKIceland Krona
JMDJamaican Dollar
JODJordanian Dinar
JPYYen
KESKenyan Shilling
KGSSom
KHRRiel
KMFComoro Franc
KPWNorth Korean Won
KRWWon
KWDKuwaiti Dinar
KYDCayman Islands Dollar
KZTTenge
LAKKip
LBPLebanese Pound
LKRSri Lanka Rupee
LRDLiberian Dollar
LSLLoti
LTLLithuanian Litas
LVLLatvian Lats
LYDLibyan Dinar
MADMoroccan Dirham
MDLMoldovan Leu
MGAMalagascy Ariary
MKDDenar
MMKKyat
MNTTugrik
MOPPataca
MROOuguiya
MTLMaltese Lira
MURMauritius Rupee
MVRRufiyaa
MWKKwacha
MXNMexican Peso
MXVMexican Unidad de Inversion (UID)
MYRMalaysian Ringgit
MZNMetical
NADNamibian Dollar
NGNNaira
NIOCordoba Oro
NOKNorwegian Krone
NPRNepalese Rupee
NZDNew Zealand Dollar
OMRRial Omani
PABBalboa
PENNuevo Sol
PGKKina
PHPPhilippine Peso
PKRPakistan Rupee
PLNZloty
PYGGuarani
QARQatari Rial
ROLOld Leu
RONNew Leu
RUBRussian Ruble
RWFRwanda Franc
SARSaudi Riyal
SBDSolomon Islands Dollar
SCRSeychelles Rupee
SDDSudanese Dinar
SEKSwedish Krona
SGDSingapore Dollar
SHPSaint Helena Pound
SITTolar
SKKSlovak Koruna
SLLLeone
SOSSomali Shilling
SRDSurinam Dollar
STDDobra
SVCEl Salvador Colon
SYPSyrian Pound
SZLLilangeni
THBBaht
TJSSomoni
TMMManat
TNDTunisian Dinar
TOPPa'anga
TRYNew Turkish Lira
TTDTrinidad and Tobago Dollar
TWDNew Taiwan Dollar
TZSTanzanian Shilling
UAHHryvnia
UGXUganda Shilling
USDUS Dollar
USNUS Dollar (Next day)
USSUS Dollar (Same day)
UYUPeso Uruguayo
UZSUzbekistan Sum
VEBBolivar
VNDDong
VUVVatu
WSTTala
XAFCFA Franc BEAC
XAGSilver
XAUGold
XBABond Markets Units European Composite Unit (EURCO)
XBBEuropean Monetary Unit (E.M.U.-6)
XBCEuropean Unit of Account 9 (E.U.A.-9)
XBDEuropean Unit of Account 17 (E.U.A.-17)
XCDEast Caribbean Dollar
XDRSDR
XFOGold-Franc
XFUUIC-Franc
XOFCFA Franc BCEAO
XPDPalladium
XPFCFP Franc
XPTPlatinum
XTSCode specifically reserved for testing purposes
XXXCode assigned for transactions where no currency is involved
YERYemeni Rial
ZARRand
ZMKKwacha
ZWNZimbabwe Dollar

Appendix D: Notes on Related Technologies

This partially normative appendix highlights technologies leveraged within SIF or related to SIF, either in their entirety or as a subset. It points out specifics casual readers of referenced documents on these technologies must not ignore when implementing SIF Zone Integration Servers and Agents.

D.1 SIF and HTTP(S)

SIF uses a small subset of HTTP 1.1 (SIF HTTP), as defined in Infrastructure Transport Layer , to promote interoperability. This section also defines a secure transport for SIF HTTP, SIF HTTPS, the required and default transport layer for use in SIF.

D.2 SIF and URLs

Zone Integration Servers and Push-mode Agents, when using SIF HTTPS or SIF HTTP, are addressable by an http or https Uniform Resource Locator (URL). As far as HTTP is concerned, these are simply formatted strings; no assumptions should be made about their format (e.g. that all ZIS URLs consist of a host, port and Zone ID, or that all agent URLs consist of a host, port and Agent ID) beyond the http and https schemes and the consituent parts from the generic URI (Uniform Resource Identifier) syntax [RFC 2396].

http://host[:port][abs_path[?query]]
http://host[:port][abs_path[?query]]

Just because one Zone Integration Server seems to follow a certain convention with regard to its URLs, e.g.:

http://www.YourZIS.com/YourZone

does not imply another Zone Integration Server will not have a completely different format for a URL, for instance:

http://www.ZISesAreUs.com:8080/applications/ZIS;version=2.3.1?zone=ZoneA&cust=2A9823B2

or that a vendor's product might not change its URL conventions.

The same applies to URLs that address Push-mode Agents; conventions for URLs, within the general formatting that applies to URLs, can and do vary widely.

Zone Integration Servers and Agents MUST treat SIF HTTPS and SIF HTTP URLs as whole strings, whose only format rules stem from associated standards. This promotes interoperability as Zone administrators deploy Zone Integration Servers and Agents with different Zone configurations and products from different vendors.

D.3 SIF and XML

With its use in both Infrastructure and the SIF Data Model, SIF is greatly dependent on the structure and syntax of XML 1.0 [XML]. SIF excludes the use of the doctypedecl syntax from the optional prolog with which every XML document may begin. This implies that Zone Integration Servers and Agents MUST NOT reference an external DTD or internal DTD subset using the doctypedecl production (e.g. <!DOCTYPE SIF_Message ... !>).

This should not be construed to imply that the rest of the XML prolog may not preface a SIF message, even though it never occurs in examples within this specification, being superfluous within SIF. As SIF mandates the use of XML 1.0, the character encoding of UTF-8 (contained in the HTTP Content-Type header), and all SIF messages are standalone due to the exclusion of doctypedecl above, the values that can be communicated in the XML prolog are fixed within SIF. This implies that if a Zone Integration Server or Agent includes an XML prolog before a SIF message, it MUST take one of the following or equivalent forms (equivalent including case-insensitive character encoding names, XML's choice with regard to single or double quotes and optional spacing):

<?xml version="1.0"?>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" standalone="yes"?>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

D.4 SIF and Unicode

The character set supported in XML 1.0 is Unicode/ISO 10646, a character set designed to be universal in nature with regard to its support for previously used character sets in the computer industry, ability to represent most human languages, numbers, commonly used symbols, etc. Thus the character set supported in SIF is Unicode/ISO 10646. If a Zone Integration Server or SIF-enabled application does not support Unicode/ISO 10646 internally, it MUST map Unicode/ISO 10646 to its local character set upon receipt of a SIF message and MUST map its local character set to Unicode/ISO 10646 when sending or responding to a SIF message. To promote interoperability and prevent loss of data in these conversions, it is RECOMMENDED that all Zone Integration Servers and SIF-enabled applications support Unicode/ISO 10646.

SIF HTTP further requires that the Unicode/ISO 10646 character set be encoded using the UTF-8 character encoding; Zone Integration Servers and Agents MUST encode SIF XML messages using UTF-8. To further promote interoperability, when the SIF Infrastructure or Data Model specifies that an octet/byte-based transformation of a text/string value be stored in a given element or attribute (e.g. Base64 encoding, hash value, encrypted form), Zone Integration Servers and Agents MUST convert the local character set of the value to Unicode/ISO 10646 if necessary, encode the resulting value using UTF-8, then apply the specified transformation.

D.5 SIF and XPath

SIF uses a small subset of XPath 1.0 [XPATH] in its own path syntax for referencing elements/attributes. This is defined in SIF_Element Syntax. This document may often use the same notation in referring to nested elements and/or attributes (e.g. Name/FirstName, Name/@Type), though it may include an object as the root element whereas the SIF_Element syntax does not (e.g. StudentPersonal/Name/FirstName, StudentPersonal/@RefId).

D.6 SIF and XML Schema

The SIF Association hosts and provides XML Schemas [SCHEMA] for validating SIF messages, should Zone Integration Servers or Agents choose to perform message validation. These schemas leverage basic data types and structures as defined in that document. When these types and structures are referenced in this document they are prefixed with xs:.

Note that due to the ability of Zone Integration Servers and Agents to omit elements from data objects in the SIF Request/Response and SIF Event models, all elements defined as mandatory for SIF data objects in Infrastructure or Data Model and referenced common elements are defined as optional in the schema for validating any SIF_Message. The SIF Association hosts and provides alternate schemas that allow for validation of these data objects where mandatory elements cannot be omitted (e.g. in a Add event or in a SIF_Response where the SIF_Request did not specify a specific subset of elements to be returned from matching objects).

Notes on specific XML Schema types follow:

D.6.1 xs:boolean

Agents and Zone Integration servers SHOULD send values of true or false, but must understand equivalent 1 and 0 values.

D.6.2 xs:time

Agents and Zone Integration Servers MUST specify a time zone offset from UTC or indicate that the time is UTC unless the time zone is apparent locally from other elements/attributes per supplied documentation.

D.6.3 xs:date

Agents and Zone Integration Servers MAY specify a time zone offset or indicate UTC for dates, but in most cases do not need to do so unless zone activity spans great international distances.

D.6.4 xs:dateTime

Agents and Zone Integration Servers MUST specify a time zone offset from UTC or indicate that the time is UTC unless the time zone is apparent locally from other elements/attributes per supplied documentation.

Though use of a combined xs:dateTime may seem a natural fit for specifying a point in time, some SIF Association working groups and task forces prefer to separate xs:dateTime into element/attribute pairs of xs:date and xs:time per their object design/usage goals and/or for simplified quering. Applications wishing to query the date or time portion of xs:dateTime values may use comparison and boolean operators to do so.

D.7 SIF and XML Namespaces

Namespaces allow XML elements and attributes to be organized into units that allow for the separation of a set of names from others, effectively allowing the integration of XML defined from various sources to be included in the same XML document without risk of name/definition collisions. SIF has since its initial release used the default namespace attribute xmlns [XMLNS] in the SIF_Message element. To a namespace-aware parser, the effective names of the elements in:

<SIF_Message Version="1.5r1" xmlns="http://www.sifinfo.org/infrastructure/1.x"> <SIF_Event>...</SIF_Event> </SIF_Message>
Example D.7-1: SIF_Message Namespace

are conceptually:

with the local names:

To a namespace-aware parser, the effective names of these same elements in the SIF 2.x namespace:

<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/infrastructure/2.x"> <SIF_Event>...</SIF_Event> </SIF_Message>
Example D.7-2: SIF_Message Namespace

are conceptually:

with the local names:

A namespace-unaware parser simply interprets elements by their local names, and SIF 1.x and SIF 2.x elements are considered equivalent. If the local name is prefixed, a namespace-unaware parser considers the prefix and colon part of the name. To a namespace-unaware parser, xml:lang is named just that. To a namespace-aware parser, this is effectively http://www.w3.org/XML/1998/namespace:lang (the xml prefix is reserved in XML 1.0 and is always bound to this namespace in [XMLNS]) with a local name of lang.

Given the timing of the first release of SIF and the release of Namespaces in XML [XMLNS] it was never mandated in SIF that Zone Integration Servers and Agents be namespace-aware. Given the number of Zone Integration Servers and Agents that may at this point be namespace-unaware, it is not yet mandated that these components be namespace-aware, but this requirement may arise in a future major release of this specification. To allow for namespace-unaware parsers to reliably process SIF-defined XML by local names only, SIF messages MUST define the namespace for the corresponding SIF version as the default namespace of SIF_Message as documented in SIF_Message.

Furthermore, given the gradual proliferation of XML defined in other namespaces appearing in SIF XML, the following prefix-to-namespace mappings MUST be used should elements from these namespaces occur in SIF messages, to allow namespace-unaware parsers to reliably interpret names in these namespaces by local name:

PrefixNamespaceDeclaration
xmlhttp://www.w3.org/XML/1998/namespaceThis is bound and fixed by default without declaration.
xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xshttp://www.w3.org/2001/XMLSchemaxmlns:xs="http://www.w3.org/2001/XMLSchema"

It is RECOMMENDED that other namespaces occuring in SIF messages (e.g. XML from outside SIF included in assessments, exchange of student records, etc.) have fixed prefix mappings, but it is not required. Affected elements MAY locally change the default namespace as desired, given that the default namespace for the SIF_Message as a whole remains the namespace for the corresponding SIF version.

When a fixed prefix is not defined for a given namespace, a namespace-unaware agent will be unable to reliably process these elements by name when prefixes vary, and must become namespace-aware to do so. XML not defined by SIF that in turn contains SIF-defined XML MAY reference SIF XML by its own prefix mapping rather than specifying the namespace of the corresponding SIF version as the default namespace using xmlns.

It is RECOMMENDED that as Zone Integration Servers and Agents are updated in their release schedules, they use namespace-aware parsers or parser options if they are not doing so already.

D.8 SIF and UUIDs/GUIDs

SIF leverages Universally Unique Identifiers (UUIDs), or Globally Unique Identifiers (GUIDs), as message and object identifiers, or primary keys, and occasionally for element identifiers internal to objects, per [RFC 4122]. Note that SIF defines its own textual representation for GUIDs, uppercase and un-hyphenated (e.g. F81D4FAE7DEC11D0A76500A0C91E6BF6 vs. f81d4fae-7dec-11d0-a765-00a0c91e6bf6). It should also be noted with SIF being a distributed system, to avoid the possibility of GUID collisions, especially in the SIF data model, systems generating GUIDs SHOULD use version 1 GUIDs which are unique in space as well as time when an IEEE 802 MAC address is available. Systems MAY use version 4 GUIDs which use a (pseudo-)random number-based algorithm if an IEEE 802 MAC address is unavailable or if the inclusion of that address in a GUID poses a compromising security risk.

D.9 SIF and Web Services

SIF is a web service, "a software system designed to support interoperable machine-to-machine interaction over a network [WSARCH]." It is not a Web Service, as it lacks "an interface described in a machine-processable format (specifically WSDL) [WSARCH]." To meet this requirement and produce the Web Services Definition Language (WSDL) definition for SIF is a trivial exercise, creating a WSDL HTTP POST binding for the SIF_Message-in/SIF_Message-out exchange that describes the SIF HTTP(S) transport layer between Agents and ZIS, and between ZIS and Push-mode Agents. But the binding would be just that, a simple SIF_Message-in/SIF_Message-out exchange that doesn't capture the richness of the SIF infrastructure or necessarily provide the interoperability resulting from the precise definition of SIF HTTP(S). To do so and to meet the final requirement of a Web Service per [WSARCH], the use of SOAP messages, would require redefinition of much of SIF using SOAP messages. The SIF Association's Web Services Task Force has determined that this exercise has little value currently, given SIF's precisely defined transport layer and installed base. The task force has left it as a future task how to best leverage Web Services in the future of SIF's infrastructure, if at all. In the meantime, the task force has, however, decided to provide a Web Services interface that provides external systems access to the rich amount of data available in SIF Zones via its own specification [SIF Reporting WS]. Future opportunities to provide additional services may be identified.

Appendix E: Wildcard Version Support Implementation Notes

Agents that register the ability to receive SIF_Messages defined by any number of different SIF Implementation Specification versions by using version wildcards in SIF_Register/SIF_Version and SIF_Request/SIF_Version may receive messages defined by specification versions that did not exist at the time of agent implementation. This support can maximize agent communication in zones supporting multiple SIF versions; agent developers that design this support should be aware of the following implementation notes. These notes focus on wildcard support for releases within a given major release lifecycle and do not address agents that register support for *, indicating the ability to receive ANY version SIF_Message. These messages can be very different structurally across major version boundaries and an agent may require more sophisticated capabilities to successfully process any SIF_Message, regardless of the SIF version that defines it.

E.1 XML Parsing

The message handling protocols documented in this specification are written from the perspective of having a well-formed and—optionally—valid XML document and the ability to randomly access element and attribute values within the document in performing the message handling steps as documented. While some agent implementations have this ability, there do exist agent implementations that may process SIF XML using a streaming interface (e.g. SAX), processing an XML document node by node, to perform equivalent functionality. When these agents declare the ability to receive a SIF_Message defined by any minor release within a major release lifecycle, they cannot assume in processing a message that one element follows another without any intervening elements, as new minor releases of this specification can introduce optional elements into the SIF Data Model. An agent written at the time of SIF Implementation Specification 1.1 to support 1.* and to expect OtherId to follow AlertMsg might encounter difficulties with processing a 1.5r1  StudentPersonal if it were not designed to ignore new intervening 1.5r1 elements before OtherId unknown at the time of implementation, including LocalId, as shown here, not to mention StatePrId and ElectronicId, which were also both introduced in SIF Implementation Specification 1.5r1.

<StudentPersonal RefId="D3E34B359D75101A8C3D00AA001A1652"> <AlertMsg Type="Legal">A legal alert for Joe Student.</AlertMsg> <OtherId Type="06">P00001</OtherId> <Name Type="04"> <LastName>Student</LastName> <FirstName>Joe</FirstName> </Name> </StudentPersonal>
Example E.1-1: StudentPersonal from SIF Implementation Specification 1.1
<StudentPersonal RefId="D3E34B359D75101A8C3D00AA001A1652"> <AlertMsg Type="Legal">A legal alert for Joe Student.</AlertMsg> <LocalId>P00001</LocalId> <OtherId Type="06">P00001</OtherId> <Name Type="04"> <LastName>Student</LastName> <FirstName>Joe</FirstName> </Name> </StudentPersonal>
Example E.1-2: StudentPersonal from SIF Implementation Specification 1.5r1

Agents that parse XML on a node-by-node basis and that wish to support wildcard versions must be able to read and skip XML elements not of interest until an expected element of interest is reached.

E.2 XML Validation

Though minor releases within a major version lifecycle of this specification are designed to be supersets of previous minor releases, agents supporting wildcard versions and performing XML validation should take into consideration that messages from a higher minor version in a major version lifecycle will not validate against schemas designed for a lower version, given the potential introduction of new objects, and new optional elements into existing data objects. Agents that do perform XML validation should skip validation of received SIF_Messages that are defined by a higher version, unless they have dynamic Internet access to hosted schemas where SIF_Message/@Version can be used to access schemas for new specification releases. These agents can, of course, still establish that received SIF_Message XML is well-formed and process that XML to access elements/attributes of interest to the agent implementation.

While SIF_Messages defined by lower minor versions in a major version lifecyle may validate against a higher-version schema in that lifecycle, it is recommended also that higher-version agents skip XML validation of lower-version SIF_Messages unless they have local access to schemas corresponding to the version in question, in which case the appropriate schema should be used for validation, or unless they have dynamic Internet access to hosted schemas where SIF_Message/@Version can be used to access schemas for other specification releases. This recommendation is made particularly because external code sets may be brought up to date with external sources with each release of this specification and a previously valid code set value may become invalid in a new specification.

Note that schemas hosted by the SIF Association are available at well-known URLs and can be used to dynamically access schemas for older/newer specification versions using SIF_Message/@Version, should agents with Internet access require them for XML validation:

http://www.sifinfo.org/infrastructure/<value of SIF_Message/@Version>/DTD/SIF_Message.dtd (for SIF 1.x—XSD/SIF_Message.xsd also available)
http://specification.sifinfo.org/Implementation/<value of SIF_Message/@Version>/XSD/SIF_Message.xsd (for SIF 2.x)

E.3 SIF_Message Handling

While this is defined in the SIF_Message Agent Message Handling Protocol, it bears repeating in this section that agents receiving an unexpected message from the ZIS respond according to protocol, acknowledging receipt of the message with a SIF_Ack including the SIF_Error element with a SIF_Category of 12 (Generic Message Handling) and a SIF_Code of 2 (message not supported). This allows an agent with wildcard version support to successfully ignore SIF_Messages that may be introduced with the addition of optional infrastructure functionality into new minor releases of this specification, including new SIF_SystemControl messages.

Appendix F: Selective Message Blocking (SMB) Example

F.1 Example

A detailed example of Selective Message Blocking (SMB) follows. The table below represents the agent's message queue as maintained by the ZIS. The message at the top represents the oldest message in the queue and is the message that is currently being processed by the agent as the example begins.

Agent Message Queue
SIF_Event message containing a StudentSchoolEnrollment object with an Action of Add.
SIF_Event message containing a StudentPersonal object with an Action of Add.
SIF_Request message for a StudentPersonal object from another agent.
SIF_Event message containing a StudentSchoolEnrollment object with an Action of Add.
Table F.1-1: Agent Message Queue - Example 1

When processing the StudentSchoolEnrollment event, the agent requires data from a SchoolInfo object that it doesn't have locally. It would like to request the SchoolInfo object without needing to process subsequent events. To do so, the agent acknowledges the StudentSchoolEnrollment event with an "Intermediate" SIF_Ack indicating that the ZIS will be contacted later to resume delivery of events. It then opens a channel to the ZIS and submits a SIF_Request for the SchoolInfo object.

Upon receipt of the "Intermediate" SIF_Ack, the ZIS freezes the delivery of any SIF_Event messages to this agent until the agent sends a final SIF_Ack releasing the original event. The current state of the queue is now:

Agent Message Queue
SIF_Event message containing a StudentSchoolEnrollment object with an Action of Add. (blocked)
SIF_Event message containing a StudentPersonal object with an Action of Add. (frozen)
SIF_Request message for a StudentPersonal object from another agent.
SIF_Event message containing a StudentSchoolEnrollment object with an Action of Add. (frozen)
Table F.1-2: Agent Message Queue - Example 2

The next message available for delivery to the agent is the SIF_Request for a StudentPersonal object. For our example, the agent will accept the SIF_Request by returning an "Immediate" SIF_Ack indicating that processing is complete and the agent will hand the SIF_Request off to another part of the agent for handling.

Meanwhile, the ZIS has deposited the SIF_Response from the SchoolInfo provider's agent into the queue. The queue now looks like this:

Agent Message Queue
SIF_Event message containing a StudentSchoolEnrollment object with an Action of Add. (blocked)
SIF_Event message containing a StudentPersonal object with an Action of Add. (frozen)
SIF_Event message containing a StudentSchoolEnrollment object with an Action of Add. (frozen)
SIF_Response message containing the SchoolInfo object previously requested.
Table F.1-3: Agent Message Queue - Example 3

The next message the agent receives is the SIF_Response. The agent takes the SIF_Response and uses the information from it along with the data in the original StudentSchoolEnrollment event to update its database. The agent returns (Pull-Mode) or sends (Push-Mode) an "Immediate" SIF_Ack telling the ZIS to discard the SIF_Response message.

The agent has now completed processing of the StudentSchoolEnrollment event and opens a channel to the ZIS and sends a "Final" SIF_Ack with the message identifier for the StudentSchoolEnrollment event. The SIF_Ack says that the agent has completed processing and the ZIS removes the event from the agent queue. The freeze on SIF_Event messages is lifted and the next message to be sent to the agent is the SIF_Event for a StudentPersonal Add:

Agent Message Queue
SIF_Event message containing a StudentPersonal object with an Action of Add.
SIF_Event message containing a StudentSchoolEnrollment object with an Action of Add.
Table F.1-4: Agent Message Queue - Example 4
"Immediate" SIF_Ack

The "Immediate" SIF_Ack is a SIF_Ack message with status code of 1. This type of SIF_Ack is returned as a response to a message sent by the ZIS and indicates that the agent has persisted or has processed the message and the ZIS must remove the message from its queue.

<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>ABCD10580EF250789012AC0554321EA2</SIF_MsgId> <SIF_Timestamp>2006-02-18T08:39:40-08:00</SIF_Timestamp> <SIF_SourceId>RamseyLIB</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseySIS</SIF_OriginalSourceId> <SIF_OriginalMsgId>10580EF2ABCD50789012AC05EA6C71B3</SIF_OriginalMsgId> <SIF_Status> <SIF_Code>1</SIF_Code> </SIF_Status> </SIF_Ack> </SIF_Message>
Example F.1-1: "Immediate" SIF_Ack
"Intermediate" SIF_Ack

The "Intermediate" SIF_Ack is a SIF_Ack message with status code of 2. This type of SIF_Ack is returned as a response to an event message delivered by the ZIS and indicates that the agent has not completed processing of the event and the ZIS must not remove the event message from its queue. The agent will send a "Final" SIF_Ack to the ZIS in the future to signal that the ZIS can discard the event message. An "Intermediate" SIF_Ack message must not be returned by agents in response to messages other than SIF_Event.

<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>ABCD10580EF250789012AC0554321EA3</SIF_MsgId> <SIF_Timestamp>2006-02-18T08:39:40-08:00</SIF_Timestamp> <SIF_SourceId>RamseyLIB</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseySIS</SIF_OriginalSourceId> <SIF_OriginalMsgId>10580EF2ABCD50789012AC05EA6C71B3</SIF_OriginalMsgId> <SIF_Status> <SIF_Code>2</SIF_Code> </SIF_Status> </SIF_Ack> </SIF_Message>
Example F.1-2: "Intermediate" SIF_Ack
"Final" SIF_Ack

A "Final" SIF_Ack is a message with status code of 3. The agent sends this type of SIF_Ack to the ZIS after the agent has completely processed a SIF_Event where it previously sent an "Intermediate" SIF_Ack. When the ZIS receives this message, it must discard the SIF_Event message referenced in the SIF_Ack upon successfully acknowledging the "Final" SIF_Ack.

<SIF_Message Version="2.3" xmlns="http://www.sifinfo.org/au/infrastructure/2.x"> <SIF_Ack> <SIF_Header> <SIF_MsgId>ABCD10580EF250789012AC0554321EA4</SIF_MsgId> <SIF_Timestamp>2006-02-18T08:39:40-08:00</SIF_Timestamp> <SIF_SourceId>RamseyLIB</SIF_SourceId> </SIF_Header> <SIF_OriginalSourceId>RamseySIS</SIF_OriginalSourceId> <SIF_OriginalMsgId>10580EF2ABCD50789012AC05EA6C71B3</SIF_OriginalMsgId> <SIF_Status> <SIF_Code>3</SIF_Code> </SIF_Status> </SIF_Ack> </SIF_Message>
Example F.1-3: "Final" SIF_Ack

Appendix G: Background/Supplementary Documentation (non-normative)

This appendix supplies background/supplementary documentation from working groups and task forces for interested readers, including but not limited to object plans, business/use cases, test plans, test results, background and best practice documentation. Last modified dates are included in parentheses.

Appendix H: Index of Tables

Table 3.3.5.1‑1Register
Table 3.3.5.1‑2Virtual Table Example (Register)
Table 3.3.5.1‑3Access Control
Table 3.3.5.1‑4Virtual Table Example (Access Control)
Table 3.3.6.3.4‑1Key Lengths
Table 3.3.7.1.2‑1HTTP Request Headers
Table 3.3.7.1.3‑1HTTP Response Headers
Table 4.1.1.1‑1SIF_Register Protocol
Table 4.1.1.2‑1SIF_Unregister Protocol
Table 4.1.1.3‑1SIF_Provide Protocol
Table 4.1.1.4‑1SIF_Unprovide Protocol
Table 4.1.1.5‑1SIF_Subscribe Protocol
Table 4.1.1.6‑1SIF_Unsubscribe Protocol
Table 4.1.1.7‑1SIF_Provision Protocol
Table 4.1.1.8‑1SIF_Event Protocol
Table 4.1.1.9‑1SIF_Request Protocol
Table 4.1.1.10‑1SIF_Ping Protocol
Table 4.1.1.11‑1SIF_Sleep Protocol
Table 4.1.1.12‑1SIF_Wakeup Protocol
Table 4.1.1.13‑1SIF_GetZoneStatus Protocol
Table 4.1.1.14‑1SIF_GetAgentACL Protocol
Table 4.1.1.15‑1SIF_CancelRequests Protocol
Table 4.1.1.16‑1SIF_GetMessage Protocol
Table 4.1.1.17‑1SIF_Ack Protocol (Push-Mode)
Table 4.1.1.18‑1SIF_Ack Protocol (Pull-Mode)
Table 4.1.2.1‑1SIF_Message Handling
Table 4.1.2.2‑1SIF_Event Handling
Table 4.1.2.3‑1SIF_Request Handling
Table 4.1.2.4‑1SIF_Event Handling
Table 4.1.2.5‑1SIF_Ping Handling
Table 4.1.2.6‑1SIF_Sleep Handling
Table 4.1.2.7‑1SIF_Wakeup Handling
Table 4.1.2.8‑1SIF_CancelRequests Handling
Table 4.2.1.1‑1SIF_Message Delivery Protocol
Table 4.2.1.2‑1SIF_Ping Protocol
Table 4.2.1.3‑1SIF_Sleep Protocol
Table 4.2.1.4‑1SIF_Wakeup Protocol
Table 4.2.1.5‑1SIF_CancelRequests Protocol
Table 4.2.2.1‑1SIF_Message Handling
Table 4.2.2.2‑1SIF_Register Handling
Table 4.2.2.3‑1SIF_Unregister Handling
Table 4.2.2.4‑1SIF_Provide Handling
Table 4.2.2.5‑1SIF_Unprovide Handling
Table 4.2.2.6‑1SIF_Subscribe Handling
Table 4.2.2.7‑1SIF_Unsubscribe Handling
Table 4.2.2.8‑1SIF_Provision Handling
Table 4.2.2.9‑1SIF_Event Handling
Table 4.2.2.10‑1SIF_Request Handling
Table 4.2.2.11‑1SIF_Response Handling
Table 4.2.2.12‑1SIF_Ping Handling
Table 4.2.2.13‑1SIF_Sleep Handling
Table 4.2.2.14‑1SIF_Wakeup Handling
Table 4.2.2.15‑1SIF_GetZoneStatus Handling
Table 4.2.2.16‑1SIF_GetZoneStatus Handling
Table 4.2.2.17‑1SIF_CancelRequests Handling
Table 4.2.2.18‑1SIF_GetMessage Handling
Table 4.2.2.19‑1SIF_Ack Handling
Table 4.2.2.20‑1SIF_Ack Handling
Table 5.1.1‑1SIF_Message
Table 5.1.2‑1SIF_Header
Table 5.1.3‑1SIF_EncryptionLevel
Table 5.1.4‑1SIF_AuthenticationLevel
Table 5.1.5‑1SIF_Contexts
Table 5.1.6‑1SIF_Context
Table 5.1.7‑1SIF_Protocol
Table 5.1.8‑1SIF_Status
Table 5.1.9‑1SIF_Error
Table 5.1.10‑1SIF_Query
Table 5.1.11‑1SIF_ExtendedQuery
Table 5.1.11.1‑1Mapping SIF_Query to SIF_ExtendedQuery
Table 5.1.12‑1SIF_ExtendedQueryResults
Table 5.2.1‑1SIF_Ack
Table 5.2.2‑1SIF_Event
Table 5.2.3‑1SIF_Provide
Table 5.2.4‑1SIF_Provision
Table 5.2.5‑1SIF_Register
Table 5.2.6‑1SIF_Request
Table 5.2.7‑1SIF_Response
Table 5.2.8‑1SIF_Subscribe
Table 5.2.9‑1SIF_SystemControl
Table 5.2.10‑1SIF_Ping
Table 5.2.11‑1SIF_Sleep
Table 5.2.12‑1SIF_Wakeup
Table 5.2.13‑1SIF_GetMessage
Table 5.2.14‑1SIF_GetZoneStatus
Table 5.2.15‑1SIF_GetAgentACL
Table 5.2.16‑1SIF_CancelRequests
Table 5.2.17‑1SIF_Unprovide
Table 5.2.18‑1SIF_Unregister
Table 5.2.19‑1SIF_Unsubscribe
Table 5.3.1‑1SIF_AgentACL
Table 5.3.2‑1SIF_LogEntry
Table 5.3.3‑1SIF_ZoneStatus
Table 6.2.1‑1Address
Table 6.2.2‑1AddressList
Table 6.2.3‑1AttendanceCode
Table 6.2.4‑1BirthDate
Table 6.2.5‑1ContactInfo
Table 6.2.6‑1Country
Table 6.2.7‑1Demographics
Table 6.2.8‑1EducationalLevel
Table 6.2.9‑1ElectronicId
Table 6.2.10‑1ElectronicIdList
Table 6.2.11‑1Email
Table 6.2.12‑1EmailList
Table 6.2.13‑1EnglishProficiency
Table 6.2.14‑1GraduationDate
Table 6.2.15‑1GridLocation
Table 6.2.16‑1HomeroomNumber
Table 6.2.17‑1LanguageList
Table 6.2.18‑1LifeCycle
Table 6.2.19‑1LocalId
Table 6.2.20‑1Location
Table 6.2.21‑1Name
Table 6.2.22‑1OnTimeGraduationYear
Table 6.2.23‑1OperationalStatus
Table 6.2.24‑1OtherCodeList
Table 6.2.25‑1OtherNames
Table 6.2.26‑1PersonInfo
Table 6.2.27‑1PhoneNumber
Table 6.2.28‑1PhoneNumberList
Table 6.2.29‑1PrincipalInfo
Table 6.2.30‑1ProjectedGraduationYear
Table 6.2.31‑1PublishInDirectory
Table 6.2.32‑1Relationship
Table 6.2.33‑1SchoolContactList
Table 6.2.34‑1SchoolURL
Table 6.2.35‑1SchoolYear
Table 6.2.36‑1SIF_ExtendedElements
Table 6.2.37‑1SIF_Metadata
Table 6.2.38‑1StateProvince
Table 6.2.39‑1StateProvinceId
Table 6.2.40‑1SubjectArea
Table 6.2.41‑1SubjectAreaList
Table 6.2.42‑1TimeElement
Table 6.2.43‑1YearLevel
Table 6.2.44‑1YearLevels
Table 6.3.1‑1CalendarDate
Table 6.3.2‑1CalendarSummary
Table 6.3.3‑1Identity
Table 6.3.4‑1LEAInfo
Table 6.3.5‑1PersonPicture
Table 6.3.6‑1ReportAuthorityInfo
Table 6.3.7‑1ReportManifest
Table 6.3.8‑1RoomInfo
Table 6.3.9‑1SchoolCourseInfo
Table 6.3.10‑1SchoolInfo
Table 6.3.11‑1SchoolPrograms
Table 6.3.12‑1SessionInfo
Table 6.3.13‑1SIF_ReportObject
Table 6.3.14‑1StaffAssignment
Table 6.3.15‑1StaffPersonal
Table 6.3.16‑1StudentActivityInfo
Table 6.3.17‑1StudentActivityParticipation
Table 6.3.18‑1StudentAttendanceSummary
Table 6.3.19‑1StudentContactPersonal
Table 6.3.20‑1StudentContactRelationship
Table 6.3.21‑1StudentDailyAttendance
Table 6.3.22‑1StudentParticipation
Table 6.3.23‑1StudentPeriodAttendance
Table 6.3.24‑1StudentPersonal
Table 6.3.25‑1StudentSchoolEnrollment
Table 6.3.26‑1StudentSDTN
Table 6.3.27‑1StudentSnapshot
Table 6.3.28‑1SummaryEnrollmentInfo
Table 6.3.29‑1TeachingGroup
Table 6.3.30‑1TermInfo
Table 6.3.31‑1TimeTable
Table 6.3.32‑1TimeTableCell
Table 6.3.33‑1TimeTableSubject
Table A.1‑1AbstractContentPackageType
Table A.2‑1BaseNameType
Table A.3‑1DefinedProtocolsType
Table A.4‑1ExtendedContentType
Table A.5‑1GUIDType
Table A.6‑1IdRefType
Table A.7‑1MonetaryAmountType
Table A.8‑1MsgIdType
Table A.9‑1NameOfRecordType
Table A.10‑1ObjectNameType
Table A.11‑1OtherNameType
Table A.12‑1PartialDateType
Table A.13‑1RefIdType
Table A.14‑1ReportDataObjectType
Table A.15‑1ReportPackageType
Table A.16‑1SelectedContentType
Table A.17‑1SIF_EventObjectType
Table A.18‑1SIF_ExampleObjectType
Table A.19‑1SIF_LogEntryExtendedContentType
Table A.20‑1SIF_ProvideObjectNamesType
Table A.21‑1SIF_RequestObjectNamesType
Table A.22‑1SIF_ResponseObjectsType
Table A.23‑1SIF_ResponseObjectType
Table A.24‑1SIF_SubscribeObjectNamesType
Table A.25‑1URIOrBinaryType
Table A.26‑1VersionType
Table A.27‑1VersionWithWildcardsType
Table F.1‑1Agent Message Queue - Example 1
Table F.1‑2Agent Message Queue - Example 2
Table F.1‑3Agent Message Queue - Example 3
Table F.1‑4Agent Message Queue - Example 4

Appendix I: Index of Examples

Example 2.2.3‑1Examples Convention
Example 3.3.6.6.2‑1The "Pull" Model - SIF_Status/SIF_Code of 0
Example 3.3.6.6.2‑2The "Pull" Model - SIF_Status/SIF_Code of 9
Example 3.3.7.1.2‑1SIF HTTPS Request
Example 3.3.7.1.3‑1SIF HTTPS Response
Example 3.3.7.3‑1SIF client requesting compression of response
Example 3.3.7.3‑2SIF server returning compressed SIF_Ack
Example 3.3.7.3‑3SIF client sending compressed SIF_Message
Example 3.3.7.3‑4SIF client sending compressed SIF_Message and requesting compression of response
Example 3.3.7.4‑1SIF_Protocol with Accept-Encoding indicating acceptance of gzip (and identity)
Example 3.3.7.4‑2SIF_Protocol with Accept-Encoding indicating no acceptance of encodings other than gzip or identity, gzip preferred over identity
Example 5.1.1‑1SIF_Message
Example 5.1.2‑1SIF_Header
Example 5.1.2‑2SIF_Header
Example 5.1.10.1‑1 
Example 5.1.10.1‑2 
Example 5.1.10.1‑3SIF_ConditionGroup querying into an object
Example 5.1.10.2‑1 
Example 5.1.10.2‑2 
Example 5.1.11‑1Selecting all StudentPersonal objects
Example 5.1.11‑2Selecting all attributes and immediate child elements of StudentPersonal as columns from all StudentPersonal objects
Example 5.1.11‑3Selecting specific attributes and elements from all StudentPersonal objects
Example 5.1.11‑4Selecting StudentPersonal objects along with each student's EntryDate from StudentSchoolEnrollment for a specific school, school year and other StudentSchoolEnrollment values, sorted by student's last name
Example 5.1.11‑5Selecting a specific StudentPersonal's StudentSchoolEnrollment objects, along with the corresponding school name for each enrollment
Example 5.1.11.1‑1Input SIF_Query
Example 5.1.11.1‑2Corresponding SIF_ExtendedQuery
Example 5.1.12‑1SIF_ExtendedQueryResults
Example 5.2.1‑1SIF_Ack Status Message
Example 5.2.1‑2SIF_Ack Error Message
Example 5.2.2‑1SIF_Event Message with StudentPersonal changes
Example 5.2.3‑1SIF_Provide
Example 5.2.4‑1SIF_Provision Example
Example 5.2.5‑1SIF_Register
Example 5.2.6‑1SIF_Request
Example 5.2.7‑1Sample single-packet SIF_Response to a SIF_Request for the Name element from a StudentPersonal object
Example 5.2.7‑2SIF_Response (first packet)
Example 5.2.7‑3SIF_Response (second packet)
Example 5.2.7‑4SIF_Response with no matching objects
Example 5.2.8‑1SIF_Subscribe
Example 5.2.9‑1SIF_SystemControl
Example 5.2.10‑1SIF_Ping
Example 5.2.10‑2SIF_SystemControl—SIF_Ping ("Okay" status)
Example 5.2.10‑3SIF_SystemControl—SIF_Ping ("Receiver is sleeping" status)
Example 5.2.10‑4SIF_SystemControl—SIF_Ping (Transport error returned)
Example 5.2.11‑1SIF_Sleep
Example 5.2.11‑2SIF_Ack with "Okay" status in response to SIF_Sleep
Example 5.2.12‑1SIF_Wakeup
Example 5.2.12‑2SIF_Ack with an "Okay" status in response to SIF_Wakeup
Example 5.2.13‑1SIF_GetMessage
Example 5.2.13‑2SIF_Ack in response to SIF_GetMessage
Example 5.2.13‑3SIF_Ack in response to SIF_GetMessage (no message in queue)
Example 5.2.14‑1SIF_GetZoneStatus
Example 5.2.14‑2SIF_Ack containing SIF_ZoneStatus
Example 5.2.16‑1SIF_CancelRequests
Example 5.2.17‑1SIF_Unprovide
Example 5.2.18‑1SIF_Unregister
Example 5.2.19‑1SIF_Unsubscribe
Example 5.3.1‑1SIF_AgentACL
Example 5.3.2‑1SIF_LogEntry when an agent encounters a system failure
Example 5.3.2‑2SIF_LogEntry when an agent fails to delete a student
Example 5.3.2‑3SIF_LogEntry when an agent starts synchronizing data
Example 5.3.2‑4SIF_LogEntry when a ZIS fails to deliver a message due to buffer size limitations
Example 5.3.3‑1SIF_ZoneStatus
Example 6.1.2.3‑1EmailList
Example 6.1.2.3.1‑1Indicating a new value for the Primary e-mail address and deleting the Alternate1 address
Example 6.1.2.3.2‑1Indicating an updated list of country citizenships
Example 6.2.1‑1Address
Example 6.2.2‑1AddressList
Example 6.2.3‑1AttendanceCode
Example 6.2.4‑1BirthDate
Example 6.2.5‑1ContactInfo
Example 6.2.6‑1Country
Example 6.2.7‑1Demographics Example
Example 6.2.8‑1EducationalLevel
Example 6.2.9‑1ElectronicId
Example 6.2.10‑1ElectronicIdList
Example 6.2.11‑1Email
Example 6.2.12‑1EmailList
Example 6.2.13‑1EnglishProficiency
Example 6.2.14‑1GraduationDate
Example 6.2.15‑1GridLocation
Example 6.2.16‑1HomeroomNumber
Example 6.2.17‑1LanguageList
Example 6.2.18‑1LifeCycle
Example 6.2.19‑1LocalId
Example 6.2.20‑1Location
Example 6.2.21‑1Name
Example 6.2.22‑1OnTimeGraduationYear
Example 6.2.23‑1OperationalStatus
Example 6.2.24‑1OtherCodeList
Example 6.2.25‑1OtherNames
Example 6.2.26‑1PersonInfo
Example 6.2.27‑1PhoneNumber
Example 6.2.28‑1PhoneNumberList
Example 6.2.29‑1PrincipalInfo
Example 6.2.30‑1ProjectedGraduationYear
Example 6.2.31‑1PublishInDirectory
Example 6.2.32‑1Relationship
Example 6.2.33‑1SchoolContactList
Example 6.2.34‑1SchoolURL
Example 6.2.35‑1SchoolYear
Example 6.2.36‑1SIF_ExtendedElements
Example 6.2.38‑1StateProvince
Example 6.2.39‑1StateProvinceId
Example 6.2.40‑1SubjectArea
Example 6.2.41‑1SubjectAreaList
Example 6.2.42‑1TimeElement
Example 6.2.43‑1YearLevel
Example 6.2.44‑1YearLevels
Example 6.3.1‑1CalendarDate
Example 6.3.2‑1CalendarSummary
Example 6.3.3‑1Identity published by an Access Federation Shibboleth Provider
Example 6.3.3‑2Identity published by Microsoft Active Directory
Example 6.3.4‑1LEAInfo
Example 6.3.5‑1PersonPicture
Example 6.3.6‑1ReportAuthorityInfo
Example 6.3.7‑1ReportManifest
Example 6.3.8‑1RoomInfo
Example 6.3.9‑1SchoolCourseInfo
Example 6.3.10‑1SchoolInfo
Example 6.3.11‑1SchoolPrograms
Example 6.3.12‑1SessionInfo
Example 6.3.13‑1SIF_ReportObject
Example 6.3.14‑1StaffAssignment
Example 6.3.15‑1StaffPersonal
Example 6.3.16‑1StudentActivityInfo
Example 6.3.17‑1StudentActivityParticipation
Example 6.3.18‑1StudentAttendanceSummary
Example 6.3.19‑1StudentContactPersonal
Example 6.3.20‑1StudentContactRelationship
Example 6.3.21‑1StudentDailyAttendance
Example 6.3.22‑1StudentParticipation
Example 6.3.23‑1StudentPeriodAttendance
Example 6.3.24‑1StudentPersonal
Example 6.3.25‑1StudentSchoolEnrollment
Example 6.3.26‑1StudentSDTN
Example 6.3.27‑1StudentSnapshot
Example 6.3.28‑1SummaryEnrollmentInfo
Example 6.3.29‑1TeachingGroup
Example 6.3.30‑1TermInfo
Example 6.3.31‑1TimeTable
Example 6.3.32‑1TimeTableCell
Example 6.3.33‑1TimeTableSubject
Example A.2‑1BaseNameType
Example D.7‑1SIF_Message Namespace
Example D.7‑2SIF_Message Namespace
Example E.1‑1StudentPersonal from SIF Implementation Specification 1.1
Example E.1‑2StudentPersonal from SIF Implementation Specification 1.5r1
Example F.1‑1"Immediate" SIF_Ack
Example F.1‑2"Intermediate" SIF_Ack
Example F.1‑3"Final" SIF_Ack

Appendix J: Index of Figures

Figure 2.2.6‑1XML Diagram Conventions
Figure 3.3.1‑1Single-Zone School SIF Implementation
Figure 3.3.1‑2Multiple-Zone District SIF Implementation
Figure 3.3.1‑3Multiple-Zone State SIF Implementation
Figure 5.1.1‑1SIF_Message
Figure 5.1.2‑1SIF_Header
Figure 5.1.3‑1SIF_EncryptionLevel
Figure 5.1.4‑1SIF_AuthenticationLevel
Figure 5.1.5‑1SIF_Contexts
Figure 5.1.6‑1SIF_Context
Figure 5.1.7‑1SIF_Protocol
Figure 5.1.8‑1SIF_Status
Figure 5.1.9‑1SIF_Error
Figure 5.1.10‑1SIF_Query
Figure 5.1.11‑1SIF_ExtendedQuery
Figure 5.1.12‑1SIF_ExtendedQueryResults
Figure 5.2.1‑1SIF_Ack
Figure 5.2.2‑1SIF_Event
Figure 5.2.3‑1SIF_Provide
Figure 5.2.4‑1SIF_Provision
Figure 5.2.5‑1SIF_Register
Figure 5.2.6‑1SIF_Request
Figure 5.2.7‑1SIF_Response
Figure 5.2.8‑1SIF_Subscribe
Figure 5.2.9‑1SIF_SystemControl
Figure 5.2.10‑1SIF_Ping
Figure 5.2.11‑1SIF_Sleep
Figure 5.2.12‑1SIF_Wakeup
Figure 5.2.13‑1SIF_GetMessage
Figure 5.2.14‑1SIF_GetZoneStatus
Figure 5.2.15‑1SIF_GetAgentACL
Figure 5.2.16‑1SIF_CancelRequests
Figure 5.2.17‑1SIF_Unprovide
Figure 5.2.18‑1SIF_Unregister
Figure 5.2.19‑1SIF_Unsubscribe
Figure 5.3.1‑1SIF_AgentACL
Figure 5.3.2‑1SIF_LogEntry
Figure 5.3.3‑1SIF_ZoneStatus
Figure 6.2.1‑1Address
Figure 6.2.2‑1AddressList
Figure 6.2.3‑1AttendanceCode
Figure 6.2.4‑1BirthDate
Figure 6.2.5‑1ContactInfo
Figure 6.2.6‑1Country
Figure 6.2.7‑1Demographics
Figure 6.2.8‑1EducationalLevel
Figure 6.2.9‑1ElectronicId
Figure 6.2.10‑1ElectronicIdList
Figure 6.2.11‑1Email
Figure 6.2.12‑1EmailList
Figure 6.2.13‑1EnglishProficiency
Figure 6.2.14‑1GraduationDate
Figure 6.2.15‑1GridLocation
Figure 6.2.16‑1HomeroomNumber
Figure 6.2.17‑1LanguageList
Figure 6.2.18‑1LifeCycle
Figure 6.2.19‑1LocalId
Figure 6.2.20‑1Location
Figure 6.2.21‑1Name
Figure 6.2.22‑1OnTimeGraduationYear
Figure 6.2.23‑1OperationalStatus
Figure 6.2.24‑1OtherCodeList
Figure 6.2.25‑1OtherNames
Figure 6.2.26‑1PersonInfo
Figure 6.2.27‑1PhoneNumber
Figure 6.2.28‑1PhoneNumberList
Figure 6.2.29‑1PrincipalInfo
Figure 6.2.30‑1ProjectedGraduationYear
Figure 6.2.31‑1PublishInDirectory
Figure 6.2.32‑1Relationship
Figure 6.2.33‑1SchoolContactList
Figure 6.2.34‑1SchoolURL
Figure 6.2.35‑1SchoolYear
Figure 6.2.36‑1SIF_ExtendedElements
Figure 6.2.37‑1SIF_Metadata
Figure 6.2.38‑1StateProvince
Figure 6.2.39‑1StateProvinceId
Figure 6.2.40‑1SubjectArea
Figure 6.2.41‑1SubjectAreaList
Figure 6.2.42‑1TimeElement
Figure 6.2.43‑1YearLevel
Figure 6.2.44‑1YearLevels
Figure 6.3.1‑1CalendarDate
Figure 6.3.2‑1CalendarSummary
Figure 6.3.3‑1Identity
Figure 6.3.4‑1LEAInfo
Figure 6.3.5‑1PersonPicture
Figure 6.3.6‑1ReportAuthorityInfo
Figure 6.3.7‑1ReportManifest
Figure 6.3.8‑1RoomInfo
Figure 6.3.9‑1SchoolCourseInfo
Figure 6.3.10‑1SchoolInfo
Figure 6.3.11‑1SchoolPrograms
Figure 6.3.12‑1SessionInfo
Figure 6.3.13‑1SIF_ReportObject
Figure 6.3.14‑1StaffAssignment
Figure 6.3.15‑1StaffPersonal
Figure 6.3.16‑1StudentActivityInfo
Figure 6.3.17‑1StudentActivityParticipation
Figure 6.3.18‑1StudentAttendanceSummary
Figure 6.3.19‑1StudentContactPersonal
Figure 6.3.20‑1StudentContactRelationship
Figure 6.3.21‑1StudentDailyAttendance
Figure 6.3.22‑1StudentParticipation
Figure 6.3.23‑1StudentPeriodAttendance
Figure 6.3.24‑1StudentPersonal
Figure 6.3.25‑1StudentSchoolEnrollment
Figure 6.3.26‑1StudentSDTN
Figure 6.3.27‑1StudentSnapshot
Figure 6.3.28‑1SummaryEnrollmentInfo
Figure 6.3.29‑1TeachingGroup
Figure 6.3.30‑1TermInfo
Figure 6.3.31‑1TimeTable
Figure 6.3.32‑1TimeTableCell
Figure 6.3.33‑1TimeTableSubject
Figure A.1‑1AbstractContentPackageType
Figure A.2‑1BaseNameType
Figure A.3‑1DefinedProtocolsType
Figure A.4‑1ExtendedContentType
Figure A.5‑1GUIDType
Figure A.6‑1IdRefType
Figure A.7‑1MonetaryAmountType
Figure A.8‑1MsgIdType
Figure A.9‑1NameOfRecordType
Figure A.10‑1ObjectNameType
Figure A.11‑1OtherNameType
Figure A.12‑1PartialDateType
Figure A.13‑1RefIdType
Figure A.14‑1ReportDataObjectType
Figure A.15‑1ReportPackageType
Figure A.16‑1SelectedContentType
Figure A.17‑1SIF_EventObjectType
Figure A.18‑1SIF_ExampleObjectType
Figure A.19‑1SIF_LogEntryExtendedContentType
Figure A.20‑1SIF_ProvideObjectNamesType
Figure A.21‑1SIF_RequestObjectNamesType
Figure A.22‑1SIF_ResponseObjectsType
Figure A.23‑1SIF_ResponseObjectType
Figure A.24‑1SIF_SubscribeObjectNamesType
Figure A.25‑1URIOrBinaryType
Figure A.26‑1VersionType
Figure A.27‑1VersionWithWildcardsType

Appendix K: Index of Objects

CalendarDate 6.3.1
CalendarSummary 6.3.2
Identity 6.3.3
LEAInfo 6.3.4
PersonPicture 6.3.5
ReportAuthorityInfo 6.3.6
ReportManifest 6.3.7
RoomInfo 6.3.8
SchoolCourseInfo 6.3.9
SchoolInfo 6.3.10
SchoolPrograms 6.3.11
SessionInfo 6.3.12
SIF_AgentACL 5.3.1
SIF_LogEntry 5.3.2
SIF_ReportObject 6.3.13
SIF_ZoneStatus 5.3.3
StaffAssignment 6.3.14
StaffPersonal 6.3.15
StudentActivityInfo 6.3.16
StudentActivityParticipation 6.3.17
StudentAttendanceSummary 6.3.18
StudentContactPersonal 6.3.19
StudentContactRelationship 6.3.20
StudentDailyAttendance 6.3.21
StudentParticipation 6.3.22
StudentPeriodAttendance 6.3.23
StudentPersonal 6.3.24
StudentSchoolEnrollment 6.3.25
StudentSDTN 6.3.26
StudentSnapshot 6.3.27
SummaryEnrollmentInfo 6.3.28
TeachingGroup 6.3.29
TermInfo 6.3.30
TimeTable 6.3.31
TimeTableCell 6.3.32
TimeTableSubject 6.3.33

36 Total

Appendix L: Index of Common Elements

Address 6.2.1
AddressList 6.2.2
AttendanceCode 6.2.3
BirthDate 6.2.4
ContactInfo 6.2.5
Country 6.2.6
Demographics 6.2.7
EducationalLevel 6.2.8
ElectronicId 6.2.9
ElectronicIdList 6.2.10
Email 6.2.11
EmailList 6.2.12
EnglishProficiency 6.2.13
GraduationDate 6.2.14
GridLocation 6.2.15
HomeroomNumber 6.2.16
LanguageList 6.2.17
LifeCycle 6.2.18
LocalId 6.2.19
Location 6.2.20
Name 6.2.21
OnTimeGraduationYear 6.2.22
OperationalStatus 6.2.23
OtherCodeList 6.2.24
OtherNames 6.2.25
PersonInfo 6.2.26
PhoneNumber 6.2.27
PhoneNumberList 6.2.28
PrincipalInfo 6.2.29
ProjectedGraduationYear 6.2.30
PublishInDirectory 6.2.31
Relationship 6.2.32
SchoolContactList 6.2.33
SchoolURL 6.2.34
SchoolYear 6.2.35
SIF_AuthenticationLevel 5.1.4
SIF_Context 5.1.6
SIF_Contexts 5.1.5
SIF_EncryptionLevel 5.1.3
SIF_Error 5.1.9
SIF_ExtendedElements 6.2.36
SIF_ExtendedQuery 5.1.11
SIF_ExtendedQueryResults 5.1.12
SIF_Header 5.1.2
SIF_Message 5.1.1
SIF_Metadata 6.2.37
SIF_Protocol 5.1.7
SIF_Query 5.1.10
SIF_Status 5.1.8
StateProvince 6.2.38
StateProvinceId 6.2.39
SubjectArea 6.2.40
SubjectAreaList 6.2.41
TimeElement 6.2.42
YearLevel 6.2.43
YearLevels 6.2.44

56 Total

Appendix M: Index of Common Types

AbstractContentPackageType A.1
BaseNameType A.2
DefinedProtocolsType A.3
ExtendedContentType A.4
GUIDType A.5
IdRefType A.6
MonetaryAmountType A.7
MsgIdType A.8
NameOfRecordType A.9
ObjectNameType A.10
OtherNameType A.11
PartialDateType A.12
RefIdType A.13
ReportDataObjectType A.14
ReportPackageType A.15
SelectedContentType A.16
SIF_EventObjectType A.17
SIF_ExampleObjectType A.18
SIF_LogEntryExtendedContentType A.19
SIF_ProvideObjectNamesType A.20
SIF_RequestObjectNamesType A.21
SIF_ResponseObjectsType A.22
SIF_ResponseObjectType A.23
SIF_SubscribeObjectNamesType A.24
URIOrBinaryType A.25
VersionType A.26
VersionWithWildcardsType A.27

27 Total

Appendix N: Index of Elements

AbsenceValue 6.3.21‑1.12
AbstractContentPackageType A.1‑1.1
AcademicYear 6.3.33‑1.4
AcademicYearRange 6.3.33‑1.5
AcceleratedProgram 6.3.26‑1.34
AcceptableUsePolicy 6.3.24‑1.22
AccessToRecords 6.3.20‑1.11
ActivityInfo 6.3.26‑1.26
Address 6.2.1‑1.1,  6.2.2‑1.2,  6.2.5‑1.5,  6.3.6‑1.8,  6.3.13‑1.14
AddressList 6.2.2‑1.1,  6.2.26‑1.5,  6.3.4‑1.16,  6.3.10‑1.18,  6.3.26‑1.9
AdjustedEducationProgram 6.3.26‑1.30
AdminStatus 6.3.10‑1.28
Advisor 6.3.25‑1.15
Age 6.3.27‑1.10
AlertMessage 6.3.24‑1.4
AlertMessages 6.3.24‑1.3
ApartmentNumber 6.2.1‑1.16
ApartmentNumberPrefix 6.2.1‑1.15
ApartmentNumberSuffix 6.2.1‑1.17
ApartmentType 6.2.1‑1.14
AreasOfInterestList 6.3.26‑1.25
ARIA 6.3.10‑1.22
Association 6.3.29‑1.26
AttendanceCode 6.2.3‑1.1,  6.3.21‑1.8,  6.3.23‑1.8
AttendanceConcerns 6.3.26‑1.23
AttendanceNote 6.3.21‑1.13
AttendanceStatus 6.3.21‑1.9,  6.3.23‑1.9
AttendanceTerm 6.3.30‑1.14
AttendanceValue 6.3.1‑1.10
AustralianCitizenshipStatus 6.2.7‑1.14
AuthenticationSource 6.3.3‑1.5
AuthenticationSourceGlobalUID 6.3.3‑1.13
AuthorityDepartment 6.3.6‑1.5
AuthorityId 6.3.6‑1.4
AuthorityLevel 6.3.6‑1.6
AuthorityName 6.3.6‑1.3
BaseNameType A.2‑1.1
BeginReportDate 6.3.7‑1.11
BeginSubmitDate 6.3.7‑1.13
BinaryData A.1‑1.9
BirthDate 6.2.4‑1.1,  6.2.7‑1.4,  6.3.27‑1.9
BirthDateVerification 6.2.7‑1.5
Block 6.3.29‑1.8
BoardingSchoolStatus 6.3.10‑1.39
Building 6.3.8‑1.8
By 6.2.18‑1.10
C 5.1.12‑1.9
CalculationDate 6.3.13‑1.5
Calendar 6.3.25‑1.22
CalendarDate 6.3.1‑1.1
CalendarDateType 6.3.1‑1.6
CalendarSummary 6.3.2‑1.1
Campus 6.3.10‑1.25
CampusType 6.3.10‑1.27
Capacity 6.3.8‑1.11
CareerGuidanceFileHeld 6.3.26‑1.31
CasualReliefTeacher 6.3.14‑1.18
CatchmentStatus 6.3.25‑1.33
Category 6.3.11‑1.7
CellType 6.3.32‑1.15
City 6.2.1‑1.18
Code 6.2.3‑1.2,  6.2.7‑1.18,  6.2.7‑1.20,  6.2.13‑1.2,  6.2.17‑1.3,  6.2.32‑1.2,  6.2.40‑1.2,  6.2.42‑1.3,  6.2.42‑1.11,  6.2.43‑1.2,  6.3.1‑1.7,  6.3.4‑1.9,  6.3.16‑1.6,  6.3.22‑1.8,  6.3.25‑1.10,  6.3.25‑1.26,  6.3.25‑1.29,  6.3.25‑1.34
CommonwealthId 6.3.4‑1.5,  6.3.10‑1.5
Complex 6.2.1‑1.8
ContactFlags 6.3.20‑1.7
ContactInfo 6.2.5‑1.1,  6.2.33‑1.4,  6.3.4‑1.14,  6.3.6‑1.7,  6.3.13‑1.13
ContactName 6.2.29‑1.2,  6.3.26‑1.12
ContactSequence 6.3.20‑1.20
ContactSequenceSource 6.3.20‑1.21
ContactTitle 6.2.29‑1.3
CoreAcademicCourse 6.3.9‑1.15
Counselor 6.3.25‑1.17
CountriesOfCitizenship 6.2.7‑1.9
CountriesOfResidency 6.2.7‑1.11
Country 6.2.1‑1.20,  6.2.6‑1.1
CountryArrivalDate 6.2.7‑1.13
CountryOfBirth 6.2.7‑1.8
CountryOfCitizenship 6.2.7‑1.10
CountryOfResidency 6.2.7‑1.12
CountsTowardAttendance 6.3.1‑1.9
CourseCode 6.3.9‑1.7
CourseContent 6.3.9‑1.18
CourseCredits 6.3.9‑1.14
CourseLocalId 6.3.28‑1.30,  6.3.33‑1.8
CourseTitle 6.3.9‑1.11
Created 6.2.18‑1.2
Creator 6.2.18‑1.5
Creators 6.2.18‑1.4
CulturalBackground 6.2.7‑1.32
CurricularStatus 6.3.16‑1.10
CurriculumLevel 6.3.29‑1.9
Date 6.2.7‑1.25,  6.3.21‑1.5,  6.3.23‑1.5
DateTime 6.2.18‑1.3,  6.2.18‑1.11
DayId 6.3.12‑1.12,  6.3.31‑1.17,  6.3.32‑1.13
DaysAttended 6.3.18‑1.10
DaysInMembership 6.3.18‑1.14
DaysInSession 6.3.2‑1.7
DaysPerCycle 6.3.31‑1.7
DaysTardy 6.3.18‑1.13
DayTitle 6.3.31‑1.18
DayValue 6.3.21‑1.7
DefinedProtocolsType A.3‑1.1
Demographics 6.2.7‑1.1,  6.2.26‑1.4
Department 6.3.9‑1.17
DepartureDate 6.3.26‑1.16
Description 6.2.18‑1.12,  6.3.2‑1.6,  6.3.7‑1.9,  6.3.8‑1.7,  6.3.9‑1.12,  6.3.13‑1.17,  6.3.14‑1.6,  6.3.16‑1.4,  6.3.26‑1.40,  6.3.30‑1.7
DestinationSchool 6.3.25‑1.40
Disability 6.3.24‑1.26
DisciplinaryAbsences 6.3.26‑1.44
DisciplinaryContact 6.3.20‑1.14
DistrictCourseCode 6.3.9‑1.9
DueDate 6.3.7‑1.15
DwellingArrangement 6.2.7‑1.17
EconomicDisadvantage 6.3.24‑1.23
EducationAgencyType 6.3.4‑1.8
EducationalLevel 6.2.8‑1.1
ElectronicId 6.2.9‑1.1,  6.2.10‑1.2
ElectronicIdList 6.2.10‑1.1,  6.3.15‑1.5,  6.3.24‑1.11
Email 6.2.11‑1.1,  6.2.12‑1.2
EmailList 6.2.5‑1.6,  6.2.12‑1.1,  6.2.26‑1.7,  6.2.29‑1.5,  6.3.26‑1.14
EmergencyContact 6.3.20‑1.12
EmploymentType 6.3.19‑1.8
End 6.3.33‑1.7
EndDate 6.3.2‑1.9,  6.3.17‑1.8,  6.3.30‑1.6,  6.3.31‑1.14
EndDateTime 6.2.42‑1.7,  6.2.42‑1.15
EndDay 6.3.18‑1.8
EndReportDate 6.3.7‑1.12
EndSubmitDate 6.3.7‑1.14
EnglishProficiency 6.2.7‑1.15,  6.2.13‑1.1
Enrollment 6.3.28‑1.22
EnrollmentDate 6.3.26‑1.15
EnrollmentList 6.3.28‑1.21
Entity_Close 6.3.10‑1.41
Entity_Open 6.3.10‑1.40
EntryDate 6.3.25‑1.8
EntryType 6.3.25‑1.9
ESL 6.3.24‑1.24
ExcusedAbsences 6.3.18‑1.11
ExitDate 6.3.25‑1.24
ExitStatus 6.3.25‑1.25
ExitType 6.3.25‑1.28
ExtendedContentType A.4‑1.1
Extension 6.2.27‑1.4
Faculty 6.3.33‑1.10
FamilyMail 6.3.20‑1.17
FamilyName A.2‑1.3
FamilyNameFirst A.2‑1.6
FederalElectorate 6.3.10‑1.24
FeesBilling 6.3.20‑1.16
FinishTime 6.3.12‑1.16
FirstAUSchoolEnrollment 6.3.24‑1.29
FirstInstructionDate 6.3.2‑1.10
FTE 6.3.18‑1.9,  6.3.25‑1.31
FTPTStatus 6.3.25‑1.32
FullName A.2‑1.11
FurtherInformation 6.3.26‑1.11
GivenName A.2‑1.4
GraduationDate 6.2.14‑1.1,  6.3.2‑1.12
GraduationRequirement 6.3.9‑1.16
GridLocation 6.2.1‑1.22,  6.2.15‑1.1
GUIDType A.5‑1.1
HasCustody 6.3.20‑1.13
HealthNeeds 6.3.26‑1.24
HomeEnrollment 6.3.27‑1.19
Homegroup 6.3.14‑1.19,  6.3.25‑1.19
Homeroom 6.3.25‑1.13,  6.3.27‑1.26
HomeroomLocalId 6.3.24‑1.20
HomeroomNumber 6.2.16‑1.1,  6.3.8‑1.9,  6.3.27‑1.28
House 6.3.14‑1.20,  6.3.25‑1.20
Household 6.3.20‑1.6
HouseholdList 6.3.20‑1.5
ID 6.2.18‑1.7
Identity 6.3.3‑1.1
IdentityAssertion 6.3.3‑1.7
IdentityAssertions 6.3.3‑1.6
IdRefType A.6‑1.1
ImmunisationCertificateStatus 6.2.7‑1.31
IndependentSchool 6.3.10‑1.30
IndigenousStatus 6.2.7‑1.2
IndividualBehaviourPlan 6.3.26‑1.45
IndividualLearningPlan 6.3.25‑1.21
InstructionalLevel 6.3.9‑1.13
InstructionalMinutes 6.3.2‑1.13
IntegrationAide 6.3.24‑1.27
InterventionOrder 6.3.20‑1.18
IsCurrent 6.2.42‑1.16
JobEndDate 6.3.14‑1.9
JobFTE 6.3.14‑1.10
JobFunction 6.3.14‑1.11
JobStartDate 6.3.14‑1.8
JurisdictionLowerHouse 6.3.4‑1.18,  6.3.10‑1.36
Language 6.2.17‑1.2
LanguageList 6.2.7‑1.16,  6.2.17‑1.1
LanguageType 6.2.17‑1.5
LastInstructionDate 6.3.2‑1.11
LatestStudentReportAvailable 6.3.26‑1.42
Latitude 6.2.15‑1.2
LEAContact 6.3.4‑1.12
LEAContactList 6.3.4‑1.11
LEAInfo 6.3.4‑1.1
LEAInfoRefId 6.3.10‑1.7
LEAName 6.3.4‑1.6
LEAURL 6.3.4‑1.7
LifeCycle 6.2.18‑1.1,  6.2.37‑1.4
Line1 6.2.1‑1.5
Line2 6.2.1‑1.6
Line3 6.2.1‑1.7
ListedStatus 6.2.27‑1.5
Literacy 6.3.26‑1.36
LivesWith 6.3.20‑1.10
LocalGovernmentArea 6.3.10‑1.35
LocalId 6.2.19‑1.1,  6.3.2‑1.5,  6.3.4‑1.3,  6.3.10‑1.3,  6.3.12‑1.6,  6.3.15‑1.3,  6.3.19‑1.3,  6.3.24‑1.9,  6.3.27‑1.6,  6.3.27‑1.23,  6.3.28‑1.6,  6.3.28‑1.26,  6.3.29‑1.4,  6.3.31‑1.5
Location 6.2.20‑1.1,  6.3.16‑1.11
LocationName 6.2.20‑1.3
LocationRefId 6.2.20‑1.4
Longitude 6.2.15‑1.3
LongName 6.3.29‑1.6
MainlySpeaksEnglishAtHome 6.3.20‑1.19
ManagingSchool 6.3.22‑1.10
MapReference 6.2.1‑1.23
MarkingTerm 6.3.30‑1.12
MaxClassSize 6.3.29‑1.28
MedicalAlertMessage 6.3.24‑1.7
MedicalAlertMessages 6.3.24‑1.6
MembershipType 6.3.25‑1.5
MiddleName A.2‑1.5
MinClassSize 6.3.29‑1.27
MinutesPerDay 6.3.2‑1.14
ModificationHistory 6.2.18‑1.8
Modified 6.2.18‑1.9
MonetaryAmountType A.7‑1.1
MostRecent 6.3.24‑1.18
MsgIdType A.8‑1.1
Name 6.2.5‑1.2,  6.2.18‑1.6,  6.2.21‑1.1,  6.2.25‑1.2,  6.2.26‑1.2,  6.2.42‑1.4,  6.2.42‑1.12,  6.3.27‑1.5,  6.3.29‑1.20,  6.3.29‑1.25
NameOfRecordType A.9‑1.1
NegotiatedCurriculumPlan 6.3.26‑1.29
NonGovSystemicStatus 6.3.10‑1.31
NonSchoolEducation 6.3.19‑1.10
Number 6.2.27‑1.3
Numeracy 6.3.26‑1.37
ObjectNameType A.10‑1.1
OKToPublish 6.3.5‑1.8
OnTimeGraduationYear 6.2.22‑1.1,  6.3.24‑1.17,  6.3.27‑1.12
OperationalStatus 6.2.23‑1.1,  6.3.4‑1.17,  6.3.10‑1.23
OtherCode 6.2.24‑1.2
OtherCodeList 6.2.3‑1.3,  6.2.7‑1.21,  6.2.13‑1.3,  6.2.17‑1.4,  6.2.24‑1.1,  6.2.32‑1.3,  6.2.40‑1.3,  6.3.4‑1.10,  6.3.11‑1.9,  6.3.16‑1.7,  6.3.22‑1.9,  6.3.25‑1.11,  6.3.25‑1.27,  6.3.25‑1.30,  6.3.25‑1.35,  6.3.33‑1.20
OtherId 6.3.15‑1.7,  6.3.19‑1.5,  6.3.24‑1.13
OtherIdList 6.3.15‑1.6,  6.3.19‑1.4,  6.3.24‑1.12
OtherLEA 6.3.10‑1.8
OtherLearningArea 6.3.26‑1.39
OtherLearningAreasList 6.3.26‑1.38
OtherLearningSupport 6.3.26‑1.33
OtherNames 6.2.25‑1.1,  6.2.26‑1.3
OtherNameType A.11‑1.1
OtherSchoolLocalId 6.3.25‑1.46,  6.3.27‑1.18
ParentLegalGuardian 6.3.20‑1.8
ParentObjectRefId 6.3.5‑1.3,  6.3.28‑1.4
PartialDateType A.12‑1.1
ParticipationComment 6.3.17‑1.6
ParticipationContact 6.3.22‑1.13
Password 6.3.3‑1.10
PasswordList 6.3.3‑1.9
PastoralCare 6.3.26‑1.43
PeriodId 6.3.12‑1.13,  6.3.31‑1.21,  6.3.32‑1.14
PeriodsPerDay 6.3.31‑1.8
PeriodTitle 6.3.31‑1.22
PermanentResident 6.2.7‑1.27
PersonInfo 6.2.26‑1.1,  6.3.15‑1.9,  6.3.19‑1.7,  6.3.24‑1.15,  6.3.26‑1.5,  6.3.28‑1.8
PersonPicture 6.3.5‑1.1
PhoneNumber 6.2.27‑1.1,  6.2.28‑1.2,  6.3.6‑1.9,  6.3.8‑1.12,  6.3.13‑1.15
PhoneNumberList 6.2.5‑1.7,  6.2.26‑1.6,  6.2.28‑1.1,  6.2.29‑1.4,  6.3.4‑1.15,  6.3.10‑1.19,  6.3.26‑1.13
PickupRights 6.3.20‑1.9
PictureSource 6.3.5‑1.6
PlaceOfBirth 6.2.7‑1.6
PositionTitle 6.2.5‑1.3
PostalCode 6.2.1‑1.21
PreferenceNumber 6.3.14‑1.14,  6.3.25‑1.43,  6.3.27‑1.15
PreferredFamilyName A.2‑1.7
PreferredFamilyNameFirst A.2‑1.8
PreferredGivenName A.2‑1.9
PrePrimaryEducation 6.3.24‑1.28
PreviousSchool 6.3.25‑1.39,  6.3.26‑1.20
PreviousSchoolsList 6.3.26‑1.19
PrimaryAssignment 6.3.14‑1.7
PrimaryCareProvider 6.3.20‑1.15
PrincipalInfo 6.2.29‑1.1,  6.3.10‑1.16,  6.3.26‑1.10
Program 6.3.11‑1.6
ProgramFundingSource 6.3.22‑1.7
ProgramFundingSources 6.3.22‑1.6
ProgramType 6.3.22‑1.5
ProjectedGraduationYear 6.2.30‑1.1,  6.3.24‑1.16,  6.3.27‑1.11
PromotionInfo 6.3.25‑1.37
PromotionStatus 6.3.25‑1.38
ProposedMaxClassSize 6.3.33‑1.14
ProposedMinClassSize 6.3.33‑1.15
PublishInDirectory 6.2.31‑1.1,  6.2.33‑1.3,  6.3.4‑1.13
R 5.1.12‑1.8
RadioContact 6.2.1‑1.27
ReasonForLeaving 6.3.26‑1.18
ReasonLeft 6.3.26‑1.22
ReceivingAuthority 6.3.7‑1.6
Recognition 6.3.17‑1.11
RecognitionList 6.3.17‑1.10
RecordClosureReason 6.3.25‑1.36
Reference A.1‑1.13
RefIdType A.13‑1.1
Relationship 6.2.32‑1.1,  6.3.20‑1.4
RelativeDuration 6.3.30‑1.8
Religion 6.2.7‑1.19
ReligiousAffiliation 6.3.10‑1.33
ReligiousEvent 6.2.7‑1.23
ReligiousEventList 6.2.7‑1.22
ReligiousRegion 6.2.7‑1.26
ReportAuthorityInfo 6.3.6‑1.1
ReportData 6.3.13‑1.18
ReportDataObjectType A.14‑1.1
ReportDefinitionSource 6.3.7‑1.16
ReportFormat 6.3.7‑1.20
ReportFormatList 6.3.7‑1.19
ReportInfo 6.3.13‑1.3
ReportingPeriod 6.3.7‑1.10
ReportManifest 6.3.7‑1.1
ReportName 6.3.7‑1.8
ReportPackageType A.15‑1.1
ReportSubmitterInfo 6.3.13‑1.8
Result 6.3.26‑1.41
Role 6.2.5‑1.4,  6.3.17‑1.9
RollMarked 6.3.12‑1.17
RoomInfo 6.3.8‑1.1
RoomInfoRefId 6.3.32‑1.6
RoomNumber 6.3.8‑1.4,  6.3.12‑1.11,  6.3.32‑1.11
SchedulingTerm 6.3.30‑1.13
SchoolCampusId 6.3.10‑1.26
SchoolCoEdStatus 6.3.10‑1.38
SchoolContact 6.2.33‑1.2
SchoolContactList 6.2.33‑1.1,  6.3.10‑1.17
SchoolCounsellorFileHeld 6.3.26‑1.32
SchoolCourseInfo 6.3.9‑1.1
SchoolCourseInfoRefId 6.3.28‑1.24,  6.3.29‑1.12,  6.3.33‑1.9
SchoolCourseLocalId 6.3.29‑1.13
SchoolDistrict 6.3.10‑1.10
SchoolDistrictLocalId 6.3.10‑1.11
SchoolEducationalLevel 6.3.19‑1.9
SchoolEnrollment 6.3.28‑1.10
SchoolEnrollmentList 6.3.28‑1.9
SchoolFocus 6.3.10‑1.14
SchoolFocusList 6.3.10‑1.13
SchoolGeographicLocation 6.3.10‑1.34
SchoolGroup 6.3.10‑1.43
SchoolGroupList 6.3.10‑1.42
SchoolInfo 6.3.10‑1.1
SchoolInfoRefId 6.3.1‑1.4,  6.3.2‑1.3,  6.3.8‑1.3,  6.3.9‑1.3,  6.3.11‑1.3,  6.3.12‑1.3,  6.3.14‑1.3,  6.3.21‑1.4,  6.3.23‑1.4,  6.3.25‑1.4,  6.3.26‑1.6,  6.3.27‑1.22,  6.3.28‑1.12,  6.3.29‑1.10,  6.3.30‑1.3,  6.3.31‑1.3,  6.3.32‑1.16,  6.3.33‑1.16
SchoolLocalId 6.3.9‑1.4,  6.3.12‑1.9,  6.3.24‑1.19,  6.3.26‑1.7,  6.3.28‑1.13,  6.3.29‑1.11,  6.3.31‑1.10,  6.3.32‑1.17,  6.3.33‑1.17
SchoolName 6.3.10‑1.6,  6.3.26‑1.8,  6.3.26‑1.21,  6.3.27‑1.21,  6.3.28‑1.11,  6.3.31‑1.11
SchoolNo 6.3.27‑1.24
SchoolProgramList 6.3.11‑1.5
SchoolPrograms 6.3.11‑1.1
SchoolSector 6.3.10‑1.29
SchoolStateProvinceId 6.3.28‑1.14
SchoolType 6.3.10‑1.12
SchoolURL 6.2.34‑1.1,  6.3.10‑1.15
SchoolYear 6.2.35‑1.1,  6.3.1‑1.5,  6.3.2‑1.4,  6.3.5‑1.5,  6.3.9‑1.5,  6.3.11‑1.4,  6.3.12‑1.5,  6.3.14‑1.4,  6.3.17‑1.5,  6.3.21‑1.6,  6.3.23‑1.10,  6.3.25‑1.7,  6.3.27‑1.4,  6.3.28‑1.3,  6.3.28‑1.28,  6.3.29‑1.3,  6.3.30‑1.4,  6.3.31‑1.4,  6.3.33‑1.19
SelectedContentType A.16‑1.1
Semester 6.3.33‑1.18
SessionDate 6.3.12‑1.14
SessionInfo 6.3.12‑1.1
SessionInfoRefId 6.3.23‑1.6
SessionType 6.3.10‑1.20
Set 6.3.29‑1.7
Sex 6.2.7‑1.3,  6.3.27‑1.8
ShortName 6.3.28‑1.27,  6.3.29‑1.5
SIF_Ack 5.2.1‑1.1
SIF_AddPublishers 5.3.3‑1.24
SIF_AdministrationURL 5.3.3‑1.87
SIF_AgentACL 5.3.1‑1.1
SIF_Application 5.2.5‑1.10,  5.3.3‑1.68
SIF_ApplicationCode 5.3.2‑1.10
SIF_AuthenticationLevel 5.1.2‑1.6,  5.1.4‑1.1,  5.3.3‑1.77
SIF_CancelRequests 5.2.16‑1.1
SIF_Category 5.1.9‑1.2,  5.3.2‑1.8
SIF_ChangePublishers 5.3.3‑1.31
SIF_Code 5.1.8‑1.2,  5.1.9‑1.3,  5.3.2‑1.9
SIF_ColumnHeaders 5.1.12‑1.2
SIF_Condition 5.1.10‑1.9,  5.1.11‑1.23
SIF_ConditionGroup 5.1.10‑1.5,  5.1.11‑1.19
SIF_Conditions 5.1.10‑1.7,  5.1.11‑1.21
SIF_Context 5.1.5‑1.2,  5.1.6‑1.1
SIF_Contexts 5.1.2‑1.10,  5.1.5‑1.1,  5.2.3‑1.6,  5.2.4‑1.7,  5.2.4‑1.11,  5.2.4‑1.15,  5.2.4‑1.19,  5.2.4‑1.23,  5.2.4‑1.28,  5.2.4‑1.33,  5.2.8‑1.5,  5.2.17‑1.5,  5.2.19‑1.5,  5.3.1‑1.5,  5.3.1‑1.9,  5.3.1‑1.13,  5.3.1‑1.17,  5.3.1‑1.21,  5.3.1‑1.25,  5.3.1‑1.29,  5.3.3‑1.16,  5.3.3‑1.23,  5.3.3‑1.30,  5.3.3‑1.37,  5.3.3‑1.44,  5.3.3‑1.52,  5.3.3‑1.60,  5.3.3‑1.88
SIF_Data 5.1.8‑1.4
SIF_DeletePublishers 5.3.3‑1.38
SIF_Desc 5.1.8‑1.3,  5.1.9‑1.4,  5.3.2‑1.11
SIF_DestinationId 5.1.2‑1.9
SIF_DestinationProvider 5.1.11‑1.2
SIF_Element 5.1.10‑1.4,  5.1.10‑1.10,  5.1.11‑1.6,  5.1.11‑1.24,  5.1.11‑1.29,  5.1.12‑1.3
SIF_EncryptionLevel 5.1.2‑1.7,  5.1.3‑1.1,  5.3.3‑1.78
SIF_Error 5.1.9‑1.1,  5.2.1‑1.6,  5.2.7‑1.6
SIF_Event 5.2.2‑1.1
SIF_EventObject 5.2.2‑1.4
SIF_EventObjectType A.17‑1.1
SIF_Example 5.1.10‑1.13
SIF_ExampleObjectType A.18‑1.1
SIF_ExtendedDesc 5.1.9‑1.5,  5.3.2‑1.12
SIF_ExtendedElement 6.2.36‑1.2
SIF_ExtendedElements 5.3.1‑1.31,  5.3.2‑1.17,  5.3.3‑1.90,  6.2.36‑1.1,  6.3.1‑1.12,  6.3.2‑1.17,  6.3.3‑1.15,  6.3.4‑1.21,  6.3.5‑1.10,  6.3.6‑1.11,  6.3.7‑1.27,  6.3.8‑1.14,  6.3.9‑1.20,  6.3.10‑1.45,  6.3.11‑1.11,  6.3.12‑1.19,  6.3.13‑1.21,  6.3.14‑1.22,  6.3.15‑1.12,  6.3.16‑1.13,  6.3.17‑1.13,  6.3.18‑1.16,  6.3.19‑1.12,  6.3.20‑1.23,  6.3.21‑1.15,  6.3.22‑1.15,  6.3.23‑1.12,  6.3.24‑1.31,  6.3.25‑1.48,  6.3.26‑1.47,  6.3.27‑1.30,  6.3.28‑1.32,  6.3.29‑1.30,  6.3.30‑1.16,  6.3.31‑1.24,  6.3.32‑1.19,  6.3.33‑1.22,  A.1‑1.18
SIF_ExtendedQuery 5.1.11‑1.1,  5.2.6‑1.6,  6.3.7‑1.25
SIF_ExtendedQueryResults 5.1.12‑1.1,  5.2.7‑1.8,  6.3.13‑1.19
SIF_ExtendedQuerySupport 5.2.3‑1.5,  5.2.4‑1.6,  5.2.4‑1.27,  5.2.4‑1.32,  5.3.3‑1.15,  5.3.3‑1.51,  5.3.3‑1.59
SIF_From 5.1.11‑1.9
SIF_GetAgentACL 5.2.15‑1.1
SIF_GetMessage 5.2.13‑1.1
SIF_GetZoneStatus 5.2.14‑1.1
SIF_Header 5.1.2‑1.1,  5.2.1‑1.2,  5.2.2‑1.2,  5.2.3‑1.2,  5.2.4‑1.2,  5.2.5‑1.2,  5.2.6‑1.2,  5.2.7‑1.2,  5.2.8‑1.2,  5.2.9‑1.2,  5.2.17‑1.2,  5.2.18‑1.2,  5.2.19‑1.2,  5.3.2‑1.5,  5.3.2‑1.7
SIF_Icon 5.2.5‑1.14,  5.3.3‑1.4,  5.3.3‑1.65
SIF_Join 5.1.11‑1.11
SIF_JoinOn 5.1.11‑1.13
SIF_LeftElement 5.1.11‑1.14
SIF_LogEntry 5.3.2‑1.1
SIF_LogEntryExtendedContentType A.19‑1.1
SIF_LogEntryHeader 5.3.2‑1.4
SIF_LogObject 5.3.2‑1.14
SIF_LogObjects 5.3.2‑1.13
SIF_MaxBufferSize 5.2.5‑1.5,  5.2.6‑1.4,  5.3.3‑1.79,  6.3.7‑1.5
SIF_Message 5.1.1‑1.1
SIF_Metadata 5.3.1‑1.30,  5.3.2‑1.16,  5.3.3‑1.89,  6.2.37‑1.1,  6.3.1‑1.11,  6.3.2‑1.16,  6.3.3‑1.14,  6.3.4‑1.20,  6.3.5‑1.9,  6.3.6‑1.10,  6.3.7‑1.26,  6.3.8‑1.13,  6.3.9‑1.19,  6.3.10‑1.44,  6.3.11‑1.10,  6.3.12‑1.18,  6.3.13‑1.20,  6.3.14‑1.21,  6.3.15‑1.11,  6.3.16‑1.12,  6.3.17‑1.12,  6.3.18‑1.15,  6.3.19‑1.11,  6.3.20‑1.22,  6.3.21‑1.14,  6.3.22‑1.14,  6.3.23‑1.11,  6.3.24‑1.30,  6.3.25‑1.47,  6.3.26‑1.46,  6.3.27‑1.29,  6.3.28‑1.31,  6.3.29‑1.29,  6.3.30‑1.15,  6.3.31‑1.23,  6.3.32‑1.18,  6.3.33‑1.21,  A.1‑1.17
SIF_Mode 5.2.5‑1.6,  5.3.3‑1.73
SIF_MorePackets 5.2.7‑1.5
SIF_MsgId 5.1.2‑1.2
SIF_Name 5.1.7‑1.6,  5.2.5‑1.3,  5.3.3‑1.3,  5.3.3‑1.6,  5.3.3‑1.64
SIF_NodeVendor 5.2.5‑1.8,  5.3.3‑1.66
SIF_NodeVersion 5.2.5‑1.9,  5.3.3‑1.67
SIF_NotificationType 5.2.16‑1.2
SIF_Object 5.2.3‑1.3,  5.2.4‑1.4,  5.2.4‑1.9,  5.2.4‑1.13,  5.2.4‑1.17,  5.2.4‑1.21,  5.2.4‑1.25,  5.2.4‑1.30,  5.2.8‑1.3,  5.2.17‑1.3,  5.2.19‑1.3,  5.3.1‑1.3,  5.3.1‑1.7,  5.3.1‑1.11,  5.3.1‑1.15,  5.3.1‑1.19,  5.3.1‑1.23,  5.3.1‑1.27,  5.3.3‑1.13,  5.3.3‑1.21,  5.3.3‑1.28,  5.3.3‑1.35,  5.3.3‑1.42,  5.3.3‑1.49,  5.3.3‑1.57
SIF_ObjectData 5.2.2‑1.3,  5.2.7‑1.7
SIF_ObjectList 5.3.3‑1.12,  5.3.3‑1.20,  5.3.3‑1.27,  5.3.3‑1.34,  5.3.3‑1.41,  5.3.3‑1.48,  5.3.3‑1.56
SIF_Operator 5.1.10‑1.11,  5.1.11‑1.26
SIF_OrderBy 5.1.11‑1.28
SIF_OriginalHeader 5.3.2‑1.6
SIF_OriginalMsgId 5.2.1‑1.4
SIF_OriginalSourceId 5.2.1‑1.3
SIF_PacketNumber 5.2.7‑1.4
SIF_Ping 5.2.10‑1.1
SIF_Product 5.2.5‑1.12,  5.3.3‑1.7,  5.3.3‑1.70
SIF_Property 5.1.7‑1.5
SIF_Protocol 5.1.7‑1.1,  5.2.5‑1.7,  5.3.3‑1.74,  5.3.3‑1.84
SIF_ProtocolName 5.3.3‑1.82
SIF_Provide 5.2.3‑1.1
SIF_ProvideAccess 5.3.1‑1.2
SIF_ProvideObjectNamesType A.20‑1.1
SIF_ProvideObjects 5.2.4‑1.3
SIF_Provider 5.3.3‑1.10
SIF_Providers 5.3.3‑1.9
SIF_Provision 5.2.4‑1.1
SIF_PublishAddAccess 5.3.1‑1.10
SIF_PublishAddObjects 5.2.4‑1.12
SIF_PublishChangeAccess 5.3.1‑1.14
SIF_PublishChangeObjects 5.2.4‑1.16
SIF_PublishDeleteAccess 5.3.1‑1.18
SIF_PublishDeleteObjects 5.2.4‑1.20
SIF_Publisher 5.3.3‑1.25,  5.3.3‑1.32,  5.3.3‑1.39
SIF_Query 5.1.10‑1.1,  5.2.6‑1.5,  6.3.7‑1.24
SIF_QueryGroup 6.3.7‑1.23
SIF_QueryObject 5.1.10‑1.2
SIF_RefId 6.3.3‑1.3,  6.3.13‑1.9
SIF_Register 5.2.5‑1.1
SIF_ReportObject 6.3.13‑1.1
SIF_Request 5.2.6‑1.1
SIF_RequestAccess 5.3.1‑1.22
SIF_Requester 5.3.3‑1.54
SIF_Requesters 5.3.3‑1.53
SIF_RequestMsgId 5.2.7‑1.3,  5.2.16‑1.4
SIF_RequestMsgIds 5.2.16‑1.3
SIF_RequestObjectNamesType A.21‑1.1
SIF_RequestObjects 5.2.4‑1.24
SIF_RespondAccess 5.3.1‑1.26
SIF_Responder 5.3.3‑1.46
SIF_Responders 5.3.3‑1.45
SIF_RespondObjects 5.2.4‑1.29
SIF_Response 5.2.7‑1.1
SIF_ResponseObjectsType A.22‑1.1
SIF_ResponseObjectType A.23‑1.1
SIF_RightElement 5.1.11‑1.16
SIF_Rows 5.1.12‑1.7
SIF_SecureChannel 5.1.2‑1.5
SIF_Security 5.1.2‑1.4
SIF_Select 5.1.11‑1.3
SIF_SIFNode 5.3.3‑1.62
SIF_SIFNodes 5.3.3‑1.61
SIF_Sleep 5.2.11‑1.1
SIF_Sleeping 5.3.3‑1.80
SIF_SourceId 5.1.2‑1.8,  5.3.3‑1.72
SIF_Status 5.1.8‑1.1,  5.2.1‑1.5
SIF_Subscribe 5.2.8‑1.1
SIF_SubscribeAccess 5.3.1‑1.6
SIF_SubscribeObjectNamesType A.24‑1.1
SIF_SubscribeObjects 5.2.4‑1.8
SIF_Subscriber 5.3.3‑1.18
SIF_Subscribers 5.3.3‑1.17
SIF_SupportedAuthentication 5.3.3‑1.81
SIF_SupportedProtocols 5.3.3‑1.83
SIF_SupportedVersions 5.3.3‑1.85
SIF_SystemControl 5.2.9‑1.1
SIF_SystemControlData 5.2.9‑1.3
SIF_Timestamp 5.1.2‑1.3
SIF_Unprovide 5.2.17‑1.1
SIF_Unregister 5.2.18‑1.1
SIF_Unsubscribe 5.2.19‑1.1
SIF_URL 5.1.7‑1.4
SIF_Value 5.1.7‑1.7,  5.1.10‑1.12,  5.1.11‑1.27
SIF_Vendor 5.2.5‑1.11,  5.3.3‑1.5,  5.3.3‑1.69
SIF_Version 5.2.5‑1.4,  5.2.5‑1.13,  5.2.6‑1.3,  5.3.3‑1.8,  5.3.3‑1.71,  5.3.3‑1.76,  5.3.3‑1.86,  6.3.7‑1.4
SIF_VersionList 5.3.3‑1.75
SIF_Wakeup 5.2.12‑1.1
SIF_Where 5.1.11‑1.18
SIF_ZoneStatus 5.3.3‑1.1
Size 6.3.8‑1.10
SLA 6.3.4‑1.19,  6.3.10‑1.37
SnapDate 6.3.26‑1.3
SpanGap 6.2.42‑1.9
SpanGaps 6.2.42‑1.8
Staff 6.3.28‑1.18
StaffAssignment 6.3.14‑1.1
StaffAssignmentRefId 6.3.28‑1.19
StaffList 6.3.8‑1.5
StaffLocalId 6.3.28‑1.20,  6.3.29‑1.24,  6.3.32‑1.12
StaffPersonal 6.3.15‑1.1
StaffPersonalLocalId 6.3.12‑1.10
StaffPersonalRefId 6.3.8‑1.6,  6.3.14‑1.5,  6.3.29‑1.23,  6.3.32‑1.7
StaffSubject 6.3.14‑1.13
StaffSubjectList 6.3.14‑1.12
Start 6.3.33‑1.6
StartDate 6.3.2‑1.8,  6.3.17‑1.7,  6.3.30‑1.5,  6.3.31‑1.13
StartDateTime 6.2.42‑1.6,  6.2.42‑1.14
StartDay 6.3.18‑1.7
StartTime 6.3.12‑1.15
StateCourseCode 6.3.9‑1.8
StateOfBirth 6.2.7‑1.7
StateProvince 6.2.1‑1.19,  6.2.38‑1.1
StateProvinceId 6.2.39‑1.1,  6.3.4‑1.4,  6.3.10‑1.4,  6.3.15‑1.4,  6.3.24‑1.10,  6.3.27‑1.7,  6.3.28‑1.7
Street 6.2.1‑1.4
StreetName 6.2.1‑1.11
StreetNumber 6.2.1‑1.9
StreetPrefix 6.2.1‑1.10
StreetSuffix 6.2.1‑1.13
StreetType 6.2.1‑1.12
Student 6.3.28‑1.15
StudentActivityDescription 6.3.26‑1.28
StudentActivityInfo 6.3.16‑1.1
StudentActivityInfoRefId 6.3.17‑1.4,  6.3.26‑1.27
StudentActivityLevel 6.3.16‑1.8
StudentActivityParticipation 6.3.17‑1.1
StudentActivityType 6.3.16‑1.5
StudentAttendance 6.3.1‑1.8
StudentAttendanceSummary 6.3.18‑1.1
StudentContactPersonal 6.3.19‑1.1
StudentContactRelationship 6.3.20‑1.1
StudentDailyAttendance 6.3.21‑1.1
StudentList 6.3.29‑1.16
StudentLocalId 6.3.28‑1.17,  6.3.29‑1.19
StudentParticipation 6.3.22‑1.1
StudentParticipationAsOfDate 6.3.22‑1.4
StudentPeriodAttendance 6.3.23‑1.1
StudentPersonal 6.3.24‑1.1
StudentPersonalRefId 6.3.17‑1.3,  6.3.21‑1.3,  6.3.22‑1.3,  6.3.23‑1.3,  6.3.25‑1.3,  6.3.26‑1.4,  6.3.29‑1.18
StudentSchoolEnrollment 6.3.25‑1.1
StudentSchoolEnrollmentRefId 6.3.27‑1.20,  6.3.28‑1.16
StudentSDTN 6.3.26‑1.1
StudentSnapshot 6.3.27‑1.1
StudentSpecialEducationFTE 6.3.22‑1.12
StudentSubjectChoice 6.3.25‑1.42,  6.3.27‑1.14
StudentSubjectChoiceList 6.3.25‑1.41,  6.3.27‑1.13
StudyDescription 6.3.25‑1.45,  6.3.27‑1.17
SubjectArea 6.2.40‑1.1,  6.2.41‑1.2
SubjectAreaList 6.2.41‑1.1,  6.3.9‑1.10
SubjectLocalId 6.3.14‑1.15,  6.3.25‑1.44,  6.3.27‑1.16,  6.3.28‑1.29,  6.3.32‑1.9,  6.3.33‑1.3
SubjectLongName 6.3.33‑1.12
SubjectShortName 6.3.33‑1.11
SubjectType 6.3.33‑1.13
SubmissionNumber 6.3.13‑1.6
SubmissionReason 6.3.13‑1.7
SubmitterDepartment 6.3.13‑1.12
SubmitterName 6.3.13‑1.11
SubmitterNotes 6.3.13‑1.16
Suffix A.2‑1.10
SummaryEnrollmentInfo 6.3.28‑1.1
System 6.3.10‑1.32
TeacherList 6.3.29‑1.21
TeachingGroup 6.3.29‑1.1
TeachingGroupLocalId 6.3.12‑1.8,  6.3.32‑1.10
TeachingGroupRefId 6.3.28‑1.23,  6.3.32‑1.5
TeachingGroupStudent 6.3.29‑1.17
TeachingGroupTeacher 6.3.29‑1.22
TeachingPeriodsPerDay 6.3.31‑1.9
TermCode 6.3.30‑1.9
TermInfo 6.3.30‑1.1
TermInfoRefId 6.3.9‑1.6
TermSpan 6.3.30‑1.11
TextData A.1‑1.5
TimeElement 6.2.18‑1.14,  6.2.37‑1.3,  6.2.42‑1.1
TimeElements 6.2.18‑1.13,  6.2.37‑1.2
TimeFrame 6.3.25‑1.6
TimeIn 6.3.21‑1.10
TimeOut 6.3.21‑1.11
TimeTable 6.3.31‑1.1
TimeTableCell 6.3.32‑1.1
TimeTableCellRefId 6.3.12‑1.4
TimeTableCreationDate 6.3.31‑1.12
TimeTableDay 6.3.31‑1.16
TimeTableDayList 6.3.31‑1.15
TimeTableLocalId 6.3.32‑1.8
TimetablePeriod 6.3.23‑1.7
TimeTablePeriod 6.3.31‑1.20
TimeTablePeriodList 6.3.31‑1.19
TimeTableRefId 6.3.32‑1.3
TimeTableSubject 6.3.33‑1.1
TimeTableSubjectLocalId 6.3.12‑1.7,  6.3.29‑1.15
TimeTableSubjectRefId 6.3.14‑1.16,  6.3.28‑1.25,  6.3.29‑1.14,  6.3.32‑1.4
Title 6.3.15‑1.10,  6.3.16‑1.3,  6.3.31‑1.6,  A.2‑1.2
Track 6.3.30‑1.10
Type 6.2.7‑1.24,  6.2.42‑1.2,  6.2.42‑1.10,  6.3.11‑1.8
UnexcusedAbsences 6.3.18‑1.12
URIOrBinaryType A.25‑1.1
URL A.1‑1.16
Value 6.2.42‑1.5,  6.2.42‑1.13
VersionType A.26‑1.1
VersionWithWildcardsType A.27‑1.1
VisaExpiryDate 6.2.7‑1.30
VisaStatisticalCode 6.2.7‑1.29
VisaSubClass 6.2.7‑1.28
XCoordinate 6.2.1‑1.25
XMLData A.1‑1.3
YCoordinate 6.2.1‑1.26
YearLevel 6.2.43‑1.1,  6.2.44‑1.2,  6.3.24‑1.21,  6.3.25‑1.12,  6.3.26‑1.17,  6.3.27‑1.25
YearLevels 6.2.44‑1.1,  6.3.2‑1.15,  6.3.10‑1.21,  6.3.14‑1.17,  6.3.16‑1.9
YoungCarersRole 6.3.24‑1.25,  6.3.26‑1.35

1121 Total

Appendix O: Index of Attributes

Action 5.2.2‑1.6
Algorithm 6.3.3‑1.11
Alias 5.1.11‑1.7,  5.1.12‑1.5
CalendarSummaryRefId 6.3.1‑1.3
Codeset 6.2.24‑1.3
ContentType 6.3.7‑1.22
Currency A.7‑1.2
Date 6.3.1‑1.2
Description A.1‑1.4,  A.1‑1.8,  A.1‑1.12,  A.1‑1.15
Distinct 5.1.11‑1.4
EndDate 6.3.18‑1.6
FileName A.1‑1.7,  A.1‑1.11
KeyName 6.3.3‑1.12
LogLevel 5.3.2‑1.3
MIMEType A.1‑1.6,  A.1‑1.10,  A.1‑1.14
Name 6.2.36‑1.3
ObjectName 5.1.10‑1.3,  5.1.11‑1.8,  5.1.11‑1.10,  5.1.11‑1.15,  5.1.11‑1.17,  5.1.11‑1.25,  5.1.11‑1.30,  5.1.12‑1.4,  5.2.2‑1.5,  5.2.3‑1.4,  5.2.4‑1.5,  5.2.4‑1.10,  5.2.4‑1.14,  5.2.4‑1.18,  5.2.4‑1.22,  5.2.4‑1.26,  5.2.4‑1.31,  5.2.8‑1.4,  5.2.17‑1.4,  5.2.19‑1.4,  5.3.1‑1.4,  5.3.1‑1.8,  5.3.1‑1.12,  5.3.1‑1.16,  5.3.1‑1.20,  5.3.1‑1.24,  5.3.1‑1.28,  5.3.2‑1.15,  5.3.3‑1.14,  5.3.3‑1.22,  5.3.3‑1.29,  5.3.3‑1.36,  5.3.3‑1.43,  5.3.3‑1.50,  5.3.3‑1.58
Ordering 5.1.11‑1.31
QueryLanguage 6.3.7‑1.18
RefId 6.3.2‑1.2,  6.3.3‑1.2,  6.3.4‑1.2,  6.3.5‑1.2,  6.3.6‑1.2,  6.3.7‑1.2,  6.3.8‑1.2,  6.3.9‑1.2,  6.3.10‑1.2,  6.3.11‑1.2,  6.3.12‑1.2,  6.3.13‑1.2,  6.3.14‑1.2,  6.3.15‑1.2,  6.3.16‑1.2,  6.3.17‑1.2,  6.3.19‑1.2,  6.3.21‑1.2,  6.3.22‑1.2,  6.3.23‑1.2,  6.3.24‑1.2,  6.3.25‑1.2,  6.3.26‑1.2,  6.3.28‑1.2,  6.3.29‑1.2,  6.3.30‑1.2,  6.3.31‑1.2,  6.3.32‑1.2,  6.3.33‑1.2,  A.1‑1.2
ReportAuthorityInfoRefId 6.3.7‑1.3
ReportManifestRefId 6.3.13‑1.4
Role 6.2.1‑1.3
RowCount 5.1.11‑1.5
SchemaName 6.3.3‑1.8
SchoolInfoRefId 6.3.18‑1.3
SchoolYear 6.3.18‑1.4
Secure 5.1.7‑1.3
Severity 6.3.24‑1.8
SIF_Action 6.2.2‑1.3,  6.2.12‑1.3,  6.2.25‑1.3,  6.2.28‑1.3,  6.2.36‑1.5
SIF_RefObject 6.2.20‑1.5,  6.3.3‑1.4,  6.3.5‑1.4,  6.3.7‑1.7,  6.3.10‑1.9,  6.3.13‑1.10,  6.3.22‑1.11,  6.3.25‑1.14,  6.3.25‑1.16,  6.3.25‑1.18,  6.3.25‑1.23,  6.3.27‑1.27,  6.3.28‑1.5
SnapDate 6.3.27‑1.2
Source 5.3.2‑1.2
SourceId 5.3.3‑1.11,  5.3.3‑1.19,  5.3.3‑1.26,  5.3.3‑1.33,  5.3.3‑1.40,  5.3.3‑1.47,  5.3.3‑1.55
StartDate 6.3.18‑1.5
StudentContactPersonalRefId 6.3.20‑1.3
StudentPersonalRefId 6.3.18‑1.2,  6.3.20‑1.2,  6.3.27‑1.3
Type 5.1.7‑1.2,  5.1.10‑1.6,  5.1.10‑1.8,  5.1.11‑1.12,  5.1.11‑1.20,  5.1.11‑1.22,  5.3.3‑1.63,  6.2.1‑1.2,  6.2.1‑1.24,  6.2.9‑1.2,  6.2.11‑1.2,  6.2.20‑1.2,  6.2.21‑1.2,  6.2.27‑1.2,  6.3.5‑1.7,  6.3.7‑1.17,  6.3.7‑1.21,  6.3.15‑1.8,  6.3.19‑1.6,  6.3.24‑1.5,  6.3.24‑1.14,  A.9‑1.2,  A.11‑1.2
Version 5.1.1‑1.3
xmlns 5.1.1‑1.2
xsi:type 5.1.12‑1.6,  6.2.36‑1.4
ZoneId 5.3.3‑1.2

159 Total

Appendix P: References

Architecture/Infrastructure

KeyCitation
EXPORT

U.S. Bureau of Industry and Security. Commercial Encryption Export Controls.  6 July 2006 <http://www.bis.doc.gov/Encryption/>.

FAVICON

Favicon - Wikepedia, the free encyclopedia.  6 July 2006 <http://en.wikipedia.org/wiki/Favicon>.

MIME

IETF (Internet Engineering Task Force). RFC 2048: Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures. 1996 November.  6 July 2006 <http://www.ietf.org/rfc/rfc2048.txt>.

RFC 2045

IETF (Internet Engineering Task Force). RFC 2045: Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies. 6 July 2006 <http://www.ietf.org/rfc/rfc2045.txt>.

RFC 2046

IETF (Internet Engineering Task Force). RFC 2046: Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types.  6 July 2006 <http://www.ietf.org/rfc/rfc2046.txt>.

RFC 2119

IETF (Internet Engineering Task Force). RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. 11 December 2008 <http://www.ietf.org/rfc/rfc2119.txt>.

RFC 2246

IETF (Internet Engineering Task Force). RFC 2246: The TLS Protocol: Version 1.0. 6 July 2006 <http://www.ietf.org/rfc/rfc2246.txt>.

RFC 2376

IETF (Internet Engineering Task Force): RFC 2376: XML Media Types. 6 July 2006 <http://www.ietf.org/rfc/rfc2376.txt>.

RFC 2396

IETF (Internet Engineering Task Force): RFC 2396: Uniform Resource Identifiers (URI): Generic Syntax. 13 July 2006 <http://www.ietf.org/rfc/rfc2396.txt>.

RFC 2518

IETF (Internet Engineering Task Force). RFC 2518: HTTP Extensions for Distributed Authority—WEBDAV.  6 July 2006 <http://www.ietf.org/rfc/rfc2518.txt>.

RFC 2616

IETF (Internet Engineering Task Force). RFC 2616: Hypertext Transport Protocol—HTTP 1.1. 6 July 2006 <http://www.ietf.org/rfc/rfc2616.txt>.

RFC 4122

IETF (Internet Engineering Task Force). A Universally Unique IDentifier (UUID) URN Namespace. 3 July 2006 <http://www.ietf.org/rfc/rfc4122.txt>.

SCHEMA

World Wide Web Consortium (W3C). XML Schema Part 1: Structures. 6 July 2006 <http://www.w3.org/TR/xmlschema-1/>.

World Wide Web Consortium (W3C). XML Schema Part 2: Datatypes. 6 July 2006 <http://www.w3.org/TR/xmlschema-2/>.

A non-normative primer on XML Schema is also available:

World Wide Web Consortium (W3C). XML Schema Part 0: Primer. 6 July 2006 <http://www.w3.org/TR/xmlschema-0/>.

Schneier

Schneier, Bruce. Applied Cryptography: Protocols, Algorithms, and Source Code in C (Second Edition). John Wiley & Sons, 1995.

SIF Certification

Schools Interoperability Framework Association (SIF Association). SIF Certification - Product Standards. 23 May 2007 <http://certification.sifinfo.org/docs/prodstandards.tpl>.

SIF Reporting WS

Schools Interoperability Framework Association (SIF Association). Schools Interoperability Framework™ Reporting Web Service 1.0. 28 September 2006 <http://specification.sifinfo.org/WebServices/Reporting/1.0>.

SSL2

Netscape.  SSL 2.0 Protocol Specification. 6 July 2006 <http://wp.netscape.com/eng/security/SSL_2.html>.

SSL3

Netscape.  The SSL Protocol Version 3.0. 6 July 2006 <http://wp.netscape.com/eng/ssl3/draft302.txt>.

WSARCH

World Wide Web Consortium (W3C). Web Services Architecture. 16 July 2006 <http://www.w3.org/TR/ws-arch/>.

XML

W3C (World Wide Web Consortium). Extensible Markup Language (XML) 1.0 (Third Edition). 6 July 2006 <http://www.w3.org/TR/2004/REC-xml-20040204>.

XMLINTRO

W3C (World Wide Web Consortium). XML in 10 Points. 13 July 2006 <http://www.w3.org/XML/1999/XML-in-10-points.html>.

XMLNS

W3C (World Wide Web Consortium). Namespaces in XML. 6 July 2006 <http://www.w3.org/TR/REC-xml-names/>.

XPath

W3C (World Wide Web Consortium). XML Path Language (XPath) Version 1.0. 6 July 2006 <http://www.w3.org/TR/xpath>.

Data Model

KeyCitation
CanadaPost Canada Post. Canada Postal Guide. 6 July 2006 <http://www.canadapost.ca/personal/tools/pg/manual/b03-e.asp>.
ABS Australian Bureau of Statistics <http://www.abs.gov.au/>.
CNDB

USDA (United States Department of Agriculture). Child Nutrition Database (CNDB). 6 July 2006 <http://riley.nal.usda.gov/nal_display/index.php?info_center=14&tax_level=2&tax_subject=234&topic_id=1210>

DES

FIPS (Federal Information Processing Standards). Publication 46-3: Data Encryption Standard (DES). 25 October 1999. 06 July 2006 <http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf>.

DSS

FIPS (Federal Information Processing Standards). Publication 186-2: Digital Signature Standard (DSS). 27 January 2000. 6 July 2006 <http://csrc.nist.gov/publications/fips/fips186-2/fips186-2-change1.pdf>.

EDEN

U.S. Department of Education. File Specifications — Performance-Based Data Management Initiative (PBDMI). 7 September 2006 <http://www.ed.gov/about/inits/ed/pbdmi/file-specifications.html>.

FAVICON

Favicon - Wikepedia, the free encyclopedia.  6 July 2006 <http://en.wikipedia.org/wiki/Favicon>.

IRSTIN

IRS (Internal Revenue Service) ITIN and ATIN definitions. Publication 1915: Understanding Your IRS Individual Taxpayer Identification Number (Rev. 2-2004). 2004 February. 6 July 2006 <http://www.irs.gov/pub/irs-pdf/p1915.pdf>

ISO 3166/MA

ISO (International Standards Organization). ISO 3166 Maintenance agency (ISO 3166/MA). 6 July 2006 <http://www.iso.org/iso/en/prods-services/iso3166ma/index.html>.

ISO 3166-1

ISO (International Standards Organization). English country names and code elements. 6 July 2006 <http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html>.

ISO 3166-3

ISO (International Standards Organization). ISO 3166-3:1999—Codes for the representation of names of countries and their subdivisions—Part 3:Codes for formerly used names of countries.

ISO 6709

ISO (International Standards Organization). ISO 6709-1983 (E)—Standard representation of latitude, longitude and altitude for geographic point locations (First edition—1983-05-15). International Organization for Standardization, 1983

JPEG

IJG (Independent JPEG Group). JPEG File Interchange Format Version 1.02. 6 July 2006 <http://www.w3.org/Graphics/JPEG/jfif3.pdf>.

LOM

IEEE (Institute of Electrical and Electronics Engineers, Inc.). IEEE LTSC | WG12. 10 July 2006 <http://ltsc.ieee.org/wg12/>.

MD5

IETF (Internet Engineering Task Force). RFC 1321: The MD5 Message-Digest Algorithm. 1992 April.  6 July 2006 <http://www.ietf.org/rfc/rfc1321.txt>.

NCES

NCES (National Center for Education Statistics). NCES Handbooks Online. 6 July 2006  <http://nces.ed.gov/programs/handbook/toc.asp>.

RC2

IETF (Internet Engineering Task Force). RFC 2268: A Description of the RC2 Encryption Algorithm. 1998 March.  6 July 2006 <http://www.ietf.org/rfc/rfc2268.txt>.

RSA

IETF (Internet Engineering Task Force). RFC 2313: PKCS #1: RSA Encryption. 1998 March. 6 July 2006 <http://www.ietf.org/rfc/rfc2313.txt>.

SAFETY

NCES (National Center for Education Statistics). Safety in Numbers: Collecting and Using Crime, Violence and Discipline Incident Data to Make a Difference in Schools. 13 July 2006 <http://nces.ed.gov/pubs2002/safety/chapter4.asp>.

SCED National Center for Education Statistics. Secondary School Course Classification System: School Codes for the Exchange of Data. 23 May 2007 <http://nces.ed.gov/pubs2007/2007341.pdf>.
SHA1

FIPS (Federal Information Processing Standards). Publication 180-1: Secure Hash Standard (SHS). 17 April 1995. 6 July 2006 <http://www.itl.nist.gov/fipspubs/fip180-1.htm>.

USPS

United States Postal Services (USPS). Abbreviations. 6 July 2006 <http://www.usps.com/ncsc/lookups/usps_abbreviations.html>.

Z39.53

NISO (National Information Standards Organization). ANSI/NISO Z39.53-2001: Codes for the Representation of Languages for Information Interchange. NISO Press, 2001. 6 July 2006 <http://www.niso.org/standards/resources/Z39-53.pdf>.

Z39.53/MA

Library of Congress (Z39.53 Maintenance Agency). MARC Code List for Languages. 6 July 2006 <http://lcweb.loc.gov/marc/languages/>.

ABS 1269.0

Australian Bureau of Statistics - 1269.0 - Standard Australian Classification of Countries (SACC), Second Edition. <http://www.abs.gov.au/AUSSTATS/abs@.nsf/DetailsPage/1269.0Second%20Edition?OpenDocument>.

ABS 1249.0

Australian Bureau of Statistics - 1249.0 - Australian Standard Classification of Cultural and Ethnic Groups (ASCCEG), 2005-06. <http://www.abs.gov.au/AUSSTATS/abs@.nsf/DetailsPage/1249.02005-06?OpenDocument>.

ABS 1267.0

Australian Bureau of Statistics - 1267.0 - Australian Standard Classification of Languages (ASCL), 2005-06. <http://www.abs.gov.au/AUSSTATS/abs@.nsf/DetailsPage/1267.02005-06?OpenDocument>.

ABS 1266.0

Australian Bureau of Statistics - 1266.0 - Australian Standard Classification of Religious Groups, 2005. <http://www.abs.gov.au/AUSSTATS/abs@.nsf/DetailsPage/1266.02005?OpenDocument>.

ABS 1216.0

Australian Bureau of Statistics - 1216.0 - Australian Standard Geographical Classification (ASGC), Jul 2008. <http://www.abs.gov.au/AUSSTATS/abs@.nsf/DetailsPage/1216.0Jul%202008?OpenDocument>.

MCEECDYA

The Ministerial Council for Education, Early Childhood Development and Youth Affairs. <http://www.mceetya.edu.au/mceecdya/>.

DEEWR

Department of Education, Employment and Workplace Relations. <http://www.deewr.gov.au/Pages/default.aspx>.