# 2 Introduction

## 2.1 Specification Organization

With respect to the SIF Specification, 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. This document, the SIF Data Model Implementation Specification, contains a Data Model section in a format that should not be a barrier to readers with a some knowledge of [XML]. More technical readers, including software architects, developers and integrators, will also be interested in the separate SIF Infrastructure Implementation Specification document.

- The Preamble provides an abstract of SIF along with the SIF Association disclaimer and details regarding certification and compliance claims.
- This Introduction outlines the organization of this specification document, provides conventions used in this document, and summarizes versioning of the specification. Highlights of additions/changes since the previous version of the specification are also provided.
- The Data Model section provides definitions of the XML structure for common elements in the data model and all objects related to entities in the pK-12 environment. This section is organized by the working groups and task forces within the SIF Association that have defined common elements or objects.
- The document concludes with various appendices including lists of code set values defined within SIF and in external documents, and ends with a list of references to other documents.

## 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 occurring 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 marked with ellipses, e.g., `| ...`

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 version `.` revision number `(X.Y.Z)`

Once a versioned specification (Specification Release) has been released, the contents of that version MUST NOT be modified. Any modifications MUST be released under a new Specification Version Number unless the modification is the correction of an error or update of documentation. Each Specification Release has an associated errata section in which modifications and corrections of the release are listed.

A Specification Version Number for a Specification Release uses conventions as follows:

- A Specification Version Number MAY take the form `X.Y.Z` where `X`, `Y`, and `Z` are nonnegative integers (whole numbers), and MUST NOT contain leading zeroes. `X` represents the Major version, `Y` represents the Minor version, and `Z` represents the Revision version.
- Each version number element MUST increase sequentially based on the guidelines defined within this document; for instance, `1.9.1` to `1.10` to `1.11` to `1.11.1` .
- Precedence refers to how versions are compared to each other when ordered. Precedence MUST be calculated by separating the version into major, minor, revision identifiers in that order. Precedence is determined by the first difference when comparing each of these identifiers from left to right as follows: Major, Minor, and Revision versions are always compared numerically; for example, `1.0.0` < `2.0.0` < `2.1.0` < `2.1.1` .

An instance of a Specification Version Number is the canonical identifier for a Specification Release. The manner in which the Specification Version Number increments after a given Specification Release depends on the type and relative magnitude of changes being proposed in the new release as follows:

1. The Revision version number ( `Z` in x.y.`Z`, where `x` >= 0) MUST be incremented when specification changes are limited to backward compatible changes. If `Z`=0 then the convention is to drop the Revision number: for example, `3.1` instead of `3.1.0`. Backward compatible changes include the following:

- New data object.
- New optional data object element.
- New optional utility service object element.

2. The Minor version number ( `Y` in x.`Y`.z, where `x` > 0 ) MUST be incremented if new functionality is added to the specification. It MUST be incremented if any aspect of the specification is marked as deprecated. It MUST be incremented if any aspect of the specification is not backward compatible. (Backward compatible means any change that can be implemented by one participant (consumer, Environment or service provider) without requiring changes by other participants to maintaining the same level of interoperability.) It MAY be incremented if substantial new functionality or improvements are introduced. It MAY include changes that are categorized as ”Revision” level magnitude. The Revision version MUST be reset to 0 when the Minor version is incremented. Changes requiring a Minor version increment include the following:

- New mandatory data object element.
- New mandatory utility service object element.
- Deprecate data object element.
- Deprecate data object.
- Deprecate utility service object element.
- Deprecate utility service object.
- Remove deprecated data object element.
- Remove deprecated data object.
- Remove deprecated utility service object element.
- Remove deprecated utility service object.
- Add support for additional authentication methods.
- Add support for additional TLS version.
- Any changes concerning security.
- Any optional to mandatory change.
- Add support for additional payload representations.

3. The Major version number ( `X` in `X`.y.z, where `X` > 0 ) MUST be incremented if a significant change is introduced to the specification. It MAY include changes categorized as Minor and Revision level changes. The Revision and Minor version numbers MUST be reset to 0 when the Major version is incremented. Changes requiring a Major version increment include the following:

- Deprecate payload representation.
- Remove deprecated payload representation.
- Add support for a distinct data model namespace.
- Replace (deprecate and remove) a locale data model.
- Any significant change that requires the Major version to be incremented as deemed by the A4L Association Board for global specifications and Management Boards for locale data models.

## 2.4 Highlighted Additions/Changes

This release contains the following significant updates and extensions to the SIF specification.

### Additions/Changes since 3.4.3 (April, 2018)

#### New Objects

- StudentScoreJudgementAgainstStandard - Proposed by Catholic Education, Melbourne
- FinancialQuestionnaireSubmission - Proposed for Australian Government, Collections Projects
- AGStatusReport - Proposed for Australian Government, Collections Projects

#### New Types

- StudentGroupListType - added to StudentSchoolEnrollment, Proposed by Simon Schools
- PhotoPermissionListType - added to PersonPicture, Proposed for NSW 3PI Project
- PreviousSchoolName - Contained in StaffAssignment
- ESLSupport - Contained in StudentPersonal
- PreviousSchoolName - Contained in StudentSchoolEnrollment
- DestinationSchoolName - Contained in StudentSchoolEnrollment
- FQReporting and FQReportingList - Contained in FQReportingCollection
- AGReportingObjectResponseListType - Contained in AGStatusReport
- AGReportingObjectResponseType - Contained in AGStatusReport
- FQContextualQuestionListType - Contained in FQReporting
- FQContextualQuestionType - Contained in FQReporting
- FQItemListType - Contained in FQReporting
- FQItemType - Contained in FQReporting
- AGRuleListType - Contained in AGStatusReport
- AGRuleType - Contained in AGStatusReport
- SoftwareVendorInfoContainerType - Contained in AGStatusReport
- EntityContactInfoType - Contained in FQReporting
- RegistrationDetails - Contained in ContactInfoType
- Qualifications - Contained in ContactInfoType
- InterpreterRequired - Contained in DemographicsType

#### New CodeSets

- Permission Category Code - added to support PhotoPermissionList
- Group Category Code - added to support StudentGroupList
- AG Submission Status - added to support AG Collections - added in the errata release

#### Changes

- LearningStandardItemRefId changed from Optional Repeating to Optional (Error Correction)
- NAPTestletContentType/TestletName changed from Mandatory to Optional for use with NAPLAN 2019
- DomainScoreType/PlausibleScaledValueList changed from Mandatory Repeating to Mandatory (Error Correction)
- StimulusType/TextDescriptor changed from Mandatory to Optional for use with NAPLAN 2019
- Other minor typos, broken links and various descriptions updated
- For errata Release - FQItemType - ‘FQComments’ now Optional
- For errata Release - FQReporting- Contact Email, PhoneNumber now Mandatory.Name – Given Name and Family Name to be provided.

#### The following elemnts of type changed from Mandatory Repeating to Optional Repeating for use with NAPLAN 2019

- PlausibleScaledValueListType/PlausibleScaledValue
- SubstituteItemListType/SubstituteItem
- SubstituteItemType
- CodeFrameTestItemListType/TestItem
- CodeFrameTestItemType
- StimulusLocalIdListType/StimulusLocalId
- NAPTestItemListType/TestItem
- NAPTestItem2Type
- NAPCodeFrameTestletListType/Testlet
- NAPTestletCodeFrameType
- NAPStudentResponseTestletListType/Testlet
- NAPTestletResponseType
- NAPTestletItemResponseListType/ItemResponse
- NAPTestletResponseItemType
- NAPSubscoreListType/Subscore
- NAPSubscoreType
- NAPWritingRubricListType/NAPWritingRubric
- NAPWritingRubricType
- ScoreListType/Score
- ScoreType
- ScoreDescriptionListType/ScoreDescriptor
- StimulusListType/Stimulus
- StimulusType
- ContentDescriptionListType/ContentDescription
- PNPCodeListType/PNPCode
- TestDisruptionListType/TestDisruption
- TestDisruptionType
- LanguageBaseType

#### Changes to CodeSets

- Visa Sub Class Codes updated from https://immi.homeaffairs.gov.au/visas/getting-a-visa/visa-listing updated,Added - 790 Safe Haven
- Changes to PNP Codes for NAPLAN 2019 -AIM, AAM, AVM, ALL - not in use for 2019; Values added, BNB, BNG, BNL, BNW, BNY, CAL, ENZ, EST, LFS, RZL, ZOF, ZTFAO
- Added to Exit/Withdrawal Type codes: 1940 - Deceased, 1941 - Permanently incapacitated
- Added to Relationship to Student codes: 40 - Medical Contact
- Added to Attendance Codes: 619 - School endorsed religious event
- In Errata Release - NAP Test Item Changes: HT (Hot Text) changed to TS, CO (Composite) changed to COMP, IO Order interaction changed to Interactive Order

### Deletions

- ResourceUsage and SystemRole remain marked for deprecation in 3.5