Electronic SIF Specification Delivery
Contents
Overview
This intention of this document is to explain steps that have been taken at Visual Software to provide facilities for a Web Services-based delivery of core parts of the Schools Interoperability Framework specifications for the US, UK and Australia.
The original purpose of this web service was to meet internal VSI needs that would allow our products to automatically update themselves from a central repository, allowing us to deploy new versions, changes and corrections in a more timely and consistent manner. After hearing that the SIF community was also looking for something similar, we made the offer to make this service publicly available for consumption by those who would benefit, at least for the short term.
Technical Overview
At its core are four tables that maintain four types of specification information:
- sifObjects - this describes each different specification of each object that is part of the data model and provides descriptive information that has been published in the official documentation
- sifEntities - these are the attributes and objects. The information stored includes everything that is included in the specification as well as the entity's relationship with any container in which it may belong
- sifCodeValues - this table maintains information about every code value for every specification, the mappings, and the descriptions.
- sifExtendedElements - this is a registry of Extended Elements. If an organization wanted to add an extended element, it would not add a new entity, but would define a new Extended Element name value. This table would keep track of who defined them and what they are used for.
Database Definitions
The web service publishes data from the four above tables. These tables are defined as follows:
sifObjects
(this table still needs documentation and editing)
Name | Data Type | Max Length (Bytes) | Allow Nulls | Identity | Default | |
---|---|---|---|---|---|---|
[[Image:]] | RecordID | int | 4 | û | 1‑Jan | |
[[Image:]] | CountryCode | varchar(10) | 10 | ü | ||
DataModelVersion | varchar(10) | 10 | ü | |||
[[Image:]] | InfrastructureVersion | varchar(10) | 10 | ü | ||
LocalityName | varchar(50) | 50 | ü | |||
ObjectName | varchar(175) | 175 | ü | |||
[[Image:]] | WorkingGroup | varchar(175) | 175 | ü | ||
EventsReported | bit | 1 | û | ((1)) | ||
Description | varchar(max) | max | ü | |||
DateCreated | datetime | 8 | ü | (getdate()) | ||
LastUpdated | datetime | 8 | ü | |||
IsDeprecated | bit | 1 | û | ((0)) | ||
IsDeleted | bit | 1 | û | ((0)) | ||
CreatedBy | varchar(255) | 255 | ü | |||
MaintainedBy | varchar(255) | 255 | ü |
sifEntities
(this table still needs editing)
Name | Data Type | Max Length (Bytes) | Allow Nulls | Identity | Default | |
---|---|---|---|---|---|---|
[[Image:]] | RecordID | int | 4 | û | 1‑Jan | |
Record Unique Identifier | ||||||
CountryCode | varchar(10) | 10 | ü | |||
Data Model Country — US, UK, AU or GLOBAL | ||||||
DataModelVersion | varchar(10) | 10 | ü | |||
Data Model Version | ||||||
InfrastructureVersion | varchar(10) | 10 | ü | |||
Infrastructure that supports this data model for this country (useful for queries) | ||||||
LocalityName | varchar(50) | 50 | ü | |||
(this should not be used) | ||||||
ObjectName | varchar(175) | 175 | ü | |||
SIF object related to the element/attribute | ||||||
XML_Sequence | smallint | 2 | ü | |||
This is used for ordering the entities | ||||||
ItemType | varchar(10) | 10 | ü | ((0)) | ||
E=Element, A=Attribute, GS=Group Start, GE=Group End, RCS=Repeating Container Start, RCE=Repeating Container End, RES=Repeating Element Start, REE=Repeating Element End | ||||||
ItemName | varchar(175) | 175 | ü | |||
Element, Attribute or Group Name | ||||||
XPATH | varchar(400) | 400 | ü | |||
The XPATH (not including the base object name itself) | ||||||
Characteristic | varchar(10) | 10 | ü | |||
M=Mandatory, O=Optional, C=Conditional, MR=Mandatory Repeatable | ||||||
Description | varchar(max) | max | ü | |||
The description of the entity as found in the original SIF specification | ||||||
DateCreated | datetime | 8 | ü | (getdate()) | ||
Date this entry was first created | ||||||
LastUpdated | datetime | 8 | ü | |||
Date this entry was last edited | ||||||
IsDeprecated | bit | 1 | ü | ((0)) | ||
This code value will be removed in a future release of the SIF specification | ||||||
IsDeleted | bit | 1 | ü | ((0)) | ||
This code value has been logically deleted from the code values collection — DO NOT USE THIS VALUE | ||||||
CreatedBy | varchar(255) | 255 | ü | |||
Name of the account that created this code value table entry | ||||||
MaintainedBy | varchar(255) | 255 | ü | |||
Name of the account that last modified this code value table entry |
sifCodeValues
Name | Data Type | Max Length (Bytes) | Allow Nulls | Identity | Default | |
---|---|---|---|---|---|---|
[[Image:]] | RecordID (Record Unique Identifier) | int | 4 | û | 1‑Jan | |
CountryCode (Data Model Country — US, UK, AU or GLOBAL) | varchar(10) | 10 | ü | |||
DataModelVersion | varchar(10) | 10 | ü | |||
InfrastructureVersion [Infrastructure that supports this data model for this country (useful for queries)] | varchar(10) | 10 | ü | |||
LocalityName (this should not be used) | varchar(50) | 50 | ü | |||
ObjectName (SIF object related to the element/attribute) | varchar(175) | 175 | ü | |||
XML_Sequence (This is used for ordering the entities) | smallint | 2 | ü | |||
ItemType (E=Element, A=Attribute, GS=Group Start, GE=Group End, RCS=Repeating Container Start, RCE=Repeating Container End, RES=Repeating Element Start, REE=Repeating Element End) | varchar(10) | 10 | ü | ((0)) | ||
ItemName (Element, Attribute or Group Name) | varchar(175) | 175 | ü | |||
XPATH (not including the base object name itself) | varchar(400) | 400 | ü | |||
Characteristic (M=Mandatory, O=Optional, C=Conditional, MR=Mandatory Repeatable) | varchar(10) | 10 | ü | |||
Description (The description of the entity as found in the original SIF specification) | varchar(max) | max | ü | |||
DateCreated (Date this entry was first created) | datetime | 8 | ü | (getdate()) | ||
LastUpdated (Date this entry was last edited) | datetime | 8 | ü | |||
IsDeprecated (This code value will be removed in a future release of the SIF specification) | bit | 1 | ü | ((0)) | ||
IsDeleted (This code value has been logically deleted from the code values collection — DO NOT USE THIS VALUE) | bit | 1 | ü | ((0)) | ||
CreatedBy (Name of the account that created this code value table entry) | varchar(255) | 255 | ü | |||
MaintainedBy (Name of the account that last modified this code value table entry) | varchar(255) | 255 | ü |
sifExtendedElements
(this still needs documentation and editing)
Name | Data Type | Max Length (Bytes) | Allow Nulls | Identity | Default | |
---|---|---|---|---|---|---|
![]() | RecordID | int | 4 | no | 1–1 | |
CountryCode | varchar(10) | 10 | yes | |||
DataModelVersion | varchar(10) | 10 | yes | |||
InfrastructureVersion | varchar(10) | 10 | yes | |||
LocalityName | varchar(50) | 50 | yes | |||
ObjectName | varchar(175) | 175 | yes | |||
ExtendedElementName | varchar(255) | 255 | yes | |||
ExtendedElementType | varchar(max) | max | yes | |||
Description | varchar(max) | max | yes | |||
DateCreated | datetime | 8 | yes | (getdate()) | ||
LastUpdated | datetime | 8 | yes | (getdate()) | ||
IsDeprecated | bit | 1 | yes | ((0)) | ||
IsDeleted | bit | 1 | yes | ((0)) | ||
CreatedBy | varchar(255) | 255 | yes | ('admin') | ||
MaintainedBy | varchar(255) | 255 | yes |
The SIFSpecService.svc Web Service
The SIFSpecService.svc web service is available to applications to query this database and will be available in the future for updating it as well. This web service exposes an OData interface which allows it to be accessable by many off-the-shelf libraries, development environments and existing applicaitons as if it were a local database connection.