# 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.

- 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 the specification, 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.
- Architecture describes the assumptions, concepts, models, and requirements related to the SIF infrastructure and data model.
- Messaging details the actions Agents and Zone Integration Servers take when sending and receiving messages.
- Infrastructure provides definitions of the XML structure of elements, messages and objects related to SIF infrastructure as opposed to data in the pK-12 environment.
- 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.
- Zone Services details the data formats and operation choreographies of the interfaces which Zone Services provide in support of their clients.
- 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 `r` revision 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.3

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

### 2.4.1 Zone Services

Zone Services is the third major transactional model of the SIF Implementation Specification; joining the publish/subscribe and the request/response functionality. Zone Services provides its clients (existing SIF applications and other Zone Services) with the following capabilities:

- Customized Interfaces

  The supported operations and notifications of a Zone Service can extend beyond the “create/read/update/delete” (CRUD) data interface of an object provider.

- Process Choreographies

  A Zone Service interface can encapsulate the implementation details of a stateful process that includes multiple transactions.

- Customized Data Collections

  A Zone Service response can package together data elements from multiple data objects of different types, effectively encapsulating the SIF Data Object hierarchy.

Four new messages were added to the SIF infrastructure to support these capabilities: ServiceInput, ServiceOutput, ServiceNotification, and CancelServiceInputs. Message processing choreographies are described in Section 4: Messaging and message contents are defined in Section 5: Infrastructure.

Three sets of Zone Services are included with this release, all of which are defined in Section 7: Zone Services.

- Student and Staff Identifier
- Assessment
- Student Record Exchange

The specific changes are detailed below.

- Added SIF Zone Services Infrastructure
- Added new SIF Zone Service serviceAgencyStudentIdRequest
- Added new SIF Zone Service serviceAgencyStudentIdManagement
- Added new SIF Zone Service serviceAgencyStaffIdRequest
- Added new SIF Zone Service serviceAgencyStaffIdManagement
- Added new SIF Zone Service serviceAssessmentProcessing
- Added new SIF Zone Service serviceAssessmentAdministration
- Added new SIF Zone Service serviceSREBroker
- Added new SIF Zone Service serviceSREPublisher
- Added new SIF Zone Service serviceSREConsumer
- Added new SIF Zone Service serviceSREDemographicRecordConsumer
- Added new SIF Zone Service serviceSREAcademicRecordConsumer
- Added new SIF Zone Service serviceSRESpecialEducationRecordConsumer

### 2.4.2 Data Model

Data Model changes were made for Instructional Services, Student Record Exchange, Assessment, Special Programs, Student Information Systems and Metadata. The specific changes are detailed below.

- Added code set value(s) to 1048 Secondary Incident Behavior
- Added code set value(s) to LearningStandardDocument/Source
- Added code set value(s) to ProgramStatus/Code
- Added code set value(s) to StudentPlacement/FrequencyTime/Code
- Added common element ExtendedTechnicalRequirements
- Added common element OtherIdList
- Added common element PersonInfo
- Added element Activity/ExtendedTechnicalRequirements
- Added element AssessmentItem/ItemScoreMaximum
- Added element AssessmentItem/ItemScoreMinimum
- Added element AssessmentItem/PerformanceLevels
- Added element AssessmentSubTest/Abbreviation
- Added element AssessmentSubTest/ContainerOnly
- Added element AssessmentSubTest/Description
- Added element AssessmentSubTest/NumberOfItems
- Added element Assignment/ExtendedTechnicalRequirements
- Added element CalendarDate/BellScheduleDayList
- Added element Demographics/FirstUSEnrollment
- Added element DisciplineIncident/IncidentActionList
- Added element DisciplineIncident/IncidentDescription
- Added element DisciplineIncident/OffenderList/Offender/ManifestationDetermination/MeetingOutcome
- Added element DisciplineIncident/OffenderList/Offender/RelatedToList
- Added element DisciplineIncident/OffenderList/Offender/WeaponTypeList
- Added element EducationFilter/LearningObjectives
- Added element EducationFilter/ResourceTypes
- Added element EducationFilter/Summary
- Added element EducationFilter/Title
- Added element LearningStandardItem/Level4
- Added element LearningStandardItem/Level5
- Added element MeetingTime/TimetableDay
- Added element MeetingTime/TimetablePeriod
- Added element SectionInfo/BellScheduleInfoRefId
- Added element SectionInfo/CountForAttendance
- Added element SectionInfo/CourseSection
- Added element SectionInfo/SectionCode
- Added element StudentAcademicRecord/CourseHistory/Term/Courses/Course/MarkingPeriods/MarkingPeriod/CourseCreditsEarned
- Added element StudentAcademicRecord/CourseHistory/Term/Courses/Course/SectionInfoData
- Added element StudentAcademicRecord/EnrollmentHistory/StudentSchoolEnrollmentData/EntryType
- Added element StudentAcademicRecord/EnrollmentHistory/StudentSchoolEnrollmentData/ExitStatus
- Added element StudentAcademicRecord/EnrollmentHistory/StudentSchoolEnrollmentData/ExitType
- Added element StudentAcademicRecord/EnrollmentHistory/StudentSchoolEnrollmentData/GradeLevel
- Added element StudentAcademicRecord/EnrollmentHistory/StudentSchoolEnrollmentData/StudentLEARelationship
- Added element StudentAcademicRecord/EnrollmentHistory/StudentSchoolEnrollmentData/StudentSchoolRelationship
- Added element StudentAttendanceSummary/StudentSchoolEnrollmentRefId
- Added element StudentDemographicRecord/StudentPersonalData/Demographics/CountryOfBirth
- Added element StudentDemographicRecord/StudentPersonalData/Demographics/DwellingArrangement
- Added element StudentDemographicRecord/StudentPersonalData/Demographics/HispanicLatino
- Added element StudentParticipation/AdditionalProgramAvailabilityList
- Added element StudentParticipation/CaseManager
- Added element StudentResponseSet/Items/Item/ItemAidSetUsed
- Added element StudentResponseSet/Items/Item/ItemScore
- Added element StudentSchoolEnrollment/PromotionInfo/Nonpromotion
- Added element StudentSchoolEnrollment/PromotionInfo/Promotion
- Added element StudentScoreSet/Scores/Score/Description
- Added element StudentScoreSet/Scores/Score/NumberOfResponses
- Added element StudentSpecialEducationRecord/StudentParticipationData/StudentSpecialEducationFTE
- Added element StudentSpecialEducationRecord/StudentParticipationList
- Added element StudentSpecialEducationRecord/StudentPlacementList
- Added object BellSchedule
- Added object ContentCatalog
- Added object StudentContactPersonal
- Added object StudentContactRelationship
- Added object StudentSpecialEducationSummary
- Corrected description EmployeeContract/BaseSalary
- Updated element description StudentAttendanceSummary/DaysAttended
- Updated element description StudentAttendanceSummary/DaysInMembership
- Updated element description StudentAttendanceSummary/EndDate
- Updated element description StudentAttendanceSummary/EndDay
- Updated element description StudentAttendanceSummary/ExcusedAbsences
- Updated element description StudentAttendanceSummary/FTE
- Updated element description StudentAttendanceSummary/Resident
- Updated element description StudentAttendanceSummary/StartDate
- Updated element description StudentAttendanceSummary/StartDay
- Updated element description StudentAttendanceSummary/UnexcusedAbsences
- Updated element description StudentAttendanceSummary
- Updated element type StudentContactPersonal/EducationalLevel

### 2.4.3 Content Catalog

The addition of the ContentCatalog object makes it possible to search for relevant instructional assets that reside in multiple content repositories, and return one catalog of those resources.

### 2.4.4 Enhanced Security

An XML Filtering capability on both elements and messages has been defined for the ZIS to allow it to implement site-specific data security policies.

### 2.4.5 XSD Updates

The way that a choice block is implemented in Data Model objects has been changed. Since SIF Implementation Specification 2.0r1, a choice of elements has been implemented in the schema files as a sequence of optional elements. The requirement to include just one, and only one, of the elements of the choice block has not been enforced in the schema. Infrastructure objects and messages do not use this approach.

Beginning with version 2.4, the Data Model schema will fully enforce choice blocks by utilizing the xs:choice tag. Agents implementing the Specification as written will not be affected. The following Data Model object schemas will change slightly:

- FoodserviceTransaction
- ReportManifest
- SIF_ReportObject
- AbstractContentElementType
- AbstractContentPackageType