Schools Interoperability Framework
SIF Implementation Specification 2.4 Errata






Specification:
http://specification.sifassociation.org/Implementation/2.4/

This version:
http://specification.sifassociation.org/Implementation/2.4/errata/2/
Previous version:
http://specification.sifassociation.org/Implementation/2.4/errata/1/
Latest version:
http://specification.sifinfo.org/Implementation/2.4/errata/2/


Copyright ©2010 Schools Interoperability Framework Association. All Rights Reserved.


Errata as of 2010-09-09

(1) 4.1.1.7 & 4.2.2.8: SIF Provisioning must include Zone Service authentication

Neither the process steps which indicate how an agent can declare itself as a supplier or user of Zone Services, nor the process steps which allow the ZIS to recognize such declarations have been included in the SIF_Provision process flow logic.

For this initial release of Zone Services, the preset ACL tables in all ZIS-certified products which are currently used to limit the rights of applications with respect to object provisioning and subscription MUST be extended to include the application rights with regards to Zone Services provisioning as well.

Instead of specifically asserting those rights in the Provision method, Zone Services and clients of Zone Services MUST rely on preset ACLs within the ZIS to authorize them. These are retrievable through the “SIF_RequestService and SIF_SubscribeService elements of the SIF_AgentACL object.

(2) 4.2.2.10: Version check missing from SIF_Request process flow

An additional ZIS messaging check during SIF_Request handling is required. If none of the SIF_Request/SIF_Version elements are supported by the provider/responder, even using wildcard matching, an appropriate error " Request and Response/7 -- Responder does not support requested SIF_Version" must be returned by the ZIS.

(3) 4.2.2.10: SIF_ExtendedQuery logic missing from SIF_Request process flow

Step 2 mistakenly assumes all SIF_Requests are SIF_Query-based. This ignores the possibility that the request could be a SIF_ExtendedQuery, which also must be handled by the receiving ZIS.

(4) 4.2.2.17 & 4.2.2.17: Error handling logic for push mode agents missing from SIF_CancelServiceInputs and SIF_CancelRequests process flow

As non-queued messages, step 6 in each process flow should indicate that if a failure to reach the Push-mode agent occurs, a SIF_LogEntry be published.

(5) 4.2.2.22: Omission of error check in the SIF_ServiceNotify process flow

The rule that “only one service provider per zone may publish notifications for that service into the zone” is not documented in the SIF_ServiceNotify process flow.

(6) 6.10.8: LearningStandardItem element PredecessorItems/LearningStandardItemRefId description is incorrect

The second paragraph should be deleted. The value of this element should be NULL if no predecessor item exists.

(7) 6.14.5: DisciplineIncident Object subelement name change

There is an element in the published DisciplineIncident object called ActionList. This element has a type = 'List.' Since the SIF Data Model currently supports two list types called List and ActionList this resulted in an element called ActionList and a type called ActionList, further confused by the fact that the element ActionList is of type List.

The solution mandated that the element name be changed. IncidentActionList/Action is now IncidentActionList/IncidentAction.

(8) 6.14.23: Remove reference to “Timeframe=Current” in StudentSchoolEnrollment description

The wording in the 2nd paragraph should now read as follows "Note there is only one current home enrollment at a time for a student. One and only one instance of the StudentSchoolEnrollment object must exist for a given student with MembershipType=Home for the time interval between EntryDate and ExitDate, inclusive."

(9) 5.2.22, 5.2.23: Error in SIF_ServiceOutput and SIF_ServiceNotify element type

SIF_PacketNumber is a positiveInteger for both these messages as opposed to an unsignedInt. This has been corrected in the XSD.

(10) 5.3.3: An apparent schema error exists for SIF_ZoneStatus

There is an apparent spec/schema error in 5.3.3 SIF_ZoneStatus that throws off .NET XML serialization resulting from the schema. Specifically Service_Requesters is defined as OR, as is child element Service_Requester.

Service_Requesters has been redefined as optional (O), since all the other similar related zone service additions - Service_Providers, Service_Responders, Service_Subscribers are optional. Service_Requesters and other child repeatable elements have been redefined as MR. This has been corrected in the XSD.

(11) 6.6.11, 6.6.13: Staff and Student Enrollment Count

Both these objects should have a composite primary key consisting of @SchoolInfoRefId and @Date. The Date has been omitted. This has been corrected in the XSD.

(12) 7.2.3.2: Omitted Match element in Agency Identifier Service RequestIdentifierResponse

The Agency Identifier Service RequestIdentifierResponse message was missing an outer “Match” element. This meant it would only support one ambiguous match per packet. This has been corrected in the XSD.

The exhibit below shows the updated portion of the Specification related to this errata item.



7.2.3.2 RequestIdentifierResponse

Figure 7.2.3.2-1: RequestIdentifierResponse RequestIdentifierResponse TransactionId Match IdStatus StateProvinceId Confidence StudentRequestParameters StaffRequestParameters
 Element/@AttributeCharDescriptionType
 RequestIdentifierResponse   
 TransactionIdM

GUID that identifies the RequestIdentifier operation.

 
GUIDType
 MatchMROne or more matches from an identifier request.  
@IdStatusMStatus of the match. values:
Valid
Marks a response from the state with a valid StateProvinceId. If the request included Characteristics/StateProvinceId, the value of StateProvinceId in the response could be different.
Ambiguous
Marks a response where the state couldn't uniquely identify the student based on the information provided. The state may respond to the request with a single Match marked "Ambiguous" and an empty StateProvinceId. Alternatively, the state response may include one or more Match elements with candidate matches. Each of these elements would be marked "Ambiguous," and populated per the particular state's policies. StateProvinceId should not be empty in these elements.
 Match/StateProvinceIdO

The identified state student Id. Must be empty when there are no matches (a single Match marked Ambiguous).

 
StateProvinceId
 Match/ConfidenceO

Confidence score. The main use of this element is when IdStatus equals "Ambiguous" and the state returns one or more* candidate matches. The interpretation is that the information populated in each returned object matches the information in the request to the extent expressed in this score. The matching/scoring algorithms (and resultant values) are defined by the particular state.

*A response marked "Ambiguous" with a single match candidate populated likely means that the Confidence score is below the state's threshold for assignment but above the threshold for creating a new state-assigned Id.

 
xs:normalizedString
 Match/StudentRequestParameters
     
C

Characteristics of the student identified by the district which the state uses to perform its matching logic. This element is used with the Student Identifier Service.

 
StudentParametersType
 Match/StaffRequestParameters
     
C

Characteristics of the staff person identified by the district which the state uses to perform its matching logic. This element is used with the Staff Identifier Service.

 
StaffParametersType
Table 7.2.3.2-1: RequestIdentifierResponse
<RequestIdentifierResponse> <Match IdStatus="Valid"> <TransactionId>925F065B5140416498B9A510131D6434</TransactionId> <StateProvinceId>98765</StateProvinceId> </Match> </RequestIdentifierResponse>
Example 7.2.3.2-1: RequestIdentifierResponse


Known Issues as of 2010-06-14

(1) Links in Graphics

Hotspot links in graphics do not work when then elements are part of a choice block. The link and the anchor tag are not matching.

(2) Document Navigation Links

Some of the Next/Previous links in the Navigation controls at the top and bottom of each page do not work correctly.

Valid XHTML 1.0 Transitional