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 Schools Interoperability Framework (SIF™) Association. All Rights Reserved.
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).
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:
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.
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.
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 first time a term or concept is defined, it may be emphasized.
SIF message and object names, XML element tags, attribute names and values, and other codes or values are typically presented as in this sentence.
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]).
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].
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.

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.
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,
...).
ItemCharacteristics object.SEAInfo object and
the Location common element. It also expanded the allowed values for RaceList/Race/Code.StudentGrade object.NCES 0609 Relationship to Student.StudentActivityInfo
and StudentActivityParticipation objects.
The group also added the
Calendar,
RecordClosureReason, and
PromotionInfo elements to
StudentSchoolEnrollment, with edits to
ExitDate and
ExitStatus/Code.
The description of StudentPersonal/MostRecent/HomeroomLocalId was updated.
Finally, corrections to earlier
specifications were incorporated, changing the types of
DaysAttended,
ExcusedAbsences,
UnexcusedAbsences,
DaysTardy and
DaysInMembership
in StudentAttendanceSummary to xs:decimal.
CalendarSummary object.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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.

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.

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, or an application that supports StudentLocator, managing
state-level student identifiers, and so on.

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.
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.
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 photographede.g. LearnerPersonalRefId in LearnerSchoolEnrolment refers to the RefId of the LearnerPersonal object corresponding
to the enrolled learner. Other more complex conventions surrounding object identifiers and RefIds can be found in Data Model.
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).
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.
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.
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.
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.
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.
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.
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.
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™.
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.
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:
| Field | Comments |
| Agent ID | The unique ID for an Agent (provided as the Source ID in a SIF_Register message) |
| Register | May this agent register in the zone? |
An example of this virtual table, which defines which agents are allowed to register in the zone, might be as follows:
| Agent ID | Register |
| RamseySIS | true |
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.
| Field | Comments |
| Agent ID | The unique ID for an Agent (provided as the Source ID in a SIF_Register message) |
| Context Name | The name of the SIF Context to which the permissions apply |
| Object Name | The object being manipulated (e.g., StudentPersonal, etc.) |
| Provide | May this Agent register as the provider for this object in this context? |
| Subscribe | May this Agent register as a subscriber for this object in this context? |
| Publish "Add" Event | May this Agent publish "Add" events for this object in this context? |
| Publish "Update" Event | May the Agent publish "Update" events for this object in this context? |
| Publish "Delete" Event | May the Agent publish "Delete" events for this object in this context? |
| Request | May this Agent request this object in this context? |
| Respond | May this Agent respond to a request for this object in this context? |
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 ID | Context Name | Object Name | Provide | Subscribe | Publish "Add" Event | Publish "Update" Event | Publish "Delete" Event | Request | Respond |
| RamseySIS | SIF_Default | StudentPersonal | true | true | true | true | true | false | true |
| RamseySIS | SIF_Default | LibraryPatronStatus | false | false | false | false | false | true | false |
| … | … | … | … | … | … | … | … | … | … |
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.
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.
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.
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:
SIF_EncryptionLevel for the zone (if only one encryption level is supported, configuration options are unnecessary).SIF_AuthenticationLevel for the zone (if only one authentication level is supported, configuration options are unnecessary).SIF_MaxBufferSize for the zone.
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.
SIF_Event message to an agent, the ZIS receives an Intermediate SIF_Ack (SIF_Status/SIF_Code=2) from the agent,
the event is blocked and all SIF_Event messages destined for the agent, whether already in the queue or that arrive while blocked, are considered frozen.
The ZIS will not deliver any SIF_Event messages that are frozen.SIF_Ack at all is received, or if a transport error occurs, this SIF_Event must be considered an undelivered message.
The next message to be delivered to the agent will be this event.SIF_Event message to the agent until a "Final" SIF_Ack is received (SIF_Status/SIF_Code=3),
giving the ZIS permission to discard the original event and resume event delivery.
The SIF_OriginalMsgId in the "Final" SIF_Ack MUST contain the SIF_MsgId of the blocked SIF_Event.SIF_Events are frozen, the next message to be delivered is the oldest message that is not a SIF_Event message.
Once SIF_Events are unfrozen, all remaining messages in this agent's queue, including SIF_Events,
will be delivered in the order in which they have been received by the ZIS.SIF_Wakeup or SIF_Register message then the block on any frozen SIF_Event messages
will be removed and the originally blocked message will be the next message delivered to the Agent.For a detailed example of SMB, see the Selective Message Blocking (SMB) Example.
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.
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.
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].
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.
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.
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.
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.
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 Length | Public Key Length | Strength |
| 40 bits | 256 bits | Very weak, not recommended except for very minimal protection (i.e. prevents casual snooping but can be broken in minutes by knowledgeable attackers). |
| 64 bits | 512 bits | Weak. 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 bits | 768 bits | Moderate |
| 128 bits | 2048 bits | Strong, recommended for Internet |
For more information regarding this topic, please refer to Chapter 7 of [Schneier].
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.
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.
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.
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.
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:
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:
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.
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.
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.
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.
The following HTTP request and common headers defined in [RFC 2616]MUST be present in all SIF HTTPS messages sent by a client:
| Header | Description | Required Contents |
| Content-Length | The exact size of the attached payload (XML message) | |
| Content-Type | Describes 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" |
| Host | Specifies the Internet host and port number of the destination server |
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.
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.
The following HTTP response and common headers defined in [RFC 2616] must be present in all SIF HTTPS responses messages sent by a server:
| Header | Description | Required Contents |
| Content-Length | The exact size of the attached payload (XML message) | |
| Content-Type | Describes 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" |
| Date | The 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. | |
| Server | Identifies the server sending the response. Clients may use this information to infer information about the server being contacted (vendor, model, version, capabilities, etc.) |
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, application/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.
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.
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.
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.
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.
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.
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.
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.
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_Name | SIF_Value |
|---|---|
Accept-Encoding | An 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.
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.
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.
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.
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.
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.
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.
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.
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.
| Step | Process | Flow Control |
| 1 | Prepare 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. |
| 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 | Your 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). |
| 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. 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). |
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.
| Step | Process | Flow Control |
| 1 | Prepare 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. |
| 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 | Your Agent is now removed from the Zone. | 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). |
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.
| Step | Process | Flow Control |
| 1 | Prepare 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. |
| 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 | Your 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). |
| 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. Note particularly category 4, code 3 (no permission to provide)
and category 6, code 4 (object already has a Provider). | Messaging protocol complete (failure). |
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.
| Step | Process | Flow Control |
| 1 | Prepare 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. |
| 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 | Your 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). |
| 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). |
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.
| Step | Process | Flow Control |
| 1 | Prepare 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. |
| 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 | Your 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). |
| 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. Note particularly category 4, code 4 (no permission to subscribe). | Messaging protocol complete (failure). |
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.
| Step | Process | Flow Control |
| 1 | Prepare 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. |
| 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 | Your 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). |
| 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). |
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.
| Step | Process | Flow Control |
| 1 | Prepare a Include Include Include Include Include | 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 | Your 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). |
| 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). |
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.
| Step | Process | Flow Control |
| 1 | Prepare a Specify the name of the object that is being added, changed or deleted in
For a
For a | 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 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). |
| 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). |
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.
| Step | Process | Flow Control |
| 1 | Prepare a | If using |
| 2 | In 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. |
| 3 | Include 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. |
| 4 | Receive SIF_Ack in response.
Is SIF_Error present? | If yes, go to Step 8. |
| 5 | Is SIF_Status/SIF_Code 0? | If no, go to Step 7. |
| 6 | The 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). |
| 7 | 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). |
| 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). |
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.
| Step | Process | Flow 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). |
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.
| Step | Process | Flow Control |
| 1 | Prepare 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. |
| 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 | Your 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). |
| 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). |
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.
| Step | Process | Flow Control |
| 1 | Prepare 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. |
| 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 | Your 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). |
| 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). |
To retrieve the current status of the Zone (SIF_ZoneStatus),
send a SIF_GetZoneStatus message to the ZIS.
| Step | Process | Flow Control |
| 1 | Prepare 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. |
| 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 | SIF_Status/SIF_Data contains the current status of the Zone in SIF_ZoneStatus. | 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). |
To retrieve your Agent's current access control list settings from the ZIS (SIF_AgentACL), send a SIF_GetAgentACL message to the ZIS.
| Step | Process | Flow Control |
| 1 | Prepare 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. |
| 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 | SIF_Status/SIF_Data contains your Agent's current access control list settings in the Zone in
SIF_AgentACL. | 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). |
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.
| Step | Process | Flow Control |
| 1 | Prepare 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. | |
| 2 | Specify 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. | |
| 3 | Add 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. |
| 4 | Receive SIF_Ack in response.
Is SIF_Error present? | If yes, go to Step 8. |
| 5 | Is SIF_Status/SIF_Code 0? | If no, go to Step 7. |
| 6 | The 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). |
| 7 | 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). |
| 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). |
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.
| Step | Process | Flow Control |
| 1 | Prepare 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. |
| 2 | Receive SIF_Ack in response.
Is SIF_Error present? | If yes, go to Step 7. |
| 3 | Is SIF_Status/SIF_Code 0? | If no, go to Step 5. |
| 4 | SIF_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. |
| 5 | Is SIF_Status/SIF_Code 9? | If yes, there are no messages available for your Agent. Message processing complete (success). |
| 6 | 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). |
| 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 a Push-mode Agent sends SIF_GetMessage, note particularly category 5,
code 9 (agent registered in Push mode). | Messaging protocol complete (failure). |
Push-Mode Agents end Selective Message Blocking (SMB) by sending a final SIF_Ack to the ZIS.
| Step | Process | Flow 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). |
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).
| Step | Process | Flow 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.
|
| 5 | Receive SIF_Ack in response.
Is SIF_Error present? | If yes, go to Step 9. |
| 6 | Is SIF_Status/SIF_Code 0? | If no, go to Step 8. |
| 7 | If your Agent did not invoke or end SMB for a
If your Agent invoked SMB by sending an intermediate
If your Agent ended SMB by sending a final | Messaging protocol complete (success). |
| 8 | 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). |
| 9 | 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). |
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.
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.
| Step | Process | Flow Control |
| 1 | If 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. |
| 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. 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. |
| 3 | Is the root element of the message unprefixed with a local name of SIF_Message? | If yes, go to step 5. |
| 4 | 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_Error element with a SIF_Category
of 1 (XML Validation) and a SIF_Code of 3 (generic validation error). | Go to step 12. |
| 5 | Is 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. |
| 6 | 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_Error element with a SIF_Category
of 12 (Generic Message Handling) and a SIF_Code of 3 (version not supported). | Go to step 12. |
| 7 | If 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. |
| 8 | 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_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. |
| 9 | If 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. |
| 10 | 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_Error element with a SIF_Category
of 12 (Generic Message Handling) and a SIF_Code of 2 (message not supported). | Go to step 12. |
| 11 | Process per the corresponding message handling protocol below. | Message handling is complete. |
| 12 | If 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. |
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.
| Step | Process | Flow 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
If your Agent is a Push-Mode Agent, return the
If your Agent is a Pull-Mode Agent, send the If an error occurs, it is RECOMMENDED
that your Agent publish a | 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 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
If an error occurs regardless of the option chosen, it is RECOMMENDED
that your Agent publish a | Message handling complete |
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.
| Step | Process | Flow Control |
| 1 | Examine 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 Add a Add Send the | Message handling complete. |
| 3 | Examine 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 Add a Add Send the | Message handling complete. |
| 5 | Examine 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 Add a Add Send the | Message handling complete. |
| 7 | Is SIF_ExtendedQuery specified? | If yes, go to Step 10. |
| 6 | The 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 Add a Add Send the | Stop processing the message. |
| 8 | Examine 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 Add a Add Send the | Stop processing the message. |
| 10 | Examine the query represented by SIF_ExtendedQuery, and determine whether it is supported.
| Go to Step 12 if the query is supported. |
| 11 | Prepare a Add a Add Send the | Stop processing the message. |
| 12 | Note that Push-Mode Agents should acknowledge receipt of the 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. | |
| 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.
When handling SIF_ExtendedQuery, copy the requested columns into SIF_ExtendedQueryResults/SIF_ColumnHeaders. | |
| 14 | Add 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. |
| 15 | Set 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. |
| 16 | Set SIF_PacketNumber to the current packet counter value and set SIF_MorePackets appropriately. Send the SIF_Response to the ZIS. | |
| 17 | Examine the SIF_Ack returned by the ZIS. | If an error occurred, stop processing the SIF_Request message. Go to Step 19. |
| 18 | Determine 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. |
| 19 | If 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. |
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.
| Step | Process | Flow Control |
| 1 | SIF_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 If your Agent is a Pull-Mode Agent, acknowledge the message per
If your Agent is a Push-Mode Agent: Prepare a | 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 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
If an error occurs regardless of the option chosen, it is RECOMMENDED
that your Agent publish a | 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.
|
The ZIS is pinging your Agent to see if it is reachable, "awake" and/or processing messages.
| Step | Process | Flow 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). |
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.
| Step | Process | Flow 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). |
The ZIS has changed its state to "awake" and is processing incoming messages and delivering queued messages again.
| Step | Process | Flow 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). |
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.
| Step | Process | Flow 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). |
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.
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.
| Step | Process | Flow 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). |
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.
| Step | Process | Flow 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). |
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.
| Step | Process | Flow 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). |
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.
| Step | Process | Flow 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). |
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."
| Step | Process | Flow 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.
| |
| 2 | Place 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). |
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.
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.
| Step | Process | Flow Control |
| 1 | Validate 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. |
| 2 | Prepare 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. |
| 3 | Examine the Version attribute of the message. | If the version is supported, go to Step 5. |
| 4 | Prepare 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. |
| 5 | Examine 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. |
| 6 | Prepare 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. |
| 7 | Forward message to the proper handler based on the message type. |
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.
| Step | Process | Flow Control |
| 1 | If 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. |
| 2 | Prepare 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. |
| 3 | If 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. |
| 4 | Prepare 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. |
| 5 | Examine 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. |
| 6 | Prepare 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. |
| 7 | Examine 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. |
| 8 | Prepare 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 caller | Stop processing this message. |
| 9 | If 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. |
| 10 | Prepare 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. |
| 11 | Store data from the SIF_Register message into the agent's database profile. | |
| 12 | Prepare 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. |
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.
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.
| Step | Process | Flow Control |
| 1 | Examine 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. | |
| 2 | Prepare a SIF_Ack containing a SIF_Status element indicating success. Return the SIF_Ack to caller. | Stop processing the message. |
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.
| Step | Process | Flow Control |
| 1 | Prepare a SIF_Ack. | Go to Step 3. |
| 2 | Examine 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. |
| 3 | Retrieve 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. |
| 4 | Add 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. |
| 5 | If 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. |
| 6 | Prepare 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. |
| 7 | Using 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. |
| 8 | Prepare 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. |
| 9 | Check 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. |
| 10 | Is 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. |
| 11 | Add 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. |
| 12 | Add 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. |
| 13 | Add a SIF_Status element indicating success to the SIF_Ack. Return the SIF_Ack to the caller. | Stop processing the message. |
| 14 | Undo all changes to the Providers database. Return the SIF_Ack to the caller. | Stop processing the message. |
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.
| Step | Process | Flow Control |
| 1 | Prepare a SIF_Ack. | Go to Step 3. |
| 2 | Examine 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. |
| 3 | Examine 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. |
| 4 | Add 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. |
| 5 | If 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. |
| 6 | Prepare 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. |
| 7 | If 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. |
| 8 | Leave 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. |
| 9 | Add a SIF_Status element indicating success to the SIF_Ack. Return the SIF_Ack to the caller | Stop processing the message. |
| 10 | Undo all changes to the Providers database. Return the SIF_Ack to the caller. | Stop processing the message. |
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.
| Step | Process | Flow Control |
| 1 | Prepare a SIF_Ack. | Go to Step 3. |
| 2 | Examine 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. |
| 3 | Retrieve 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. |
| 4 | Add 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. |
| 5 | If 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. |
| 6 | Prepare 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. |
| 7 | Using 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. |
| 8 | Prepare 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. |
| 9 | Check 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. |
| 10 | Add 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. |
| 9 | Add a SIF_Status element indicating success to the SIF_Ack. Return the SIF_Ack to the caller. | Stop processing the message. |
| 12 | Undo all changes to the Subscribers database. Return the SIF_Ack to the caller. | Stop processing the message. |
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.
| Step | Process | Flow Control |
| 1 | Prepare a SIF_Ack. | Go to Step 3. |
| 2 | Examine 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. |
| 3 | Retrieve 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. |
| 4 | Add 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. |
| 5 | If 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. |
| 6 | Prepare 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. |
| 7 | If 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. |
| 8 | Add a SIF_Status element indicating success to the SIF_Ack. Return the SIF_Ack to the caller. | Stop processing the message. |
| 9 | Undo all changes to the Subscribers database. Return the SIF_Ack to the caller. | Stop processing the message. |
An Agent is registering its support for various messages with regard to various objects. Settings supplied replace any previously recorded settings for the Agent.
| Step | Process | Flow Control |
|---|---|---|
| 1 | Prepare SIF_Ack. | |
| 2 | Process SIF_ProvideObjects as provide. | On error go to step 13. |
| 3 | Process objects not in SIF_ProvideObjects as unprovide. | On error go to step 13. |
| 4 | Process SIF_SubscribeObjects as subscribe. | On error go to step 13. |
| 5 | Process objects not in SIF_SubscribeObjects as unsubscribe. | On error go to step 13. |
| 6 | Process SIF_PublishAddObjects. | On error go to step 13. |
| 7 | Process SIF_PublishChangeObjects. | On error go to step 13. |
| 8 | Process SIF_PublishDeleteObjects. | On error go to step 13. |
| 9 | Process SIF_RequestObjects. | On error go to step 13. |
| 10 | Process SIF_RespondObjects. | On error go to step 13. |
| 11 | Save changes. | |
| 12 | Return success SIF_Ack. | Stop processing. |
| 13 | Roll back any changes. | |
| 14 | Return error SIF_Ack. | Stop processing. |
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.
| Step | Process | Flow Control |
| 1 | Examine 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. |
| 2 | Add 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. |
| 3 | If 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. |
| 4 | Prepare 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. |
| 5 | Using 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. |
| 6 | Prepare 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. |
| 7 | Check 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.
| |
| 9 | Prepare a SIF_Ack containing a SIF_Status element indicating success. Return a SIF_Ack to the caller. | Stop processing the message. |
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.
| Step | Process | Flow Control |
| 1 | Prepare a SIF_Ack. | |
| 2 | Retrieve 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. |
| 3 | Add 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. |
| 4 | If 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. |
| 5 | Prepare 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. |
| 6 | Using 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. |
| 7 | Prepare 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. |
| 8 | Examine the SIF_Request header looking for a SIF_DestinationId | Go to Step 11 if a SIF_DestinationId was located. |
| 9 | No 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. |
| 10 | 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 no provider was found. Return the SIF_Ack to the caller. | Stop processing the message. |
| 11 | A 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. |
| 12 | If 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.
| |
| 14 | Return a SIF_Ack, with SIF_Status set to 0, to the caller to indicate that SIF_Request has been sent. | Stop processing the message. |
When receiving a SIF_Response packet from an agent responding to a SIF_Request, the ZIS MUST perform the validation
protocol below.
| Step | Process | Flow Control |
|---|---|---|
| 1 | Prepare a SIF_Ack. | |
| 2 | Using the supplied SIF_RequestMsgId, look up the SIF_Request that initiated this response. | Go to Step 4 if the SIF_Request is found. |
| 3 | Add 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. |
| 4 | Examine 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. |
| 5 | Prepare 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. |
| 6 | Examine 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. |
| 7 | Prepare 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. |
| 8 | Examine 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. |
| 9 | Prepare 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. |
| 10 | Examine 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. |
| 11 | Prepare 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. |
| 12 | Place the SIF_Response packet in the requesting agent's queue. | Message processing is complete. Stop processing the message. |
| 13 | Prepare a Add a Add
Send the | Stop processing the message. The ZIS must also guarantee that no additional
The ZIS may remove the |
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.
SIF_Response.SIF_Response by sending a SIF_Response with the SIF_MorePackets element set to "No".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.
An Agent is pinging your ZIS to see if it is reachable, "awake" and/or processing messages.
| Step | Process | Flow 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). |
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.
| Step | Process | Flow 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). |
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.
| Step | Process | Flow 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). |
An Agent is requesting the status of the zone.
| Step | Process | Flow 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). |
An Agent is requesting its access control permissions.
| Step | Process | Flow 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). |
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.
| Step | Process | Flow 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 Add Place the | |
| 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. |
A Pull-Mode Agent is requesting the next message in its queue.
| Step | Process | Flow 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. |
A Push-Mode Agent is sending a final SIF_Ack to end Selective Message Blocking (SMB).
| Step | Process | Flow 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. | |
| 2 | Is 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
It is RECOMMENDED
that your ZIS log the error. Your ZIS MAY post a | 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
It is RECOMMENDED
that your ZIS log the error. Your ZIS MAY post a | Return the SIF_Ack to the Agent. Message handling complete (error). |
| 5 | SMB 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). |
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.
| Step | Process | Flow 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. | |
| 2 | Is SIF_Error present? | If yes, go to Step 14. |
| 3 | Is SIF_Status/SIF_Code 1 (immediate SIF_Ack)? | If no, go to Step 5. |
| 4 | If 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. |
| 5 | Is SIF_Status/SIF_Code 2 (intermediate SIF_Ack)? | If no, go to Step 7. |
| 6 | If 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. |
| 7 | Is SIF_Status/SIF_Code 3 (final SIF_Ack)? | If no, go to Step 9. |
| 8 | If 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. |
| 9 | Is SIF_Status/SIF_Code 7 (already have this SIF_MsgId from you)? | If no, go to Step 11. |
| 10 | 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. Set SIF_Status/SIF_Code to 0. | Return SIF_Ack. Message handling complete. |
| 11 | Is SIF_Status/SIF_Code 8 (receiver is sleeping)? | If no, go to Step 13. |
| 12 | The 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 | 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. |
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:
| Code | Characteristic |
| M | Mandatory element or attribute |
| O | Optional element or attribute |
| C | Conditional element or attribute |
| MR | Mandatory and repeatable element |
| OR | Optional and repeatable element |
| CR | Conditional 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.
The SIF_Message element is the root element of all SIF messages.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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 | ||
| @ | xmlns | C |
The xmlns attribute specifies the XML namespace for SIF messages.
For this version of the specification, the value of this attribute MUST be
Note that one | xs:anyURI |
| @ | Version | M |
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 | VersionType |
SIF_Header is a common message header for all SIF messages.
| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| SIF_Header | M | Header information associated with a message. | ||||
| SIF_MsgId | M |
| MsgIdType | |||
| SIF_Timestamp | M | Timestamp of when the message was sent. | xs:dateTime | |||
| SIF_Security | O | 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/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_SourceId | M | The | xs:token
| |||
| SIF_DestinationId | C | This element represents the ID of the recipient of the message and may be present as follows:
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
| |||
| SIF_Contexts | O |
Contains each SIF Context that applies to the message. If omitted, the applicable context is | SIF_Contexts |
The minimum level of encryption required by the message originator to be considered a secure channel upon message delivery to other agents.
Figure 5.1.3-1: SIF_EncryptionLevelTable 5.1.3-1: SIF_EncryptionLevelThe minimum level of authentication required by the message originator to be considered a secure channel upon message delivery to other agents.
Figure 5.1.4-1: SIF_AuthenticationLevelTable 5.1.4-1: SIF_AuthenticationLevel
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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 | List | ||
| SIF_Context | MR | SIF_Context |
The name of a SIF Context that applies to a message or operation.
Figure 5.1.6-1: SIF_Context| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| SIF_Context | The name of a SIF Context that applies to a message or operation. | xs:token
|
Contains protocol information regarding a ZIS or Agent.
Figure 5.1.7-1: SIF_Protocol| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| SIF_Protocol | C | Contains protocol information regarding a ZIS or Agent. | ||||
| @ | Type | M | The type of protocol to use ( | union of: DefinedProtocolsType xs:token | ||
| @ | Secure | M | Whether the protocol provides a secure channel. | values:
| ||
| SIF_URL | C | This element is required if the protocol is | xs:anyURI
| |||
| SIF_Property | OR | May contain zero or more | ||||
| SIF_Property/SIF_Name | M | Property name. | xs:token
| |||
| SIF_Property/SIF_Value | M | Property value. | xs:string
|
This element is used to signal a successful response.
Figure 5.1.8-1: SIF_Status| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| SIF_Status | This element is used to signal a successful response. | |||||
| SIF_Code | M | InfrastructureStatusCodeType | ||||
| SIF_Desc | O |
An optional textual description/equivalent of | xs:string
| |||
| SIF_Data | O |
Optional element to hold data related to a successful operation. This data is currently limited
to a | choice of: SIF_Message SIF_AgentACL SIF_ZoneStatus |
This element is used to signal an unsuccessful response.
Figure 5.1.9-1: SIF_Error| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| SIF_Error | This element is used to signal an unsuccessful response. | |||||
| SIF_Category | M | InfrastructureErrorCategoryType | ||||
| SIF_Code | M | See Error Codes. | union of: InfrastructureXMLValidationErrorType InfrastructureEncryptionErrorType InfrastructureAuthenticationErrorType InfrastructureAccessAndPermissionErrorType InfrastructureRegistrationErrorType InfrastructureProvisionErrorType InfrastructureSubscriptionErrorType InfrastructureRequestAndResponseErrorType InfrastructureEventReportingAndProcessingErrorType InfrastructureTransportErrorType InfrastructureSystemErrorType InfrastructureGenericMessageHandlingErrorType xs:token | |||
| SIF_Desc | M | 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
| |||
| SIF_ExtendedDesc | O | 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 |
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_Query | SIF's default query mechanism. | |||
| SIF_QueryObject | M | This is the object that is being queried for. | ||
| @ | ObjectName | M | 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 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_ConditionGroup | C |
Either
| ||
| @ | Type | M |
The Boolean operator for joining conditions ( | values:
|
| SIF_ConditionGroup/SIF_Conditions | MR | This construct allows for nested conditions. | ||
| @ | Type | M |
The boolean operator for joining conditions ( | values:
|
| 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:
| |
| SIF_ConditionGroup/SIF_Conditions/ SIF_Condition/SIF_Value | M |
| xs:string | |
| SIF_Example | C |
An example SIF object that serves as a template for matching objects. There is an implied | SIF_ExampleObjectType |
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:
For example, if you wished to request the LearnerExclusion object for a student, the SIF_ConditionGroup
would be:
If you wished to request the LibraryPatronStatus object for a specific teacher then the SIF_ConditionGroup would
be:
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:
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.
Predicate expressions supported in SIF are limited to or, and, =, element/attribute names with optional
prefixes and accessing nested elements/attributes using /.
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.
| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| SIF_ExtendedQuery | SIF's default query mechanism for Note that matching rows are generated solely based on the | |||||
| SIF_DestinationProvider | O |
If no | SIF_RequestObjectNamesType | |||
| SIF_Select | M | Identifies which data elements/attribute are to be returned as columns in each matching row. | ||||
| @ | Distinct | M | Specifies whether query results should return all rows ( | xs:boolean | ||
| @ | RowCount | M | The maximum number of rows to return. If | union of: xs:positiveInteger additional values:
| ||
| SIF_Select/SIF_Element | MR | Indicates the element/attribute to return as a column. Contents can be left empty to return the whole object specified in | xs:normalizedString | |||
| @ | Alias | O | Optional caption for the column. | xs:normalizedString
| ||
| @ | ObjectName | M | The name of the object from which to retrieve element/attributes. | SIF_RequestObjectNamesType | ||
| SIF_From | M |
Join specification for the query if more than one object is being queried. If only one object is being queried, specify it without the
| ||||
| @ | ObjectName | M | The name of the object to query. | SIF_RequestObjectNamesType | ||
| SIF_From/SIF_Join | OR | Additional objects to query, with join conditions specifying the relationships between objects. | ||||
| @ | Type | M | Type of relational join. | values:
| ||
| 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 | |||
| @ | ObjectName | M | 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 | |||
| @ | ObjectName | M | Name of the object that contains the element/attribute. | SIF_RequestObjectNamesType | ||
| SIF_Where | O | Optionally specifies conditions to limit/filter rows resulting from the | ||||
| SIF_Where/SIF_ConditionGroup | M | Conditions that matching rows must meet. | ||||
| @ | Type | M |
The Boolean operator for joining conditions ( | values:
| ||
| SIF_Where/SIF_ConditionGroup/ SIF_Conditions | MR | This construct allows for nested conditions. | ||||
| @ | Type | M |
The boolean operator for joining conditions ( | values:
| ||
| 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 | |||
| @ | ObjectName | M | 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:
| |||
| SIF_Where/SIF_ConditionGroup/ SIF_Conditions/SIF_Condition/ SIF_Value | M |
| xs:string | |||
| SIF_OrderBy | O | An optional list of elements/attributes by which to sort the resulting rows. | ||||
| SIF_OrderBy/SIF_Element | MR | Indicates the element/attribute by which to sort. | xs:normalizedString | |||
| @ | ObjectName | M | The name of the object containing the element/attribute. | SIF_RequestObjectNamesType | ||
| @ | Ordering | M | Whether to order the element/attribute in ascending or descending order. | values:
|
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.
|
This element provides a wrapper for data returned in response to a SIF_ExtendedQuery. Used in SIF_Response
and SIF_ReportObject.
| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| SIF_ExtendedQueryResults |
This element provides a wrapper for data returned in response to a | |||||
| SIF_ColumnHeaders | M | Provides the element/attribute and caption information for each column supplied in | ||||
| SIF_ColumnHeaders/SIF_Element | MR | The element/attribute specified for the column in | xs:normalizedString | |||
| @ | ObjectName | M | The object in which the element/attribute occurs. | SIF_RequestObjectNamesType | ||
| @ | Alias | O | The caption for the column, if specified in | xs:normalizedString
| ||
| @ | xsi:type | O | Optionally allows type of column value to be explicitly communicated. | |||
| SIF_Rows | M | A list of matching rows resulting from the supplied | ||||
| SIF_Rows/R | OR |
An individual matching row resulting from the supplied | ||||
| SIF_Rows/R/C | MR |
Contains the value of each column specified in | SelectedContentType |
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_Ack | M | This message is used as an acknowledgement to an infrastructure message. | ||
| SIF_Header | M | Header information associated with this message. | SIF_Header | |
| SIF_OriginalSourceId | M | The | xs:token | |
| SIF_OriginalMsgId | M | The | MsgIdType | |
| SIF_Status | C | This element is used to signal a successful response. | SIF_Status | |
| SIF_Error | C | This element is used to signal an unsuccessful response. | SIF_Error |
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_Event | M |
| ||
| SIF_Header | M | Header information associated with this message. | SIF_Header | |
| SIF_ObjectData | M | |||
| SIF_ObjectData/SIF_EventObject | M | Contains the actual object (partial or whole) that is being added, changed or deleted. | SIF_EventObjectType | |
| @ | ObjectName | M | This is the name of the object being added, changed or deleted. | SIF_SubscribeObjectNamesType |
| @ | Action | M | This is the action associated with the object that is being conveyed by this | values:
|
The SIF_Provide message is used to attempt registering as the provider of one or more data objects.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_Provide | M | The | ||
| SIF_Header | M | Header information associated with this message. | SIF_Header | |
| SIF_Object | MR | This is the object that is being provided. | ||
| @ | ObjectName | M | The actual name of the object that is being provided. | SIF_ProvideObjectNamesType |
| SIF_Object/SIF_ExtendedQuerySupport | O | Whether or not the Agent supports | xs:boolean | |
| SIF_Object/SIF_Contexts | O | The contexts in which the object is being provided; if omitted, the context is | SIF_Contexts |
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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_Header | M | Header information associated with this message. | SIF_Header | |
| SIF_ProvideObjects | M | A list of objects an Agent wishes to provide. | ||
| SIF_ProvideObjects/SIF_Object | OR | |||
| @ | ObjectName | M | The name of each object. | SIF_ProvideObjectNamesType |
| SIF_ProvideObjects/SIF_Object/ SIF_ExtendedQuerySupport | O | Whether or not | xs:boolean | |
| SIF_ProvideObjects/SIF_Object/ SIF_Contexts | O |
Applicable contexts for stated object support. If omitted, the context defaults to | SIF_Contexts | |
| SIF_SubscribeObjects | M | A list of objects to which an Agent wishes to subscribe. | ||
| SIF_SubscribeObjects/SIF_Object | OR | |||
| @ | ObjectName | M | 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_Contexts | |
| SIF_PublishAddObjects | M | A list of objects for which an Agent wishes to publish | ||
| SIF_PublishAddObjects/SIF_Object | OR | |||
| @ | ObjectName | M | 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_Contexts | |
| SIF_PublishChangeObjects | M | A list of objects for which an Agent wishes to publish | ||
| SIF_PublishChangeObjects/ SIF_Object | OR | |||
| @ | ObjectName | M | 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_Contexts | |
| SIF_PublishDeleteObjects | M | A list of objects for which an Agent wishes to publish Delete events. | ||
| SIF_PublishDeleteObjects/ SIF_Object | OR | |||
| @ | ObjectName | M | 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_Contexts | |
| SIF_RequestObjects | M | A list of objects an Agent wishes to request. | ||
| SIF_RequestObjects/SIF_Object | OR | |||
| @ | ObjectName | M | The name of each object. | SIF_RequestObjectNamesType |
| SIF_RequestObjects/SIF_Object/ SIF_ExtendedQuerySupport | O |
Optionally specify whether or not | xs:boolean | |
| SIF_RequestObjects/SIF_Object/ SIF_Contexts | O |
Applicable contexts for stated object support. If omitted, the context defaults to | SIF_Contexts | |
| SIF_RespondObjects | M | 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_RespondObjects/SIF_Object | OR | |||
| @ | ObjectName | M | The name of each object. | SIF_RequestObjectNamesType |
| SIF_RespondObjects/SIF_Object/ SIF_ExtendedQuerySupport | O |
Whether or not | xs:boolean | |
| SIF_RespondObjects/SIF_Object/ SIF_Contexts | O |
Applicable contexts for stated object support. If omitted, the context defaults to | SIF_Contexts |
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.
| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| SIF_Register | M |
| ||||
| SIF_Header | M | Header information associated with this message. | SIF_Header | |||
| SIF_Name | M | This is the descriptive name of the agent that is registering (i.e. Ramsey Media Center). | xs:normalizedString
| |||
| SIF_Version | MR | 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 * - 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 | VersionWithWildcardsType | |||
| SIF_MaxBufferSize | M | 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_Mode | M | Specifies the communication mode (Pull or Push) as chosen by the message sender. | values:
| |||
| SIF_Protocol | C | If | SIF_Protocol | |||
| SIF_NodeVendor | O | The vendor of the SIF agent. | xs:normalizedString
| |||
| 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 | xs:normalizedString
| |||
| SIF_Application | O | 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
| |||
| SIF_Application/SIF_Product | M | The name of the product that this agent supports. | xs:normalizedString
| |||
| SIF_Application/SIF_Version | M | The version of the product. This field is informative only. | xs:normalizedString
| |||
| 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 | xs:anyURI |
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.
Figure 5.2.6-1: SIF_Request| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_Request | M |
| ||
| SIF_Header | M | Header information associated with this message. | SIF_Header | |
| SIF_Version | MR | 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_MaxBufferSize | M | 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 | xs:unsignedInt | |
| SIF_Query | C | Either | SIF_Query | |
| SIF_ExtendedQuery | C | SIF_ExtendedQuery |
SIF_Response is used to respond to a SIF_Request message. A response may span multiple SIF_Response messages.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_Response | M |
| ||
| SIF_Header | M | Header information associated with this message. The | SIF_Header | |
| SIF_RequestMsgId | M | This is the message ID of the | MsgIdType | |
| SIF_PacketNumber | M | This element represents the index of the The receiver of a | xs:positiveInteger | |
| SIF_MorePackets | M | 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 When this element's value is equal to | values:
| |
| SIF_Error | C | The responder returns This element allows the Responder to report an error condition that occurs while processing the If a | SIF_Error | |
| SIF_ObjectData | C | The | SIF_ResponseObjectsType | |
| SIF_ExtendedQueryResults | C | This element contains the elements requested by | SIF_ExtendedQueryResults |
This message is used to subscribe to event objects that are contained in this message.
Figure 5.2.8-1: SIF_Subscribe| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_Subscribe | M | This message is used to subscribe to event objects that are contained in this message. | ||
| SIF_Header | M | Header information associated with this message. | SIF_Header | |
| SIF_Object | MR | |||
| @ | ObjectName | M | The actual name of the object that is being subscribed to. All valid | SIF_SubscribeObjectNamesType |
| SIF_Object/SIF_Contexts | O | The contexts to which the subscription applies; if omitted, the context is | SIF_Contexts |
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_SystemControl | M | 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_Header | M | Header information associated with this message. | SIF_Header | |
| SIF_SystemControlData | M | This element holds the sub-message being sent. | choice of: SIF_Ping SIF_Sleep SIF_Wakeup SIF_GetMessage SIF_GetZoneStatus SIF_GetAgentACL SIF_CancelRequests |
SIF_Ping is sent to detect if a ZIS or push-mode agent is ready to receive and process messages.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_Ping | M | This sub-message detects if an a Push-Mode Agent or ZIS is ready to receive and process messages. | EMPTY |
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_Sleep | M | This sub-message tells a receiver not to send any more messages to the sender. | EMPTY |
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_Wakeup | M | This message tells a receiver that the sender is able to process messages. | EMPTY |
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.
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_GetMessage | M | This message tells the ZIS to return the first available message to the agent, subject to Selective Message Blocking. | EMPTY |
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_GetZoneStatus | M | This message tells the ZIS to return the current | EMPTY |
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_GetAgentACL | M | This message tells the ZIS to return the Agent's ACL permissions in a | EMPTY |
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."
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_CancelRequests | M | This sub-message asks a receiver (ZIS or Push-Mode Agent) to cancel the specified | ||
| SIF_NotificationType | M | values:
| ||
| SIF_RequestMsgIds | M | 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 |
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_Unprovide | M | This message performs the opposite function of | ||
| SIF_Header | M | Header information associated with this message. | SIF_Header | |
| SIF_Object | MR | This is the object that is being removed from the provider list. | ||
| @ | ObjectName | M | The actual name of the object that is being removed. | SIF_ProvideObjectNamesType |
| SIF_Object/SIF_Contexts | O |
The contexts from which the object is being removed; if omitted, the context is | SIF_Contexts |
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.
Figure 5.2.18-1: SIF_Unregister| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_Unregister | M | This message is used to unregister an agent from a Zone. | ||
| SIF_Header | M | Header information contained in the message. | SIF_Header |
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_Unsubscribe | M | This message is used to unsubscribe from | ||
| SIF_Header | M | Header information associated with this message. | SIF_Header | |
| SIF_Object | MR | |||
| @ | ObjectName | M | 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_Contexts | O |
The applicable contexts; if omitted, the context is | SIF_Contexts |
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.
| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| SIF_ZoneStatus |
The | |||||
@![]() | ZoneId | M |
The identifier for this Zone.
It is the same as the | xs:token | ||
| SIF_Name | M | The descriptive name for the zone. | xs:normalizedString | |||
| SIF_Icon | O |
HTTP URL referencing an icon for graphical representation of the ZIS/Zone.
Should range from 16x16 pixels to 128x128 pixels and be of an | xs:anyURI | |||
| SIF_Vendor | O | Contains information about the vendor that wrote this ZIS. | ||||
| SIF_Vendor/SIF_Name | M | The name of the company that wrote the ZIS. | xs:normalizedString | |||
| SIF_Vendor/SIF_Product | M | The product name assigned by the vendor to identify this ZIS. | xs:normalizedString | |||
| SIF_Vendor/SIF_Version | M | The version of the vendor's product—not necessarily the SIF version. | xs:normalizedString | |||
| SIF_Providers | C | 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 | |||||
| @ | SourceId | M | The identifier of the SIF node that is providing objects. This is the agent or ZIS identifier that would appear in the | xs:token
| ||
| SIF_Providers/SIF_Provider/ SIF_ObjectList | M | List | ||||
| SIF_Providers/SIF_Provider/ SIF_ObjectList/SIF_Object | MR | |||||
| @ | ObjectName | M | 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_Subscribers | C | 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 | |||||
| @ | SourceId | M | 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 | xs:token
| ||
| SIF_Subscribers/SIF_Subscriber/ SIF_ObjectList | M | List | ||||
| SIF_Subscribers/SIF_Subscriber/ SIF_ObjectList/SIF_Object | MR | |||||
| @ | ObjectName | M | 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_AddPublishers | C | Encompasses all the | List | |||
| SIF_AddPublishers/SIF_Publisher | MR | |||||
| @ | SourceId | M | The identifier of the SIF node that can publish the | xs:token
| ||
| SIF_AddPublishers/SIF_Publisher/ SIF_ObjectList | M | List | ||||
| SIF_AddPublishers/SIF_Publisher/ SIF_ObjectList/SIF_Object | MR | |||||
| @ | ObjectName | M | 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_ChangePublishers | C | Encompasses all the | List | |||
| SIF_ChangePublishers/SIF_Publisher | MR | |||||
| @ | SourceId | M | The identifier of the SIF node that can publish the | xs:token
| ||
| SIF_ChangePublishers/SIF_Publisher/ SIF_ObjectList | M | List | ||||
| SIF_ChangePublishers/SIF_Publisher/ SIF_ObjectList/SIF_Object | MR | |||||
| @ | ObjectName | M | 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_DeletePublishers | C | Encompasses all the | List | |||
| SIF_DeletePublishers/SIF_Publisher | MR | |||||
| @ | SourceId | M | The identifier of the SIF node that can publish the | xs:token
| ||
| SIF_DeletePublishers/SIF_Publisher/ SIF_ObjectList | M | List | ||||
| SIF_DeletePublishers/SIF_Publisher/ SIF_ObjectList/SIF_Object | MR | |||||
| @ | ObjectName | M | 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_Responders | C | Encompasses all the responders registered with this zone. | List | |||
| SIF_Responders/SIF_Responder | MR | |||||
| @ | SourceId | M | The identifier of the SIF node that can respond. This is the agent identifier that would appear in the | xs:token
| ||
| SIF_Responders/SIF_Responder/ SIF_ObjectList | M | List | ||||
| SIF_Responders/SIF_Responder/ SIF_ObjectList/SIF_Object | MR | |||||
| @ | ObjectName | M | 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_Requesters | C | Encompasses all the requesters registered with this zone. | List | |||
| SIF_Requesters/SIF_Requester | MR | |||||
| @ | SourceId | M | The identifier of the SIF node that can request an object. This is the agent identifier that would appear in the | xs:token
| ||
| SIF_Requesters/SIF_Requester/ SIF_ObjectList | M | List | ||||
| SIF_Requesters/SIF_Requester/ SIF_ObjectList/SIF_Object | MR | |||||
| @ | ObjectName | M | 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_SIFNodes | C | Encompasses all of the nodes registered with the ZIS. This element is mandatory if there are SIF nodes registered. | List | |||
| SIF_SIFNodes/SIF_SIFNode | MR | |||||
| @ | Type | M |
The type of the node registered with the ZIS. Note that | values:
| ||
| 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 | xs:anyURI | |||
| SIF_SIFNodes/SIF_SIFNode/ SIF_NodeVendor | O | The vendor of the SIF agent. | xs:normalizedString
| |||
| 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 | xs:normalizedString
| |||
| 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
| |||
| SIF_SIFNodes/SIF_SIFNode/ SIF_Application/SIF_Product | M | The name of the product that this agent supports. | xs:normalizedString
| |||
| SIF_SIFNodes/SIF_SIFNode/ SIF_Application/SIF_Version | M | The version of the product. This field is informative only. | xs:normalizedString
| |||
| 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 | xs:token
| |||
| SIF_SIFNodes/SIF_SIFNode/ SIF_Mode | M | Specifies the communication mode (Pull or Push) as chosen by the message sender. | values:
| |||
| 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 | xs:unsignedInt | |||
| SIF_SIFNodes/SIF_SIFNode/ SIF_Sleeping | M | This element shows whether the SIF node is ready to process messages. | values:
| |||
| SIF_SupportedAuthentication | C | 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:
| |||
| SIF_SupportedProtocols | M | Enumerates the various communication transport protocols that are supported by the ZIS. | List | |||
| SIF_SupportedProtocols/SIF_Protocol | MR | SIF_Protocol | ||||
| SIF_SupportedVersions | M | 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_AdministrationURL | O | Should a ZIS vendor provide an administration interface for the zone via a URL, the ZIS can make the URL available in | xs:anyURI | |||
| SIF_Contexts | M | SIF_Contexts | ||||
| SIF_Metadata | O | SIF_Metadata | ||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_AgentACL | This object provides an Agent its access control list (ACL) settings in the Zone. | |||
| SIF_ProvideAccess | M |
Access control list by object for | List | |
| SIF_ProvideAccess/SIF_Object | OR | |||
| @ | ObjectName | M | 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_SubscribeAccess | M |
Access control list by object for | List | |
| SIF_SubscribeAccess/SIF_Object | OR | |||
| @ | ObjectName | M | 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_PublishAddAccess | M |
Access control list by object for corresponding section in | List | |
| SIF_PublishAddAccess/SIF_Object | OR | |||
| @ | ObjectName | M | 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_PublishChangeAccess | M |
Access control list by object for corresponding section in | List | |
| SIF_PublishChangeAccess/SIF_Object | OR | |||
| @ | ObjectName | M | 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_PublishDeleteAccess | M |
Access control list by object for corresponding section in | List | |
| SIF_PublishDeleteAccess/SIF_Object | OR | |||
| @ | ObjectName | M | 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_RequestAccess | M |
Access control list by object for | List | |
| SIF_RequestAccess/SIF_Object | OR | |||
| @ | ObjectName | M | 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_RespondAccess | M |
Access control list by object for corresponding section in | List | |
| SIF_RespondAccess/SIF_Object | OR | |||
| @ | ObjectName | M | 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_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
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.
The Char(acteristics) column for all of the tables in this section use the following codes:
| Code | Characteristic |
| M | Mandatory element or attribute |
| O | Optional element or attribute |
| C | Conditional element or attribute |
| MR | Mandatory and repeatable element |
| OR | Optional and repeatable element |
| CR | Conditional 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.
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.
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:
IdRefType can be defined that consists of the referenced object name
concatenated with RefId, e.g., StudentPersonalRefId (a reference to the object identifier/primary key/RefId
of a StudentPersonal object);
IdRefType, has an element name of a group's choosing (or generically SIF_RefId) and enumerates all possible object types that can be referenced
in the SIF_RefObject attribute; or
IdRefType containing the referenced object's RefId, the other enumerating
all possible object types that can be referenced; generically these are named SIF_RefId and SIF_RefObject, respectively;
naming conventions that programmatically allow identification of the pair beyond the generic names will be documented when the need arises.
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.:
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.
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.
A system that supports an Alternate2 e-mail makes no changes to its value for that address type.
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.
A system that supports CountriesOfCitizenship updates its local data to reflect U.S. and German citizenship.
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.
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.
This element represents an address. This element occurs within objects and elements such as StaffPersonal and StudentPersonal/StudentAddress, etc.
Figure 6.2.1-1: Address| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Address | M | This element contains address data. | ||
| @ | Type | M | 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. | NCES0025AddressTypeType |
| Street | M | The street element is a complex element and breaks the street down into several parts. | ||
| Street/Line1 | M | Address line 1. | xs:normalizedString | |
| Street/Line2 | O | Address line 2. | xs:normalizedString | |
| Street/Line3 | O | Address line 3. | xs:normalizedString | |
| Street/Complex | O | Name of the complex. | xs:normalizedString | |
| Street/StreetNumber | O | The address number assigned to the building. | xs:normalizedString | |
| Street/StreetPrefix | O | Street prefix like NE | xs:normalizedString | |
| Street/StreetName | O | The name of the street. | xs:normalizedString | |
| Street/StreetType | O | The type of street. For example, Lane, Blvd., Ave., etc. | xs:normalizedString | |
| Street/StreetSuffix | O | Street suffix like SW. | xs:normalizedString | |
| Street/ApartmentType | O | Type of apartment, for example, Suite. | xs:normalizedString | |
| Street/ApartmentNumberPrefix | O | Apartment number prefix. | xs:normalizedString | |
| Street/ApartmentNumber | O | The number of the apartment. | xs:normalizedString | |
| Street/ApartmentNumberSuffix | O | Apartment number suffix. | xs:normalizedString | |
| City | M | The city part of the address. | xs:normalizedString | |
| County | O | The county part of the address. | xs:normalizedString | |
| StateProvince | M | The state or province code. | StateProvince | |
| Country | M | The country code. | Country | |
| PostalCode | M | The ZIP/postal code. | xs:normalizedString | |
| GridLocation | O | The location of the address. | GridLocation |
A list of Address elements.
Figure 6.2.2-1: AddressList| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| AddressList | A list of Address elements. | ActionList (Address/@Type) | ||
| Address | MR | Address | ||
| @ | SIF_Action | O |
In a | values:
|
A person's date of birth.
Figure 6.2.3-1: BirthDate| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| BirthDate | A person's date of birth. | xs:date |
Common element used to indicate the number of the U.S. Congressional District in which an entity resides or is physically located.
Figure 6.2.4-1: CongressionalDistrict| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| CongressionalDistrict | Number for the US congressional district. While typically numerical, this element does allow for text values to cover exceptions, e.g. to indicate an "at-large" district as in Wyoming. | union of: xs:unsignedInt xs:token |
Common element used to supply information for a contact person at a school, LEA, or other institution.
Figure 6.2.5-1: ContactInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| ContactInfo | Common element used to supply information for a contact person at a school, LEA, or other institution. | |||
| Name | M |
The name of the contact person. Note that | ||
| @ | Type | M |
Code that specifies what type of name this is. If unsure, use | values:
|
| Name/Prefix | O | A prefix associated with the name like Mr., Ms., etc. | xs:normalizedString | |
| Name/LastName | O | The last name. | LastName | |
| Name/FirstName | O | The first name. | FirstName | |
| Name/MiddleName | O | The middle name or initial. | MiddleName | |
| Name/Suffix | O | Generation of suffix like II, Jr., etc. | xs:normalizedString | |
| Name/PreferredName | O | This is a name that the person prefers to be called by. | xs:normalizedString | |
| Name/SortName | O | This is the name to be used for sorting purposes. | xs:normalizedString | |
| Name/FullName | C |
A free text field for the complete name. Mandatory if | xs:normalizedString | |
| PositionTitle | O | The contact person's position title. Examples | xs:normalizedString | |
| Role | O | Role played by this contact in this instance. Examples | xs:normalizedString | |
| Address | O | Address of the contact. | Address | |
| EmailList | O | List of Email elements. | EmailList | |
| PhoneNumberList | O | List of PhoneNumber elements. | PhoneNumberList |
A country code.
Figure 6.2.6-1: Country| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Country | A country code. | union of: ISO31661EnglishCountryNamesAndCodeElementsType ISO31663CodeForFormerlyUsedNamesOfCountriesType |
School-defined local code for a course.
Figure 6.2.7-1: CourseCode| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| CourseCode | School-defined local code for a course. | xs:normalizedString |
The number of credits awarded upon course completion.
Figure 6.2.8-1: CourseCredits| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| CourseCredits | The number of credits awarded upon course completion. | xs:decimal | ||
| @ | Type | M | The type of credit offered. | NCES0108CreditTypeEarnedType |
Title of a course.
Figure 6.2.9-1: CourseTitle| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| CourseTitle | Title of a course. | xs:normalizedString |
Demographics information about the student, contact, staff member, etc. This element occurs within objects such as StudentPersonal, StudentContact, etc.
Figure 6.2.10-1: Demographics| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Demographics | Demographics information about the student, contact, staff member, etc. This element occurs within objects such as StudentPersonal, StudentContact, etc. | |||
| RaceList | O | RaceList | ||
| HispanicLatino | O | HispanicLatino | ||
| Gender | O | Person's gender. | Gender | |
| BirthDate | O | The person's date of birth. | BirthDate | |
| BirthDateVerification | O | Means by which the person's birth date was validated. | NCES0315BirthdateVerificationType | |
| PlaceOfBirth | O | The person's place of birth—like village, town, city etc. | xs:normalizedString | |
| CountyOfBirth | O | The county in which the person was born. | xs:normalizedString | |
| StateOfBirth | O | The person's state of birth. | StateProvince | |
| CountryOfBirth | O | The person's country of birth. | Country | |
| CountriesOfCitizenship | O | List | ||
| CountriesOfCitizenship/CountryOfCitizenship | MR | A person's country of citizenship. | Country | |
| CountriesOfResidency | O | List | ||
| CountriesOfResidency/CountryOfResidency | MR | A person's country of residence. | Country | |
| CountryArrivalDate | O | Date the person first arrived in the country. | xs:date | |
| CitizenshipStatus | O | The person's citizenship status. | NCES0322CitizenshipStatusType | |
| EnglishProficiency | O | Person's proficiency in English. | EnglishProficiency | |
| LanguageList | O | List of languages an individual uses to communicate. | LanguageList | |
| DwellingArrangement | O | Setting/environment in which the person resides. | ||
| DwellingArrangement/Code | M | Code representing the setting/environment in which the person resides | NCES0600DwellingArrangementType | |
| DwellingArrangement/OtherCodeList | O | OtherCodeList | ||
| MaritalStatus | O | The person's marital status. | NCES0330MaritalStatusType |
A district course code.
Figure 6.2.11-1: DistrictCourseCode| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| DistrictCourseCode | A district course code. | xs:normalizedString |
This gives information about a staff member's meal status.
Figure 6.2.12-1: EarnedStatus| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EarnedStatus | This gives information about a staff member's meal status. | |||
| @ | Type | M | Earned status type.
In SIF objects
where the EarnedStatus is required and does not apply, | values:
|
| StartDate | O | Date on which earned status became effective (inclusive). | xs:date | |
| EndDate | C | Date on which earned status was last in effect. This attribute is conditional upon the StartDate element. It exists only if the StartDate element exists. | xs:date |
Does the student meet the State criteria for classification as having an economic disadvantage?
Figure 6.2.13-1: EconomicDisadvantage| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EconomicDisadvantage | Does the student meet the State criteria for classification as having an economic disadvantage? | values:
|
A code representing the highest level of education completed by a person.
Figure 6.2.14-1: EducationalLevel| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EducationalLevel | A code representing the highest level of education completed by a person. | NCES0332HighestLevelOfEducationCompletedType |
Common element used to specify entity identifiers that are read by electronic equipment. It is used in objects such as StudentPersonal, StaffPersonal, and LibraryPatronStatus.
Figure 6.2.15-1: ElectronicId| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| ElectronicId | Common element used to specify entity identifiers that are read by electronic equipment. It is used in objects such as StudentPersonal, StaffPersonal, and LibraryPatronStatus. | xs:normalizedString | ||
| @ | Type | M | Electronic ID type. | values:
|
A list of electronic identifiers associated with an entity.
Figure 6.2.16-1: ElectronicIdList| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| ElectronicIdList | A list of electronic identifiers associated with an entity. | List | ||
| ElectronicId | MR | ElectronicId |
Is the student an English Language Learner under Title 3?
Figure 6.2.17-1: ELL| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| ELL | Is the student an English Language Learner under Title 3? | values:
|
This element represents an e-mail address of one of a number of types and occurs in objects such as StudentPersonal, StaffPersonal, StudentContact, etc.
Figure 6.2.18-1: Email| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
This element represents an e-mail address of one of a number of types and occurs in objects such as StudentPersonal, StaffPersonal, StudentContact, etc. | xs:normalizedString | |||
| @ | Type | M | This attribute specifies the type of e-mail address. | values:
|
A list of e-mail addresses associated with an individual.
Figure 6.2.19-1: EmailList| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EmailList | A list of e-mail addresses associated with an individual. | ActionList (Email/@Type) | ||
| MR | ||||
| @ | SIF_Action | O |
In a | values:
|
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EnglishProficiency | O | |||
| Code | M | Person's proficiency in English. | NCES0585EnglishProficiencyType | |
| OtherCodeList | O | OtherCodeList |
Common element used to specify the date on which a student enters a school, program, course section, etc. It is used in objects such as StudentSchoolEnrollment and StudentSectionEnrollment.
Figure 6.2.21-1: EntryDate| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EntryDate | The first date on which a student enters. | xs:date |
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| ExceptionalityCategories | List | |||
| ExceptionalityCategory | MR | |||
| ExceptionalityCategory/Code | M |
Exceptionality description/code which identifies the exceptionality or areas of need of the student.
Not all programs require identification of an exceptionality.
If required for this program type, must have at least one element with ExceptionalityPriority value of | union of: NCES0768PrimaryDisabilityTypeType additional values:
| |
| ExceptionalityCategory/OtherCodeList | O | OtherCodeList | ||
| ExceptionalityCategory/ExceptionalityPriority | M | Identifies priority of the exceptionality. "Primary" is the first and is required even if only one exceptionality is specified. "Secondary", etc. are of lower priority. Primary, Secondary, and Tertiary must be specified before "Additional" is used. | values:
|
The last school calendar day (membership day) the student was enrolled (inclusive). Refer to the object for a precise contextual definition.
Figure 6.2.23-1: ExitDate| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| ExitDate | The date on which a student exits. | xs:date |
A person's first name.
Figure 6.2.24-1: FirstName| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FirstName | A person's first name. | xs:normalizedString |
A person's gender.
Figure 6.2.25-1: Gender| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Gender | O | A person's gender. | values:
|
Is the student in Gifted/Talented programs?
Figure 6.2.26-1: GiftedTalented| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| GiftedTalented | Is the student in Gifted/Talented programs? | values:
|
This is a common element used to specify a grade level. It is used in StudentSchoolEnrollment and assessment-related objects.
Figure 6.2.27-1: GradeLevel| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| GradeLevel | Grade or academic level. | |||
| Code | M | Code representing the grade level. | values:
| |
| OtherCodeList | O | OtherCodeList |
This is a common element used to specify a collection of grade levels supported. It is used in SchoolInfo and assessment-related objects.
Figure 6.2.28-1: GradeLevels| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| GradeLevels | This is a common element used to specify a collection of grade levels supported. It is used in SchoolInfo and assessment-related objects. | List | ||
| GradeLevel | MR | GradeLevel |
Date student officially graduated from secondary education.
Figure 6.2.29-1: GraduationDate| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| GraduationDate | Date student officially graduated from secondary education. | PartialDateType |
Does the state require that the course be completed for graduation?
Figure 6.2.30-1: GraduationRequirement| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| GraduationRequirement | Does the state require that the course be completed for graduation? | values:
|
This element contains a map location. The GridLocation element is utilized within other objects and elements, such as BusStopInfo and Address, etc.
Figure 6.2.31-1: GridLocation| Element/@Attribute | Char | Description | Type | |||||
|---|---|---|---|---|---|---|---|---|
| GridLocation | This element contains a map location. The GridLocation element is utilized within other objects and elements, such as BusStopInfo and Address, etc. | |||||||
| Latitude | M | Latitude in decimal degrees. Latitudes north of the equator are positive, latitudes south of the equator are negative [ISO 6709]. | xs:decimal
| |||||
| Longitude | M | 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
|
An indication that the individual traces his or her origin or descent to Mexico, Puerto Rico, Cuba, Central or South America, or other Spanish cultures, regardless of race.
Figure 6.2.32-1: HispanicLatinoTable 6.2.32-1: HispanicLatinoIs the student homeless?
Figure 6.2.33-1: Homeless| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Homeless | Is the student homeless? | values:
|
Common element used to specify the locally-defined number or identifier for a homeroom. It is used in objects such as RoomInfo and StudentSnapshot.
Figure 6.2.34-1: HomeroomNumber| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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 |
Is the student IDEA-eligible ("special education")? (Mutually exclusive with Section 504 classification.)
Figure 6.2.35-1: IDEA| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| IDEA | Is the student IDEA-eligible ("special education")? (Mutually exclusive with Section 504 classification.) | values:
|
Other identification information associated with a school or LEA.
Figure 6.2.36-1: IdentificationInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| IdentificationInfo | Other identification information associated with a school or LEA. | xs:normalizedString | ||
| @ | Code | Code indicating which identification system is used. | NCES0147IdentificationSystemType subset:
|
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| IdentificationInfoList | List | |||
| IdentificationInfo | MR | Other identification information associated with a school or LEA. | IdentificationInfo |
Does the student meet the State criteria for classification as being an immigrant?
Figure 6.2.38-1: Immigrant| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Immigrant | Does the student meet the State criteria for classification as being an immigrant? | values:
|
An indication of the general nature and difficulty of instruction provided.
Figure 6.2.39-1: InstructionalLevel| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| InstructionalLevel | An indication of the general nature and difficulty of instruction provided. | |||
| Code | M | Code representing the general nature and difficulty of instruction provided. | NCES0437InstructionalLevelType | |
| OtherCodeList | O | OtherCodeList |
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| LanguageList | O | List | ||
| Language | MR | |||
| Language/Code | M | The code representing the specific language that an individual uses to communicate. | NISOZ3953LanguageCodesType | |
| Language/OtherCodeList | O | OtherCodeList | ||
| Language/LanguageType | O | An indication of the function and context in which an individual uses a language to communicate. | NCES0327LanguageTypeType | |
| Language/Dialect | O | Specific dialect of a person's language. | xs:normalizedString |
A person's last name.
Figure 6.2.41-1: LastName| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| LastName | A person's last name. | xs:normalizedString |
Name of Local Education Agency.
Figure 6.2.42-1: LEAName| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| LEAName | Name of Local Education Agency. | xs:normalizedString |
This is a common element used to define the locally assigned identifier associated with an entity. It is used in StudentPersonal, StaffPersonal, SchoolInfo, and other objects.
Figure 6.2.43-1: LocalId| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| LocalId | This is a common element used to define the locally assigned identifier associated with an entity. It is used in StudentPersonal, StaffPersonal, SchoolInfo, and other objects. | xs:normalizedString |
This common element initially supports core data elements describing specific physical locations.
It is not meant to replace the LocationInfo object but is, rather, supposed to facilitate consistent but informal descriptions and references of specific, physical locations.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Location | ||||
| @ | Type | O | values:
| |
| LocationName | O | Name of the location. | xs:token | |
| LocationRefId | O | RefId of the location object if the location is a SIF Object such as SchoolInfo. | IdRefType | |
| @ | SIF_RefObject | M | Type of SIF Object Location points to. | values:
|
This gives information about a student's meal status.
Figure 6.2.45-1: MealStatus| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| MealStatus | This gives information about a student's meal status. | |||
| @ | Type | M | Meal status type.
| values:
|
| StartDate | O | Date on which meal status became effective (inclusive). | xs:date | |
| EndDate | C |
Date on which meal status was last in effect, if in the past.
This element can't exist without a | xs:date | |
| SchoolYear | O |
School year for which the information is applicable, expressed as the four-digit year in which the school year ends
(e.g., | SchoolYear |
This gives information about a meal type.
Figure 6.2.46-1: MealType| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| MealType | This gives information about a meal type. | values:
|
This element represents the meeting times and periods for a course, and occurs within objects such as SectionInfo and StudentSectionEnrollment.
Figure 6.2.47-1: MeetingTime| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| MeetingTime | This element represents the meeting times and periods for a course, and occurs within objects such as SectionInfo and StudentSectionEnrollment. | |||
| TimetableDay | O | Locally defined rotation cycle day code when the section meets (e.g., in a two day schedule, valid values would be "A" and "B," or "1" and "2"). | xs:normalizedString | |
| TimetablePeriod | O | The period within the day when this section takes place (e.g., "0" through "7"). | xs:normalizedString |
A person's middle name or initial.
Figure 6.2.48-1: MiddleName| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| MiddleName | A person's middle name or initial. | xs:normalizedString |
Is this a migrant student?
Figure 6.2.49-1: Migrant| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Migrant | Is this a migrant student? | values:
|
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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, StudentContact, StaffPersonal, etc. | BaseNameType | ||
| @ | Type | M |
Code that specifies what type of name this is. If unsure, use | values:
|
This is a common element used to define the identifier assigned by the National Center for Education Statistics that is associated with an entity. It is used in SchoolInfo, LEAInfo, and other objects.
Figure 6.2.51-1: NCESId| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| NCESId | This is a common element used to define the identifier assigned by the National Center for Education Statistics that is associated with an entity. It is used in SchoolInfo, LEAInfo, and other objects. | xs:normalizedString |
Is the student participating in programs for neglected, delinquent, or at risk children?
Figure 6.2.52-1: NeglectedDelinquent| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| NeglectedDelinquent | Is the student participating in programs for neglected, delinquent, or at risk children? | values:
|
First projected graduation year, usually determined when student is accepted into 9th grade (CCYY).
Figure 6.2.53-1: OnTimeGraduationYear| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| OnTimeGraduationYear | First projected graduation year, usually determined when student is accepted into 9th grade (CCYY). | xs:gYear |
This common element contains status information about a school, LEA, or other institution.
Figure 6.2.54-1: OperationalStatus| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| OperationalStatus | Operational condition of an institution. For schools, use 0256 School Status Type. For LEAs, use 0032 Agency Status. | union of: NCES0256SchoolStatusType NCES0032AgencyStatusType |
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| OtherCodeList |
List of other codes or strings that crosswalk to or serve as translations of the | List | ||
| OtherCode | MR |
A state/province code, local code, other code or a text string that crosswalks to or serves as a translation of an associated | xs:token | |
| @ | Codeset | M |
Describes the | values:
|
An "other" identifier associated with a person. This element occurs in objects such as StudentPersonal and StaffPersonal, etc.
Figure 6.2.56-1: OtherId| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| OtherId | An "other" identifier associated with a person. This element occurs in objects such as StudentPersonal and StaffPersonal, etc. | xs:normalizedString | ||
| @ | Type | M | Code that defines the type of this other ID. Note: A subset of valid values may be specified in data objects. | NCES0147IdentificationSystemType |
Previous, alternate or other names or aliases associated with a person.
Figure 6.2.57-1: OtherNames| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| OtherNames | O | Previous, alternate or other names or aliases associated with a person. | ActionList (Name/@Type) | |
| Name | MR |
Name of the person. Note: Type value of | OtherNameType | |
| @ | SIF_Action | O |
In a | values:
|
This element represents a phone number and occurs within objects such as StudentPersonal, StaffPersonal, etc.
Figure 6.2.58-1: PhoneNumber| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| PhoneNumber | This element represents a phone number and occurs within objects such as StudentPersonal, StaffPersonal, etc. | |||
| @ | Type | M | Code that specifies what type of phone number this is. Note: A subset of valid values may be specified in data objects. | NCES0280TelephoneNumberTypeType |
| Number | M | Phone number. Free-form, but typical U.S. formats include:
| xs:normalizedString | |
| Extension | O | Phone number extension. | xs:normalizedString | |
| ListedStatus | O | Indicates whether or not the phone number is available to the public. | values:
|
Lists phone numbers associated with an entity.
Figure 6.2.59-1: PhoneNumberList| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| PhoneNumberList | Lists phone numbers associated with an entity. | ActionList (PhoneNumber/@Type) | ||
| PhoneNumber | MR | PhoneNumber | ||
| @ | SIF_Action | O |
In a | values:
|
The student's planned level of participation in statewide assessments.
Figure 6.2.60-1: PlannedAssessmentParticipation| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| PlannedAssessmentParticipation | The student's planned level of participation in statewide assessments. Examples | xs:token | ||
| @ | Codeset | Identifies source of value provided. | values:
|
Is this the person's primary assignment?
Figure 6.2.61-1: PrimaryAssignment| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| PrimaryAssignment | Is this the person's primary assignment? | values:
|
This common element is used to describe program information. It uses a type attribute that provides a list of values that identify programs. Each use of this common element should specify the standard list of values to be utilized within that object.
Figure 6.2.62-1: Program| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Program | Program value. | xs:normalizedString | ||
| @ | Type | M | The type of the program. Type identifies the list of values. | values:
|
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| ProgramStatus | ||||
| Code | M | The current status of the student's program participation. | values:
| |
| OtherCodeList | O | OtherCodeList |
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| ProgramType | ||||
| Code | M | Identifies the individualized program for which the student's participation is described in this instance. | union of: NCES0274StudentFamilyProgramTypeType subset:
NCES0229ProgramTypeType subset:
additional values:
| |
| OtherCodeList | O | OtherCodeList |
Currently projected graduation year.
Figure 6.2.65-1: ProjectedGraduationYear| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| ProjectedGraduationYear | Currently projected graduation year (CCYY). | xs:gYear |
This is a common element used to specify whether or not information (e.g., contact information) should be published in a directory. It is used in the SchoolInfo and LEAInfo objects.
Figure 6.2.66-1: PublishInDirectory| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| PublishInDirectory | Indicates whether or not information should be published in a directory. | values:
|
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| RaceList | List | |||
| Race | MR | |||
| Race/Code | M | The general racial category which reflects the individual's recognition of his or her community or with which the individual most identifies. In a given SIF implementation Agents must have alignment on the use of the NCES and deprecated SPEEDE code sets. Agents are not required to translate between the code sets. | union of: NCES0849RaceType additional values:
| |
| Race/OtherCodeList | O | OtherCodeList | ||
| Race/Proportion | O | A percentage associated with the race. | xs:decimal |
Code that defines the relationship of one person to another.
Figure 6.2.68-1: Relationship| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Relationship | Code that defines the relationship of one person to another. | |||
| Code | M | Code representing the relationship. | NCES0609RelationshipToStudentType | |
| OtherCodeList | O | OtherCodeList |
Course code from the School Codes for the Exchange of Data that describe the content of the course.
Figure 6.2.69-1: SCEDCode| Element/@Attribute | Char | Description | Type | |||||
|---|---|---|---|---|---|---|---|---|
| SCEDCode | Course code from the School Codes for the Exchange of Data that describe the content of the course. | |||||||
| CourseDescription | M | Five-digit number. Subject areas are represented by the first two digits, the last three digits specify a particular course within the subject area. | SCEDCourseTitlesType | |||||
| CourseLevel | M | Conveys the level of the course. | values:
| |||||
| AvailableCredit | M | Identifies the amount of credit available to a student who successfully meets the objectives of the course, measured in Carnegie units (9.99 format). | xs:decimal
| |||||
| SequenceNumber | M | One-digit number describing where a specific course lies when it is part of a consecutive sequence of courses described by the same general course description. | xs:unsignedInt
| |||||
| SequenceLimit | M | One-digit number representing the total number of courses in the consecutive sequence described by the same general course description. | xs:unsignedInt
|
A list of contact persons associated with a school.
Figure 6.2.70-1: SchoolContactList| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SchoolContactList | A list of contact persons associated with a school. | List | ||
| SchoolContact | MR | 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 |
Common element used to specify the name of a school. It is used in objects such as SchoolInfo and StudentSnapshot.
Figure 6.2.71-1: SchoolName| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SchoolName | The name of the school. | xs:normalizedString |
URL for a school.
Figure 6.2.72-1: SchoolURL| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SchoolURL | URL for a school. | xs:anyURI |
Common element used to designate the academic school year to which an object relates.
Figure 6.2.73-1: SchoolYear| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SchoolYear | School year for which this information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2004" for the 2003-04 school year). | xs:gYear |
Is the student a qualified individual under Section 504 of the Rehabilitation Act? (Mututally exclusive with IDEA classification.)
Figure 6.2.74-1: Section504| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Section504 | Is the student a qualified individual under Section 504 of the Rehabilitation Act? (Mututally exclusive with IDEA classification.) | values:
|
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.
Figure 6.2.75-1: SIF_ExtendedElements| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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_ExtendedElement | OR | A name/value pair, the name being contained in the Name attribute, the value being the element content. | ExtendedContentType | |
| @ | Name | M | 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:type | O | Allows type of element to be explicitly communicated. | |
| @ | SIF_Action | O |
In a | values:
|
Social Security Number
Figure 6.2.76-1: SSN| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SSN | Social Security Number | xs:token |
State-defined standard course code used to report information about courses.
Figure 6.2.77-1: StateCourseCode| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StateCourseCode | State-defined standard course code used to report information about courses. | xs:normalizedString |
A state or province code. Note: When dealing with countries other than the United States or Canada, state/province codes/values other than those referenced here can be used.
Figure 6.2.78-1: StateProvince| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StateProvince | A state or province code. Note: When dealing with countries other than the United States or Canada, state/province codes/values other than those referenced here can be used. | union of: USPSAbbreviationsType CanadaPostProvincesAndTerritoriesType xs:token |
This is a common element used to define the state or province assigned identifier associated with an entity. It is used in StudentPersonal, StaffPersonal, and other objects.
Figure 6.2.79-1: StateProvinceId| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StateProvinceId | The identifier for this entity as assigned by the state or province. | xs:normalizedString |
This is a common element used to designate the subject area of a course or other learning materials, or a department. It is used in SchoolCourseInfo and learning-related objects.
Figure 6.2.80-1: SubjectArea| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SubjectArea | This is a common element used to designate the subject area of a course or other learning materials, or a department. It is used in SchoolCourseInfo and learning-related objects. | |||
| Code | M | The subject area code (i.e., the first two digits of the course classification code). | union of: SCEDSecondaryCoursesType SCEDNonSecondaryCoursesType | |
| OtherCodeList | O | OtherCodeList |
A list of subject areas.
Figure 6.2.81-1: SubjectAreaList| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SubjectAreaList | A list of subject areas. | List | ||
| SubjectArea | MR | Subject matter. | SubjectArea |
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| TermSpan | ||||
| Code | M | Code for session type. | NCES0266SessionTypeType | |
| OtherCodeList | O | OtherCodeList |
Is the student in Title 1 programs?
Figure 6.2.83-1: Title1| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Title1 | Is the student in Title 1 programs? | values:
|
Does the student meet the State criteria for classification as a vocational concentrator?
Figure 6.2.84-1: VocationalConcentrator| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| VocationalConcentrator | Does the student meet the State criteria for classification as a vocational concentrator? | values:
|
The Assessment Working Group concentrates on ensuring that assessment results can be made available in a timely manner and that the results are transmitted in a meaningful manner.
Click here for non-normative background/supplementary documentation from this group.
An assessment measures a student's progress and learning on specific academic standards.
SIF_Events are not reported for this object.
Figure 6.3.1-1: Assessment| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Assessment | ||||
@![]() | RefId | M | The GUID that uniquely identifies this object. | RefIdType |
| Name | M | Name of the test. | xs:normalizedString | |
| AssessmentId | O | The state, local or publisher unique ID for the assessment. | xs:normalizedString | |
| AssessmentPackageRefId | O | IdRefType | ||
| AssessmentDescriptors | O | Describes what type of assessment this represents. | List | |
| AssessmentDescriptors/AssessmentDescriptor | OR | union of: NCES0067AssessmentTypeType additional values:
| ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object represents an assessment event. It includes information related to the time of administration, place of administration, and unusual events related to the administration.
SIF_Events are reported for this object.
Figure 6.3.2-1: AssessmentAdministration| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| AssessmentAdministration | This object represents an assessment event. It includes information related to the time of administration, place of administration, and unusual events related to the administration. | |||
@![]() | RefId | M | The GUID that uniquely identifies an instance of the object. | RefIdType |
| @ | AssessmentFormRefId | M | The RefId of the assessment form used in the assessment administration. | IdRefType |
| AdministrationName | O | xs:normalizedString | ||
| SpecialConditions | O | Special conditions or unusual events related to the administration event. | ActionList (SpecialCondition/@Code) | |
| SpecialConditions/SpecialCondition | MR | A text description of the special condition. Examples | xs:string | |
| @ | Code | M | This is the primary key for the list of special conditions. | xs:token |
| @ | SIF_Action | O |
In a | values:
|
| AdministrationDateTime | M | Date and time the test is scheduled to be given. | xs:dateTime | |
| StartDateTime | O | Date and time testing begins. | xs:dateTime | |
| FinishDateTime | O | Date and time testing ends. | xs:dateTime | |
| DueDateTime | O | Date and time test is due. | xs:dateTime | |
| Address | O | Address of the location where the administration takes place. | Address | |
| StaffPersonalRefId | O | Optional reference to a staff person associated with the administration. | IdRefType | |
| LEAInfoRefId | O | Optional reference to a school district associated with the administration. | IdRefType | |
| SchoolInfoRefId | O | Optional reference to a school associated with the administration. | IdRefType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
Represents the unique set of questions or stimuli given to a set of test takers. A physical correlate of the assessment form is the test booklet given to students during an assessment. However, this object does not contain the questions, it only contains elements that describe the form for use in scoring the questions.
SIF_Events are not reported for this object.
Figure 6.3.3-1: AssessmentForm| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| AssessmentForm | Represents the unique set of questions or stimuli given to a set of test takers. A physical correlate of the assessment form is the test booklet given to students during an assessment. However, this object does not contain the questions, it only contains elements that describe the form for use in scoring the questions. | |||
@![]() | RefId | M | The GUID that uniquely identifies an instance of the object. | RefIdType |
| @ | AssessmentRefId | M | The RefId of the assessment related to this form. | IdRefType |
| AssessmentType | O | Indicates whether this assessment (form) is a standard administration or alternate. | values:
| |
| FormName | M | Text description for this particular arrangement of questions, etc. | xs:normalizedString | |
| FormNumbers | O | Reference numbers for the form. | List | |
| FormNumbers/FormNumber | MR | Reference number for the form. | xs:token | |
| Level | O | Indicates the level of the form. Examples | xs:token | |
| Period | O | The time period in which the form is intended to be administered. | xs:token | |
| GradeLevels | O | Grade levels this assessment is designed to evaluate. | GradeLevels | |
| AssessmentSubTestRefIds | O | Associated subtests (score types). Each form can provide scores in one or more subtest areas. | List | |
| AssessmentSubTestRefIds/AssessmentSubTestRefId | OR | A subtest identified by RefId. | IdRefType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object is designed to allow software systems to provide item detail information such as the stem of the item, the distractors, the stimuli, etc. This initial version of the object does not deal with presentation aspects of the item. Instead it focuses on the item content and characteristics needed to enable interoperability and the usage of item-level information in the improvement of learning and instruction.
SIF_Events are not reported for this object.
Click here for non-normative background/supplementary documentation on this object.
Figure 6.3.4-1: AssessmentItem| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| AssessmentItem | This object is designed to allow software systems to provide item detail information such as the stem of the item, the distractors, the stimuli, etc. This initial version of the object does not deal with presentation aspects of the item. Instead it focuses on the item content and characteristics needed to enable interoperability and the usage of item-level information in the improvement of learning and instruction. | |||
@![]() | RefId | M | RefIdType | |
| @ | AssessmentFormRefId | M | This RefId points to the assessment form of which the item is a part. | IdRefType |
| @ | ResponseType | M | A value that indicates the response type for the item. | values:
|
| ItemLabel | M | An item number or other identifier for the item. It may be used to indicate the order or grouping of items. | xs:token | |
| ItemName | O | Name or short description of the item. | xs:string | |
| LearningStandardItems | O | This object contains information related to curriculum standards statements "standards" or "benchmarks" or the like within the document.
This object primarily focuses upon state department curriculum standards, published curriculum standards and local education agency learning standards.
Each | List | |
| LearningStandardItems/LearningStandardItemRefId | MR | IdRefType | ||
| Stimulus | C | A piece of content to be used by the test taker in responding to the stem. Examples include a reading passage, a video, a diagram, or a picture. Note: The | AbstractContentElementType | |
| Stem | O | The question, task, or statement that prompts a response from the test taker. | AbstractContentElementType | |
| ResponseChoices | C | This complex element will not be included in the object if
Other cases will be added in the future. | ||
| ResponseChoices/Choice | MR | |||
| ResponseChoices/Choice/ChoiceLabel | O | A choice number or other identifier for the choice. It may be used to indicate the order or grouping of the choices. | xs:normalizedString | |
| ResponseChoices/Choice/ChoiceContent | M | The text of the choice, such as | AbstractContentElementType | |
| ResponseChoices/Choice/CreditValue | O | A numeric value that indicates the amount of credit awarded for choosing the choice. | xs:float | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
SIF_Events are not reported for this object.
Figure 6.3.5-1: AssessmentPackage| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| AssessmentPackage | A wrapper for any external standard that can define or transmit the content of an assessment. | |||
@![]() | RefId | M | The GUID that uniquely identifies an object instance in a zone. | RefIdType |
| XMLData | C | Contains an arbitary XML element, encoded in UTF-8. | <xs:any processContents="lax" /> | |
| @ | Description | O | Contains an optional description of the content or a processing hint with regard to its structure (e.g. named standard, file layout or XSD). | xs:token |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object represents the assignment of a specific assessment to be taken by a student.
SIF_Events are reported for this object.
Figure 6.3.6-1: AssessmentRegistration| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| AssessmentRegistration | This object represents the assignment of a specific assessment to be taken by a student. | |||
@![]() | RefId | M | The GUID that uniquely identifies an instance of the object. | RefIdType |
| @ | StudentPersonalRefId | M | The student associated with the registration. | IdRefType |
| @ | AssessmentAdministrationRefId | M | The assessment administration associated with the registration. | IdRefType |
| CreationDateTime | M | Date/time assignment is made. | xs:dateTime | |
| StudentSpecialConditions | O | Records student-specific special conditions during the test. | List | |
| StudentSpecialConditions/ StudentSpecialCondition | MR | A description of the special condition. Student special conditions are different from special conditions of the test. | xs:normalizedString | |
| @ | Code | M | A code indicating the type of special condition. | xs:token |
| StudentGradeLevel | O | Grade level of the student at the time of testing. | GradeLevel | |
| AssessmentGradeLevel | O | The grade or level at which the student is to be tested. This element should be omitted unless the student is being tested out-of-level. | GradeLevel | |
| AssessmentStudentSnapshot | O | The status of the student at the time of testing. The source of this information is meant to be the assessment system and not the student information system. | ||
| AssessmentStudentSnapshot/ RaceList | O | Person's race | RaceList | |
| AssessmentStudentSnapshot/ HispanicLatino | O | HispanicLatino | ||
| AssessmentStudentSnapshot/ Gender | O | Person's gender. | Gender | |
| AssessmentStudentSnapshot/ BirthDate | O | The person's date of birth. | BirthDate | |
| AssessmentStudentSnapshot/ Title1 | O | Title1 | ||
| AssessmentStudentSnapshot/ ELL | O | ELL | ||
| LEAInfoRefId | O | Optional reference to a district associated with the registration. | IdRefType | |
| SchoolInfoRefId | O | Optional reference to a school associated with the registration. | IdRefType | |
| StaffPersonalRefId | O | Optional reference to a staff person associated with the registration. | IdRefType | |
| SectionInfoRefId | O | Optional reference to a section (or class) associated with the registration. | IdRefType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
A psychological construct measured by the assessment. Operationally, a subtest is a class of scores on an assessment. Some assessments may have only one subtest or type of score but most assessments measure more than one psychological construct. The subtest can be based upon items in a section or items that are empirically related. Subtests can also be composites of other subtests that are combined using a particular algorithm. Examples of subtests of an assessment are math total, reading composite, total test, and English composition.
SIF_Events are not reported for this object.
Figure 6.3.7-1: AssessmentSubTest| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| AssessmentSubTest | A psychological construct measured by the assessment. Operationally, a subtest is a class of scores on an assessment. Some assessments may have only one subtest or type of score but most assessments measure more than one psychological construct. The subtest can be based upon items in a section or items that are empirically related. Subtests can also be composites of other subtests that are combined using a particular algorithm. Examples of subtests of an assessment are math total, reading composite, total test, and English composition. | |||
@![]() | RefId | M | The GUID that uniquely identifies an instance of the object. | RefIdType |
| Name | M | Text name of the subtest. | xs:normalizedString | |
| ScoreRange | O | The possible range of scores. | ||
| @ | ScoreMetric | M | The metric or scale used to report the scores. | NCES0056AssessmentReportingMethodType |
| ScoreRange/Minimum | O | Lowest possible score value. | xs:token | |
| ScoreRange/Maximum | O | Highest possible score value. | xs:token | |
| PerformanceLevels | O | Container for performance level elements. | List | |
| PerformanceLevels/PerformanceLevel | OR | Defines cut scores for placing students in appropriate performance levels. | ||
| @ | LevelName | M | The name of the performance level. | xs:token |
| PerformanceLevels/PerformanceLevel/ CutScores | O | Score bounds for the performance level. | ||
| @ | ScoreMetric | M | The metric or scale used to report the scores. | NCES0056AssessmentReportingMethodType |
| PerformanceLevels/PerformanceLevel/ CutScores/LowerCut | O | Lower bound for the performance level. | xs:token | |
| PerformanceLevels/PerformanceLevel/ CutScores/UpperCut | O | Upper bound for the performance level. | xs:token | |
| SubjectArea | O | Content area covered by the score. | xs:token | |
| GradeLevels | O | Grade levels for which the score is valid. | GradeLevels | |
| AssessmentSubTestRefIds | O | References (possibly recursive) to other SIF AssessmentSubTests. This enables subtests or scores to be composites of other scores. If any references are given here, the score is a composite score. The list must be unique. | List | |
| AssessmentSubTestRefIds/AssessmentSubTestRefId | MR | A reference to an AssessmentSubTest by RefId. | IdRefType | |
| SubTestTier | O | An integer that defines the level or tier of the score in a multi-level arrangement of composite scores. Zero indicates the highest or root level. | xs:unsignedInt | |
| LearningStandardItemRefIds | O | References to LearningStandardItems. The list must be unique. | List | |
| LearningStandardItemRefIds/ LearningStandardItemRefId | MR | A reference to a LearningStandardItem by RefId. | IdRefType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
SIF_Events are not reported for this object.
Figure 6.3.8-1: ItemCharacteristics| Element/@Attribute | Char | Description | Type | |||||
|---|---|---|---|---|---|---|---|---|
| ItemCharacteristics | This object provides specific information about each assessment item. This information includes an analysis, psychometric measures, reliability and validity information. This item-level information assists in interpreting assessment scores as well as aide in improving teaching and learning. | |||||||
@![]() | RefId | M | RefIdType | |||||
| @ | AssessmentItemRefId | M | This RefId points to the assessment item of which the characteristics are a part. | IdRefType | ||||
| @ | AssessmentFormRefId | M | This RefId points to the assessment form of which the item is a part. | IdRefType | ||||
| Descriptive | O | |||||||
| Descriptive/PValue | O | The percent of respondents who answered correctly. This number represents the probability of the correct response to a question. | xs:float | |||||
| Descriptive/SampleSize | O | The size of the student group that saw the item. | xs:integer | |||||
| Descriptive/PointBiserial | O | The correlation between correct answers (dichotomous variable) on this item and total correct answers on the test. | xs:decimal
| |||||
| Descriptive/Biserial | O | Similar to the Point Biserial Correlation except that answers to the item are assumed to come from an underlying continuous variable. | xs:decimal
| |||||
| Descriptive/DiscriminationIndex | O | The Index of Discrimination is the difference between the proportion of an upper group who got an item right and the proportion of a lower group who got the item right. | xs:decimal
| |||||
| DifferentialItemAnalysis | O | |||||||
| DifferentialItemAnalysis/ CMH | O | Cochran-Mantel-Haenszel statistic. | xs:decimal
| |||||
| DifferentialItemAnalysis/ MH | O | Mantel-Haenszel statistic. | xs:decimal
| |||||
| ResponseChoicePattern | O | The distribution of responses to each choice. This element only applies to multiple choice items. | List | |||||
| ResponseChoicePattern/Choice | MR | |||||||
| ResponseChoicePattern/Choice/ ChoiceLabel | M | Identifier for the choice. | xs:token | |||||
| ResponseChoicePattern/Choice/ Responses | M | The number of responses. | xs:integer | |||||
| SIF_Metadata | O | SIF_Metadata | ||||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object transmits the student's responses to stimuli presented in an assessment. These are the raw, unscored responses.
SIF_Events are reported for this object.
Figure 6.3.9-1: StudentResponseSet| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentResponseSet | This object transmits the student's responses to stimuli presented in an assessment. These are the raw, unscored responses. | |||
@![]() | RefId | M | The GUID that uniquely identifies an instance of the object. | RefIdType |
| @ | AssessmentAdministrationRefId | M | The administration associated with the response set. | IdRefType |
| @ | StudentPersonalRefId | M | The student associated with the response set. | IdRefType |
| @ | AssessmentRegistrationRefId | O | The registration associated with the response set. | IdRefType |
| Items | M | Container for item elements. | List | |
| Items/Item | OR | The item contains response data and metadata for each item. | ||
| @ | AssessmentItemRefId | O | A GUID that identifies the item object associated with this student result. | IdRefType |
| Items/Item/Response | M | Answer selected or student work in raw format. Examples | xs:string | |
| Items/Item/ResponseLocation | O | An optional element that contains a URL pointing to the location of the response or additional response. | xs:anyURI | |
| Items/Item/ResponseStatus | O | Status of the response. | values:
| |
| Items/Item/ResponseTime | O | The length of time the student took to respond. | xs:duration | |
| Items/Item/ItemNumber | O | Identifies the item on the assessment by number. | xs:token | |
| Items/Item/ItemName | O | Identifies the item on the assessment by name. | xs:token | |
| Items/Item/DiagnosticStatement | O | Psychometric purpose or design-related comment about the question. | xs:string | |
| Items/Item/NumberOfAttempts | O | The number of times a student changes their answer or attempts a response. | xs:unsignedInt | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
The scored results from an assessment.
SIF_Events are reported for this object.
Figure 6.3.10-1: StudentScoreSet| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentScoreSet | The scored results from an assessment. | |||
@![]() | RefId | M | The GUID that uniquely identifies an instance of the object. | RefIdType |
| @ | ScoreMetric | M | The metric or scale used to report the score. | NCES0056AssessmentReportingMethodType |
| @ | AssessmentAdministrationRefId | M | The administration associated with this score set. | IdRefType |
| @ | StudentPersonalRefId | M | The student associated with this score set. | IdRefType |
| @ | AssessmentRegistrationRefId | O | The registration associated with this score set. | IdRefType |
| Scores | M | Container for score elements. | List | |
| Scores/Score | OR | The score with other information related to the score. | ||
| @ | AssessmentSubTestRefId | M | References the AssessmentSubTest that defines the score. | IdRefType |
| Scores/Score/ScoreValue | M | The value of the score. | xs:normalizedString | |
| Scores/Score/DiagnosticStatement | O | Comment created by any logical analysis of this score. | xs:string | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
Click here for non-normative background/supplementary documentation from this group.
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.
Figure 6.4.1-1: SIF_Metadata| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_Metadata | A commonly defined container for metadata elements defined within SIF. | |||
| TimeElements | O | List | ||
| TimeElements/TimeElement | OR | TimeElement | ||
| LifeCycle | O | LifeCycle | ||
| RightsElements | O | List | ||
| RightsElements/RightsElement | OR | RightsElement | ||
| EducationFilter | O | EducationFilter |
A common metadata element designed to contain time data, both self-defined and by type.
Figure 6.4.2-1: TimeElement| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| TimeElement | A common metadata element designed to contain time data, both self-defined and by type. | |||
| Type | M | 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 | xs:normalizedString | |
| Code | M |
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 | xs:token | |
| Name | M |
Contains a human-readable description of the value in Value.
Examples | xs:normalizedString | |
| Value | M | Contains the human-readable value. Examples | xs:normalizedString | |
| StartDateTime | O | xs:dateTime | ||
| EndDateTime | O | xs:dateTime | ||
| SpanGaps | O | A container element for holding multiple possible span gaps. | List | |
| SpanGaps/SpanGap | OR |
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/Type | M | xs:normalizedString | ||
| SpanGaps/SpanGap/Code | M | xs:token | ||
| SpanGaps/SpanGap/Name | M | xs:normalizedString | ||
| SpanGaps/SpanGap/Value | M | xs:normalizedString | ||
| SpanGaps/SpanGap/StartDateTime | O | xs:dateTime | ||
| SpanGaps/SpanGap/EndDateTime | O | xs:dateTime | ||
| IsCurrent | M |
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 |
This common metadata element describes the life cycle of the object it represents, based on the IEEE LOM LifeCycle element [LOM].
Figure 6.4.3-1: LifeCycle| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| LifeCycle | This common metadata element describes the life cycle of the object it represents, based on the IEEE LOM LifeCycle element [LOM]. | |||
| Created | O |
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/DateTime | M | xs:dateTime | ||
| Created/Creators | O | List | ||
| Created/Creators/Creator | MR | |||
| 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 | M | Unique identifier of the creator. An email address or URI could be used here. | xs:normalizedString | |
| ModificationHistory | O |
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 | OR | A single modification event. | ||
| ModificationHistory/Modified/ By | M | Identifier of the system or person that modified the data. | xs:normalizedString | |
| ModificationHistory/Modified/ DateTime | M | The date/time the modification occurred. | xs:dateTime | |
| ModificationHistory/Modified/ Description | O | Human readable description of the data modifications. | xs:string | |
| TimeElements | O | List | ||
| TimeElements/TimeElement | OR | TimeElement |
A common metadata element designed to carry any intellectual property or copyright information, based on the IEEE LOM Rights element [LOM].
Figure 6.4.4-1: RightsElement| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| RightsElement | A common metadata element designed to carry any intellectual property or copyright information, based on the IEEE LOM Rights element [LOM]. | |||
| Cost | O | xs:boolean | ||
| FeesForUse | O | A container for fees for use of the content in the object. | List | |
| FeesForUse/FeeForUse | OR | Description of one fee structure applying to the use of this resource. | ||
| FeesForUse/FeeForUse/UseType | M | A description of the fee structure for this resource. Some resources may be licensed differently depending upon their context. For example, a content provider might charge one fee structure for resources used in the classroom and a separate fee for those resources available to parents from home. | xs:string | |
| FeesForUse/FeeForUse/MeteringType | M | xs:token | ||
| FeesForUse/FeeForUse/MeteringURL | O | xs:anyURI | ||
| FeesForUse/FeeForUse/PerUseCharge | O | MonetaryAmountType | ||
| CopyrightStatement | O | xs:string | ||
| TermsOfUse | O | xs:string |
Based on feedback from publishers, instructional management and system integrator vendors,
EducationFilter was developed to provide the ability to tag objects with metadata that allows for categorization,
sorting, and filtering, to empower teaching and learning SIF usage. There exist two main business cases:
The use cases for EducationFilter require a contract and choreography to be understood between both sides of
the transaction as is the case with all SIF_Metadata.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EducationFilter | ||||
| MediaTypes | O | Allows an object or query to be tagged with MIME types. | List | |
| MediaTypes/MediaType | MR | xs:token | ||
| GradeLevels | O | Applicable grade levels as defined by SIF. | GradeLevels | |
| SubjectAreas | O | This allows subject areas to be associated with an object or query.
Although there could be overlap with LearningStandardItems, it is anticipated
there will be use cases where LearningStandardItem objects may not exist or may not be available, and data may need to be tagged with high-level subject areas. | List | |
| SubjectAreas/SubjectArea | MR | SubjectArea | ||
| InterestLevels | O | InterestLevels is designed to represent the grade level for which the content is created. For example a tenth grader is at a third grade level in Algebra. You would want to present the content at a third grade level, but in a tenth grade context or interest level. | List | |
| InterestLevels/InterestLevel | MR | GradeLevel | ||
| LearningStandardItems | O | Allows any SIF object to be correlated to learning standards. | List | |
| LearningStandardItems/LearningStandardItemRefId | MR | IdRefType | ||
| BloomsTaxonomyLevels | O | This is a taxonomy of educational objectives based on three "domains:" Affective, Psychomotor, and Cognitive. For the purposes of assigning attributes to learning resources, the SIF specification is limited to the cognitive domain, including knowledge, comprehension, application, analysis, synthesis and evaluation. | List | |
| BloomsTaxonomyLevels/BloomsTaxonomyLevel | OR | values:
| ||
| MultipleIntelligences | O | An educational theory that describes at least eight different kinds of "intelligences." These include linguistic, logical-mathematical, spatial, bodily-kinesthetic, musical intelligence, interpersonal, intrapersonal and naturalist. | List | |
| MultipleIntelligences/MultipleIntelligence | OR | values:
| ||
| InstructionalStrategies | O | The various ways that instruction is delivered to achieve learning objectives and concepts. | List | |
| InstructionalStrategies/InstructionalStrategy | OR | values:
|
This object is designed to facilitate the transfer of State Education Agency (SEA) directory information to the Department of Education (USED) through the Education Data Exchange Network (EDEN).
SIF_Events are not reported for this object.
Click here for non-normative background/supplementary documentation on this object.
Figure 6.4.6-1: SEAInfo| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| SEAInfo | This object is designed to facilitate the transfer of State Education Agency (SEA) directory information to the Department of Education (USED) through the Education Data Exchange Network (EDEN). | |||||
@![]() | RefId | M | The GUID of the SEA whose information this is. | RefIdType | ||
| LocalId | O | The locally-assigned identifier for this SEA. | LocalId | |||
| NCESId | O | The NCES-assigned identifier for this SEA. | NCESId | |||
| SEAName | M | The full legally accepted name of the SEA. | xs:normalizedString | |||
| SEAURL | O | URL for the SEA. | xs:anyURI | |||
| CSSOContact | M | Chief State School Officer contact information. | ContactInfo | |||
| SEAContactList | O | Information on contact persons for this SEA. | List | |||
| SEAContactList/SEAContact | MR | Container element for SEA contact information. | ||||
| SEAContactList/SEAContact/ PublishInDirectory | O | Indicates whether or not this SEA contact's information should be published in a directory of SEA information. | PublishInDirectory | |||
| SEAContactList/SEAContact/ ContactInfo | M | Contact information for a person at the SEA. | ContactInfo | |||
| PhoneNumberList | O | The SEA's phone number(s). | PhoneNumberList | |||
| AddressList | O | The SEA's address(es). | AddressList | |||
| OperationalStatus | O | Operational condition of an SEA. | OperationalStatus | |||
| EDENInfo | O | Container element for EDEN-specific information. | ||||
| EDENInfo/FIPSStateCode | O | The two-digit Federal Information Processing Standard (FIPS) Code for the State, District of Columbia, and the possessions and freely associated areas of the United States (e.g. Puerto Rico). | xs:token
| |||
| EDENInfo/AgencyIdNumber | O | A number used in EDEN to uniquely uniquely identify state agencies. | xs:normalizedString | |||
| SIF_Metadata | O | SIF_Metadata | ||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
The purpose of the StudentLEARelationship object is to represent the current information available regarding a single student's
relationship/affiliation to a single LEA for a specific school year as of the time a SIF_Event or SIF_Response is generated
by the system of record. This object is not designed to operate on a historical/longitudinal basis in the default context.
StudentLEARelationship instances must not span multiple school years.
Only one instance of the StudentLEARelationship object with MembershipType=Home may exist for a specific time interval
between EntryDate and ExitDate (inclusive) for a given student, LEA, and school year.
Multiple instances of the StudentLEARelationship object with MembershipType=Concurrent may exist for a specific time
interval between EntryDate and ExitDate (inclusive) for a given student, LEA, and school year.
Multiple instances of StudentLEARelationship will occur for specific or overlapping time intervals if a student has affiliations
with multiple LEA's. This will most likely be detected during aggregate data collection from multiple LEA's.
Since StudentLEARelationship/@RefId and StudentLEARelationship/@StudentPersonalRefId are zone-specific,
external mechanisms (e.g. student locator) would be required to correlate multiple instances of a single student affiliating with multiple LEA's.
SIF_Events are reported for this object.
Figure 6.4.7-1: StudentLEARelationship| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentLEARelationship | The purpose of the
Only one instance of the Multiple instances of the Multiple instances of | |||
@![]() | RefId | M | The unique identifier for a particular affiliation between a student and a LEA. | RefIdType |
| @ | StudentPersonalRefId | M | The SIF RefId of the | IdRefType |
| @ | LEAInfoRefId | M | The SIF RefId of the | IdRefType |
| @ | SchoolYear | M | Contains the SIF school year to which this instance of | SchoolYear |
| MembershipType | M | The type of this affiliation as it relates to the LEA identified in | values:
| |
| LEARelationshipType | M | An instance of the OrganizationRelationshipType common element that describes the details of the student's affiliation with the LEA. | OrganizationRelationshipType | |
| EntryDate | M | The date from when this affiliation is valid. | xs:date | |
| EntryType | O | |||
| EntryType/Code | M | Code indicating the type of entry for this affiliation. | NCES0619EntryTypeType | |
| EntryType/OtherCodeList | O | OtherCodeList | ||
| ExitDate | C | The last school calendar day (membership day) the student was affiliated with the LEA (inclusive). The conditional characteristic of this element is defined such that if the student has exited the LEA, then | xs:date | |
| ExitType | O | |||
| ExitType/Code | M | Code indicating the type of exit for this affiliation. | NCES0644ExitWithdrawalTypeType | |
| ExitType/OtherCodeList | O | OtherCodeList | ||
| ExitStatus | O | |||
| ExitStatus/Code | M | Code indicating the exit status for this affiliation. | NCES0643ExitWithdrawalStatusType | |
| ExitStatus/OtherCodeList | O | OtherCodeList | ||
| NonResidentAttendReason | C | Indicates the reason that the student has an affiliation with this LEA if the student is a not a resident of the LEA. The conditional characteristic of this element is defined such that if the LEA participating in this affiliation is outside of the student's usual attendance area, as indicated in the | NCES0599NonResidentAttendanceRationaleType | |
| GradeLevel | O | The grade or academic level of the student. | GradeLevel | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
The mission of the Data Warehouse Working Group is to lead the definition of the detailed data that schools and parents need to improve student achievement and organizational effectiveness. It will represent to the other SIF Association working groups the interests of the school administrators, guidance counselors, teachers, parents and students who can benefit from the analysis of integrated SIF K-12 data.
This object defines the data that is being aggregated as well as the type of measurement that is being performed.
SIF_Events are reported for this object.
Figure 6.5.1-1: AggregateStatisticInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| AggregateStatisticInfo | This object defines the data that is being aggregated as well as the type of measurement that is being performed. | |||
@![]() | RefId | M | Key | RefIdType |
| StatisticName | M | Name of Aggregate Statistic Examples | xs:token | |
| CalculationRule | O | Rule for calculating the aggregate statistic | xs:string | |
| @ | Type | M | values:
| |
| ApprovalDate | O | Date for which the statistic is initially valid | xs:date | |
| ExpirationDate | O | Date after which the statistic is no longer valid | xs:date | |
| ExclusionRules | O | Rules for which statistic may not be reported. | List | |
| ExclusionRules/ExclusionRule | OR | Rule for which statistic may not be reported | xs:string | |
| @ | Type | M | values:
| |
| Source | O | System providing the data: i.e., SIS, Transportation, | xs:token | |
| EffectiveDate | O | Effective date of the statistic | xs:date | |
| DiscontinueDate | O | Discontinue date of the statistic | xs:date | |
| Location | O | |||
| @ | Type | M | values:
| |
| Location/LocationName | O | Name of the location | xs:token | |
| Location/LocationRefId | O |
| IdRefType | |
| @ | SIF_RefObject |
Type of SIF object | values:
| |
| Measure | O | Type of the statistic. | values:
| |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object defines the attribute of a group of objects that implicitly or explicitly defines a subset of the group.
SIF_Events are reported for this object.
Figure 6.5.2-1: AggregateCharacteristicInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| AggregateCharacteristicInfo | This object defines the attribute of a group of objects that implicitly or explicitly defines a subset of the group. | |||
@![]() | RefId | M | Key for aggregate characteristic information. | RefIdType |
| Description | O |
Describes the supercategory of the characteristic described in the Examples | xs:string | |
| Definition | M | Defines the aggregate characteristic information. Examples | xs:token | |
| ElementName | O |
Reference to SIF elements or external authority (e.g., Examples | xs:token | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object is the actual value of the measurement. It is always associated with one statistic and one or more characteristics.
SIF_Events are reported for this object.
Figure 6.5.3-1: AggregateStatisticFact| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| AggregateStatisticFact | This object is the actual value of the measurement. It is always associated with one statistic and one or more characteristics. | |||
@![]() | RefId | M | RefIdType | |
| AggregateStatisticInfoRefId | M |
Reference to statistic defined by AggregateStatisticInfo.
| IdRefType | |
| Characteristics | M |
Reference to one or more | List | |
| Characteristics/AggregateCharacteristicInfoRefId | MR |
Reference to an | IdRefType | |
| Excluded | O | values:
| ||
| Value | M | Value of the fact. | xs:decimal | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
The Food Services Working Group specifies, implements, and promotes a standard set of messages and automated communication mechanisms that allow computer applications for the food service sector of the education industry to effectively exchange information with all SIF applications.
This object communicates information about food service items.
SIF_Events are reported for this object.
Figure 6.6.1-1: FoodserviceItem| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceItem | ||||
@![]() | RefId | M | GUID that identifies this item | RefIdType |
| LocalId | M | Item number as presented to user. | LocalId | |
| Description | O | Description of Item | xs:normalizedString | |
| ElectronicIdList | O | Electronic identifier(s) associated with this item. | ElectronicIdList | |
| ItemCategory | O | The category is derived from the Child Nutrition Database's food category codes/names (Source: Food Category Name File [CNDB]). Agents may use the actual codes or a district's local definition of the names associated with the codes. The Child Nutrition Database [CNDB] is updated on a yearly basis by the USDA. Examples | xs:normalizedString | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object describes a certain amount for a specific item unit.
Note that this version of the object does not contain any elements that define item pricing. This task is left for future development.
SIF_Events are reported for this object.
Figure 6.6.2-1: FoodserviceItemPortion| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceItemPortion | This object describes a certain amount for a specific item unit. Note that this version of the object does not contain any elements that define item pricing. This task is left for future development. | |||
@![]() | RefId | M | GUID that identifies this item's portion | RefIdType |
| FoodserviceItemUnitRefId | M | GUID that identifies related item portion | IdRefType | |
| ItemPortionQuantity | M | Quantity of item portion (number of units) | xs:decimal | |
| ItemPortionType | M | Type of item unit | values:
| |
| Description | O | Optional description of amount | xs:normalizedString | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object gives the sales details for the items sold for a specified date.
SIF_Events are reported for this object.
Figure 6.6.3-1: FoodserviceItemSales| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceItemSales | This object gives the sales details for the items sold for a specified date. | |||
@![]() | RefId | M | GUID that identifies this object | RefIdType |
| SchoolInfoRefId | M | GUID that identifies the school for this object | IdRefType | |
| Date | M | Date of sales | xs:date | |
| Program | M | Program | ||
| ItemQuantities | M | List | ||
| ItemQuantities/ItemQuantity | MR | Quantity of item amounts sold | ||
| @ | FoodserviceItemPortionRefId | M | GUID of FoodserviceItemPortion object | IdRefType |
| ItemQuantities/ItemQuantity/ Value | M | The value of item quantity | xs:decimal | |
| ItemQuantities/ItemQuantity/ MealType | M | MealType | ||
| ItemQuantities/ItemQuantity/ GradeLevels | M | GradeLevels | ||
| ItemQuantities/ItemQuantity/ Cost | O | The cost (monetary value) of the item sold. | MonetaryAmountType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object describes the unit for an item.
SIF_Events are reported for this object.
Figure 6.6.4-1: FoodserviceItemUnit| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceItemUnit | This object describes the unit for an item. | |||
@![]() | RefId | M | GUID that identifies this unit | RefIdType |
| FoodserviceItemRefId | M | GUID that identifies related item | IdRefType | |
| Description | M | Description of unit ("cup", "teaspoon", etc.) | xs:string | |
| MeasureDescriptionCode | M | Child Nutrition Database [CNDB] standard code describing unit. The database is updated on a yearly basis by the USDA. | xs:normalizedString | |
| GramWeight | M | Gram weight of this item in terms of MeasureDescriptionCode | xs:decimal | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object is a site's meal prices for each grade program, meal status, meal type and grade level.
SIF_Events are reported for this object.
Figure 6.6.5-1: FoodserviceMealPrices| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceMealPrices | This object is a site's meal prices for each grade program, meal status, meal type and grade level. | |||
@![]() | RefId | M | GUID that identifies this meal price. | RefIdType |
| SchoolInfoRefId | M | GUID that identifies the school this meal price belongs to | IdRefType | |
| Program | M | Program | ||
| Prices | M | List | ||
| Prices/Price | MR | Price of the meal | ||
| Prices/Price/Value | M | The price value | MonetaryAmountType | |
| Prices/Price/MealStatus | M | MealStatus | ||
| Prices/Price/MealType | M | MealType | ||
| Prices/Price/GradeLevels | M | GradeLevels | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates the foodservice menu plan for a school site for a given meal program, grade level range and date.
SIF_Events are reported for this object.
Figure 6.6.6-1: FoodserviceMenuPlan| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceMenuPlan | This object communicates the foodservice menu plan for a school site for a given meal program, grade level range and date. | |||
@![]() | RefId | M | GUID that identifies this menu plan | RefIdType |
| SchoolInfoRefId | M | GUID that identifies the school for this menu plan | IdRefType | |
| GradeLevels | M | GradeLevels | ||
| MenuPlanDate | M | Date of menu plan | xs:date | |
| Program | M | Program | ||
| Description | O | Description of menu plan | xs:string | |
| ProjectedParticipation | M | Feeding figure projected | xs:string | |
| MenuPlanQuantities | M | List | ||
| MenuPlanQuantities/MenuPlanQuantity | OR | Quantity of item in this menu plan | xs:decimal | |
| @ | FoodserviceItemPortionRefId | M | Item portion amount | IdRefType |
| @ | MenuCategory | M | values:
| |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates the daily milk sales at a school.
SIF_Events are not reported for this object.
Figure 6.6.7-1: FoodserviceMilkSales| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceMilkSales | This object communicates the daily milk sales at a school. | |||
@![]() | RefId | M | GUID that identifies the daily milk sales object | RefIdType |
| SchoolInfoRefId | M | School for which the sales object applies | IdRefType | |
| Date | M | Date on which the sales occurred. | xs:date | |
| Program | M | Program | ||
| SaleQuantities | M | List | ||
| SaleQuantities/SaleQuantity | OR | Quantity of sale | ||
| SaleQuantities/SaleQuantity/ Value | M | The quantity sold. | xs:decimal | |
| SaleQuantities/SaleQuantity/ MealStatus | M | MealStatus | ||
| SaleQuantities/SaleQuantity/ SaleUnit | M | Unit of Sale | xs:normalizedString | |
| SaleQuantities/SaleQuantity/ ChargeToChild | M | Charge to child per unit | MonetaryAmountType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
If a food service transaction is of type Purchase then this object can give the details of the purchase.
This object does not exist for other transaction types.
SIF_Events are reported for this object.
Figure 6.6.8-1: FoodservicePurchaseTransaction| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodservicePurchaseTransaction |
If a food service transaction is of type | |||
@![]() | RefId | M | GUID that identifies purchase transaction | RefIdType |
| FoodserviceTransactionRefId | M | GUID that identifies food service transaction in which this purchase was made | IdRefType | |
| PurchaseQuantities | M | List | ||
| PurchaseQuantities/PurchaseQuantity | MR | Quantity of the item being purchased | ||
| @ | FoodserviceItemPortionRefId | M | Foodservice Item Portion | IdRefType |
| @ | Earned | M | Identifies whether the item being purchased is earned i.e., at no cost to the buyer. It is used when FoodserviceTransaction object's TransactionType element has the value "Purchase". | values:
|
| PurchaseQuantities/PurchaseQuantity/ MealType | M | MealType | ||
| PurchaseQuantities/PurchaseQuantity/ Value | M | The value of quantity | xs:decimal | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object describes the federal, state, local and other reimbursement rates for a school.
SIF_Events are reported for this object.
Figure 6.6.9-1: FoodserviceReimbursementRates| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceReimbursementRates | This object describes the federal, state, local and other reimbursement rates for a school. | |||
@![]() | RefId | M | GUID that identifies this object. | RefIdType |
| SchoolInfoRefId | M | GUID that identifies the school. | IdRefType | |
| StartDate | M | Effective start date for the reimbursement rates | xs:date | |
| EndDate | M | Effective end date for the reimbursement rates | xs:date | |
| Program | M | Program | ||
| Agencies | M | List of reimbursing agencies. | List | |
| Agencies/Agency | MR | Reimbursing agency | ||
| @ | Type | M | Type of the reimbursing agency. | values:
|
| Agencies/Agency/Name | C |
The name of the reimbursing agency. This element is to be used when the Type is set as | xs:normalizedString | |
| Agencies/Agency/Rates | M | List | ||
| Agencies/Agency/Rates/Rate | MR | Reimbursement rate of the meal | ||
| @ | SevereNeed | M |
Severe need identifier for the rate. When SevereNeed is | values:
|
| Agencies/Agency/Rates/Rate/ Value | M | The rate value | xs:decimal | |
| Agencies/Agency/Rates/Rate/ MealStatus | M | MealStatus | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates the daily sales information.
SIF_Events are reported for this object.
Figure 6.6.10-1: FoodserviceSales| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceSales | This object communicates the daily sales information. | |||
@![]() | RefId | M | GUID that identifies the daily meal sales object | RefIdType |
| SchoolInfoRefId | M | School for which the sales object applies | IdRefType | |
| Date | M | Date on which the sales occurred. | xs:date | |
| Program | M | Program | ||
| SalesAmounts | M | List | ||
| SalesAmounts/SalesAmount | MR | Monetary value (count * cost per unit) done for all grade levels | MonetaryAmountType | |
| @ | Type | M | Type of SalesAmount. This denotes the form of incoming funds for the sales done. | values:
|
| @ | AccountType | M |
Type of account to which sales amounts apply. This is set to | values:
|
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates the staff enrollment for a specified date.
SIF_Events are not reported for this object.
Figure 6.6.11-1: FoodserviceStaffEnrollmentCount| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceStaffEnrollmentCount | This object communicates the staff enrollment for a specified date. | |||
@![]() | SchoolInfoRefId | M | Reference to SchoolInfo | IdRefType |
| @ | Date | M | Date the count is taken. | xs:date |
| Program | M | Program | ||
| Counts | M | List | ||
| Counts/Count | MR | FSCountType | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates the daily staff sales.
SIF_Events are not reported for this object.
Figure 6.6.12-1: FoodserviceStaffMealCounts| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceStaffMealCounts | This object communicates the daily staff sales. | |||
@![]() | RefId | M | GUID that identifies the daily meal sales object | RefIdType |
| SchoolInfoRefId | M | School for which the sales object applies | IdRefType | |
| Date | M | Date on which the sales occurred. | xs:date | |
| Program | M | Program | ||
| Counts | M | List | ||
| Counts/Count | MR | FSCountType | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates the student enrollment for a specified date.
SIF_Events are not reported for this object.
Figure 6.6.13-1: FoodserviceStudentEnrollmentCount| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceStudentEnrollmentCount | This object communicates the student enrollment for a specified date. | |||
@![]() | SchoolInfoRefId | M | Reference to SchoolInfo | IdRefType |
| @ | Date | M | Date the count is taken. | xs:date |
| Program | M | Program | ||
| Counts | M | List | ||
| Counts/Count | MR | FSCountType | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates the daily student sales.
SIF_Events are not reported for this object.
Figure 6.6.14-1: FoodserviceStudentMealCounts| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceStudentMealCounts | This object communicates the daily student sales. | |||
@![]() | RefId | M | GUID that identifies the daily meal sales object | RefIdType |
| SchoolInfoRefId | M | School for which the sales object applies | IdRefType | |
| Date | M | Date on which the sales occurred. | xs:date | |
| Program | M | Program | ||
| Counts | M | List | ||
| Counts/Count | MR | FSCountType | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates food service transaction information. This is the key object that will be present for every food service transaction.
SIF_Events are reported for this object.
Figure 6.6.15-1: FoodserviceTransaction| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceTransaction | This object communicates food service transaction information. This is the key object that will be present for every food service transaction. | |||
@![]() | RefId | M | GUID that identifies food service transaction | RefIdType |
| SchoolInfoRefId | M | GUID that identifies the school/site of account transaction | IdRefType | |
| Program | M | Program | ||
| TransactionDate | M | Date of transaction | xs:date | |
| TransactionTime | M | Time of transaction. | xs:time | |
| TransactionTypes | M | List | ||
| TransactionTypes/TransactionType | MR | Type of transaction | values:
| |
| Customer | M | The customer can be a student or staff. | ||
| @ | SIF_RefId | M | The GUID of the customer doing the transaction. | IdRefType |
| @ | SIF_RefObject | M | SIF customer type.
If | values:
|
| Customer/MealStatus | C | MealStatus | ||
| Customer/EarnedStatus | C | EarnedStatus | ||
| Amount | M | FSAmountType | ||
| Tax | O | Amount of tax. Note: Final amount is Amount/Value + Tax | MonetaryAmountType | |
| Description | O | Description of the Transaction | xs:string | |
| Voided | M | This flag tells us if the transaction is voided. | values:
| |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object gives the transaction distribution for food service transactions of type other than Purchase. So, this
object can be requested for transactions of type Prepayment, Repayment, Refund, Adjustment.
SIF_Events are reported for this object.
Figure 6.6.16-1: FoodserviceTransactionDetails| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceTransactionDetails |
This object gives the transaction distribution for food service transactions of type other than | |||
@![]() | RefId | M | GUID that identifies transaction details | RefIdType |
| FoodserviceTransactionRefId | M | GUID that identifies food service transaction | IdRefType | |
| Amounts | M | List | ||
| Amounts/Amount | MR | This amount refers to the funds being directed inwards to/outwards from the customer's account. That is: these amounts reflect the changes to the account balances. | FSAmountType | |
| Description | O | Description | xs:string | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates the funding for a given transaction. By the term funding we refer to the form of payment that is made for the transaction.
SIF_Events are reported for this object.
Figure 6.6.17-1: FoodserviceTransactionPayMethod| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FoodserviceTransactionPayMethod | This object communicates the funding for a given transaction. By the term funding we refer to the form of payment that is made for the transaction. | |||
@![]() | RefId | M | GUID that identifies the payment | RefIdType |
| FoodserviceTransactionRefId | M | GUID that identifies food service transaction | IdRefType | |
| TransactionPayMethods | M | List | ||
| TransactionPayMethods/TransactionPayMethod | MR | Transaction method. | ||
| @ | Type | M | This refers to the way the payment was made. | values:
|
| TransactionPayMethods/TransactionPayMethod/ Amounts | M | List | ||
| TransactionPayMethods/TransactionPayMethod/ Amounts/Amount | MR | This amount is the form of the incoming funds for this transaction. For example; the payment can be made by a credit card. | FSAmountType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates the current meal status and account status of a given staff member. This object indicates whether the staff member is entitled to earn meals.
SIF_Events, typically Change events, can be reported.
Figure 6.6.18-1: StaffMeal| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StaffMeal | This object communicates the current meal status and account status of a given staff member. This object indicates whether the staff member is entitled to earn meals. | |||
@![]() | StaffPersonalRefId | M | The GUID of the staff to whom this object is linked. | IdRefType |
| EarnedStatus | M | EarnedStatus | ||
| LastBreakfastDate | M | Last breakfast served date | xs:date | |
| LastLunchDate | M | Last lunch served date | xs:date | |
| Amounts | M | List | ||
| Amounts/Amount | MR | FSAmountType | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates the current meal/account status of a given student.
This object will return information such as the amount of remaining breakfast/lunch credits, cash balance, meal status (free/reduced), etc. Systems may optionally support the historical reporting of a student's meal status (free/reduced).
SIF_Events, typically Change events, can be reported.
Figure 6.6.19-1: StudentMeal| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentMeal | This object communicates the current meal/account status of a given student. This object will return information such as the amount of remaining breakfast/lunch credits, cash balance, meal status (free/reduced), etc. Systems may optionally support the historical reporting of a student's meal status (free/reduced). | |||
@![]() | StudentPersonalRefId | M | The GUID of the student to whom this object is linked. | IdRefType |
| MealStatus | O | The student's current meal status. | MealStatus | |
| HistoricalMealStatus | O | Optionally provides the meal status of the student historically. | List | |
| HistoricalMealStatus/MealStatus | MR |
The student's meal status. Note that as this status is historical, | MealStatus | |
| LastBreakfastDate | O | Date of the last reimbursable breakfast served. | xs:date | |
| LastLunchDate | O | Date of the last reimbursable lunch served. | xs:date | |
| Amounts | O | List | ||
| Amounts/Amount | MR | FSAmountType | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
The goal of the Grade Book Working Group is an efficient, functional standard that supports the entire SIF structure, allowing for easy, bi-directional transfer of data integral to grading.
Click here for non-normative background/supplementary documentation from this group.
This object provides information about a particular assignment, allows applications to synchronize each other's assignment tables, gathers the definition for a GradingAssignmentScore object, etc.
SIF_Events are reported for this object.
Figure 6.7.1-1: GradingAssignment| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| GradingAssignment | This object provides information about a particular assignment, allows applications to synchronize each other's assignment tables, gathers the definition for a GradingAssignmentScore object, etc. | |||
@![]() | RefId | M | A GUID that identifies GradingAssignment. | RefIdType |
| @ | SectionInfoRefId | M | The GUID for the SectionInfo object. | IdRefType |
| @ | TermInfoRefId | M | The GUID for the TermInfo object that defines the marking period that the assignment was created in. | IdRefType |
| @ | SchoolInfoRefId | M | The ID (GUID) that uniquely identifies the School that these Mark Values apply to. | IdRefType |
| @ | GradingCategoryRefId | M | The GUID for the GradingCategory that this assignment is part of. | IdRefType |
| Description | M | The text-based description of the assignment. | xs:string | |
| PointsPossible | M | The points possible on the assignment. | xs:unsignedInt | |
| CreateDate | O | Creation date of the assignment. | xs:date | |
| DueDate | O | Date the assignment is due. | xs:date | |
| Weight | O | The weight of the assignment. | xs:decimal | |
| DetailedDescription | O |
This element defines the assignment.
If the | URIOrBinaryType | |
| @ | Type | M | The type of information that is contained in the DetailedDescription element. | values:
|
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object provides score information about a particular assignment.
SIF_Events are reported for this object.
Figure 6.7.2-1: GradingAssignmentScore| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| GradingAssignmentScore | This object provides score information about a particular assignment. | |||
@![]() | StudentPersonalRefId | M | IdRefType | |
| @ | SectionInfoRefId | M | IdRefType | |
| @ | SchoolInfoRefId | M | The GUID that specifies the school this score was recorded at. | IdRefType |
@![]() | GradingAssignmentRefId | M | IdRefType | |
| ScorePoints | C | The score represented as points. Conditionally required that one or more of ScorePoints, ScorePercent or ScoreLetter must be filled in. | xs:unsignedInt | |
| ScorePercent | C | The score represented as a percent. Conditionally required that one or more of ScorePoints, ScorePercent or ScoreLetter must be filled in. | xs:decimal | |
| ScoreLetter | C | The score represented as a letter grade. Conditionally required that one or more of ScorePoints, ScorePercent or ScoreLetter must be filled in. | xs:string | |
| ScoreDescription | O | Text description of the score. | xs:string | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object provides information about a particular grading category to provide grouping and type information for assignments.
SIF_Events are reported for this object.
Figure 6.7.3-1: GradingCategory| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| GradingCategory | This object provides information about a particular grading category to provide grouping and type information for assignments. | |||
@![]() | RefId | M | GUID that identifies a grading category. | RefIdType |
| @ | SectionInfoRefId | M | The GUID for the SectionInfo object that this category is used for grading in. | IdRefType |
| @ | TermInfoRefId | M | The GUID for the TermInfo object that defines the marking period that the category was created in. | IdRefType |
| @ | SchoolInfoRefId | M | The ID (GUID) that uniquely identifies the School that these Mark Values apply to. | IdRefType |
| Description | M | The name/short description of the category. | xs:string | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object defines each mark that can be recorded and associates it with a MarkValueInfo object that lists the types of values and valid values for each type. It also places the definition in the context of a school and a school year.
SIF_Events are reported for this object.
Figure 6.7.4-1: MarkInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| MarkInfo | This object defines each mark that can be recorded and associates it with a MarkValueInfo object that lists the types of values and valid values for each type. It also places the definition in the context of a school and a school year. | |||
@![]() | RefId | M | The ID (GUID) that uniquely identifies this Grading Mark entity. | RefIdType |
| @ | MarkValueInfoRefId | M | The ID (GUID) that uniquely identifies the MarkValueInfo. | IdRefType |
| @ | SchoolInfoRefId | M | The ID (GUID) that uniquely identifies the School that this Mark applies to. | IdRefType |
| SchoolYear | M | The year that this MarkInfo applies to. | SchoolYear | |
| Description | M | Textual description of the type of Mark (e.g. "Marking Period Grade", "Comment 1", "Comment 2", "Conduct", "Effort", "WorkHabits"). | xs:string | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object defines the types of values allowed for a mark and the domain for each mark value. At least one of the Percentage, Numeric, Letter or Narrative nodes must be used to create a valid MarkValueInfo.
SIF_Events are reported for this object.
Figure 6.7.5-1: MarkValueInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| MarkValueInfo | This object defines the types of values allowed for a mark and the domain for each mark value. At least one of the Percentage, Numeric, Letter or Narrative nodes must be used to create a valid MarkValueInfo. | |||
@![]() | RefId | M | The ID (GUID) that uniquely identifies this MarkValueInfo entity. | RefIdType |
| @ | SchoolInfoRefId | M | The ID (GUID) that uniquely identifies the School that these Mark Values apply to. | IdRefType |
| SchoolYear | M | The year that this MarkValueInfo applies to. | SchoolYear | |
| Name | M | The text name of the value list ("Letter Grades", "Letter Grades (+/-)", "ESU", "Pass/Fail", "Override Grades", "Citizenship Comment Codes", etc.). | xs:string | |
| Percentage | M | Indicates whether a percent Mark is accepted (format ##0.00). | ||
| @ | IsAccepted | M | Indicates whether a percent Mark is accepted and is used in Change events to unambiguously signal whether support for the Mark has changed, especially ended. | xs:boolean |
| Percentage/Minimum | O | The minimum percent value accepted for this mark. If present, the publisher of this object is required to ensure that any values present in the StudentSectionMarks object will not be lower than this value. | xs:decimal | |
| Percentage/Maximum | O | The maximum percent value accepted for this mark. If present, the publisher of this object is required to ensure that any values present in the StudentSectionMarks object will not be higher than this value. | xs:decimal | |
| Numeric | M | Indicates whether a raw numeric score is accepted. | ||
| @ | IsAccepted | M | Indicates whether a raw numeric score is accepted and is used in Change events to unambiguously signal whether support for the score has changed, especially ended. | xs:boolean |
| Numeric/Precision | O | Number of significant digits. | xs:unsignedInt | |
| Numeric/Scale | O | Number of decimal places. | xs:unsignedInt | |
| Numeric/Low | O | Lowest Mark in the range (e.g., 98, 3.95). | xs:decimal | |
| Numeric/High | O | Highest Mark in the range (e.g., 100, 4.0). | xs:decimal | |
| Letter | M | Indicates whether a letter Mark is accepted. | ActionList (ValidMark/Code) | |
| @ | IsAccepted | M | Indicates whether a letter Mark is accepted and is used in Change events to unambiguously signal whether support for the Mark has changed, especially ended. | xs:boolean |
| Letter/ValidMark | CR |
List of specific valid letter Marks. May be omitted when | ||
| @ | SIF_Action | O |
In a | values:
|
| Letter/ValidMark/Code | M | String representing the actual Mark that would appear on the report card (e.g., "A+", "I", "100"). | xs:token | |
| Letter/ValidMark/NumericEquivalent | O | Numeric equivalent for the Mark (e.g., 100, 4.0). | xs:decimal | |
| Letter/ValidMark/Description | O | The description for this code. (e.g. "Excellent", "Participates in Class", "Incomplete", etc...). | xs:string | |
| Narrative | M | If present, indicates that a free-form text narrative is accepted. | ||
| @ | IsAccepted | M | Indicates whether a narrative is accepted and is used in Change events to unambiguously signal whether support for a narrative has changed, especially ended. | xs:boolean |
| Narrative/MaximumSize | O | An integer value representing the maximum number of Unicode characters for the narrative, the UTF-8 encoding of which may be longer. | xs:unsignedInt | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object provides attendance for a student in the context of a SectionInfo object. It is used to represent the final/official attendance that has been assigned to a student. Only one agent in a zone should generate events for this object. That agent is responsible for receiving and validating all StudentPeriodAttendance events and for generating a corresponding OfficialStudentPeriodAttendance event once any unofficial events have been processed.
SIF_Events are reported for this object.
Figure 6.7.6-1: OfficialStudentPeriodAttendance| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| OfficialStudentPeriodAttendance | This object provides attendance for a student in the context of a SectionInfo object. It is used to represent the final/official attendance that has been assigned to a student. Only one agent in a zone should generate events for this object. That agent is responsible for receiving and validating all StudentPeriodAttendance events and for generating a corresponding OfficialStudentPeriodAttendance event once any unofficial events have been processed. | StudentPeriodAttendance |
This object defines the marking periods (TermInfo) that marks (StudentSectionMarks) are recorded in for a particular section (SectionInfo) and lists the types of marks (MarkTypeInfo) that are valid for that marking period (TermInfo).
SIF_Events are reported for this object.
Figure 6.7.7-1: SectionMarkInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SectionMarkInfo | This object defines the marking periods (TermInfo) that marks (StudentSectionMarks) are recorded in for a particular section (SectionInfo) and lists the types of marks (MarkTypeInfo) that are valid for that marking period (TermInfo). | |||
@![]() | SectionInfoRefId | M | The ID (GUID) that uniquely identifies the SectionInfo object that this item refers to. | IdRefType |
@![]() | SchoolInfoRefId | M | The ID (GUID) that uniquely identifies the School that these Mark Values apply to. | IdRefType |
| TermMarkLists | M | ActionList (MarkInfoList/@TermInfoRefId) | ||
| TermMarkLists/MarkInfoList | MR | The grading-related information for a section, repeating for each marking period (TermInfo) in which the section reports Marks. | List | |
| @ | TermInfoRefId | M | The ID (GUID) that identifies the marking period that the following marks are recorded in. | IdRefType |
| @ | SIF_Action | O |
In a | values:
|
| TermMarkLists/MarkInfoList/ MarkInfoRefId | MR | The ID (GUID) that identifies a mark that this class uses for grading. | IdRefType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This is an object that a LMS or other application will utilize to provide grades about students in a section to a grade book. A grade book is often used to collect various assignment scores or test scores for students in a class or section and then calculate various grades or marks that are printed on report cards. When a LMS is also being used in a LEA, additional information is gathered by the LMS and some of this information needs to be available to the grade book to facilitate calculation of the report card grades or marks (i.e. StudentSectionMarks). This object is available to facilitate communication of the final grade from the LMS to the grade book.
SIF_Events are reported for this object.
Click here for non-normative background/supplementary documentation on this object.
Figure 6.7.8-1: StudentGrade| Element/@Attribute | Char | Description | Type | |||||
|---|---|---|---|---|---|---|---|---|
| StudentGrade | This object contains the final grade for a student in a section. | |||||||
@![]() | RefId | M | The ID (GUID) that uniquely identifies this object. | RefIdType | ||||
| StudentPersonalRefId | M | The ID (GUID) that uniquely identifies the | IdRefType | |||||
| SectionInfoRefId | M | The ID (GUID) that uniquely identifies the | IdRefType | |||||
| SchoolInfoRefId | M | The ID (GUID) that uniquely identifies the school that these values apply to. | IdRefType | |||||
| SchoolYear | M | School year for which this information is applicable, expressed as the four-digit year in which the school year ends (e.g., | SchoolYear | |||||
| Grade | M | This is the one grade given for this student and section. At least one numeric, percentage or letter must be provided as defined in the fields below. If Grade/Numeric is entered, Grade/OutOf, Grade/Low and Grade/High must also be entered. | ||||||
| Grade/Percentage | C | The grade percentage for this grade (0.00-100.00). | xs:decimal
| |||||
| Grade/Numeric | C | The raw numeric value for this grade. If this is provided, the OutOf, Low and High must be entered. | xs:decimal | |||||
| Grade/OutOf | C | This is the high value equivalent to 100% without extra points or extra credit (e.g. if a student received 3.5 out of 4, 4 would be the Grade/OutOf value and 3.5 would be the Grade/Numeric value). | xs:decimal | |||||
| Grade/Low | C | Lowest grade value in the range for the numeric grade. | xs:decimal | |||||
| Grade/High | C | Highest grade value in the range for the numeric grade. NOTE: This could be higher than the Grade/OutOf value. | xs:decimal | |||||
| Grade/Letter | C | The letter grade value for this grade. If this is provided, the numeric value or percentage value must also be entered in order to provide a numeric value for the grade to be utilized in any computations. | xs:token | |||||
| Grade/Narrative | O | The free form text narrative for this grade. | xs:string | |||||
| SIF_Metadata | O | SIF_Metadata | ||||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object provides attendance for a student in the context of a SectionInfo object. This object is used by all agents in a zone that provide period attendance, but don't have the logic to determine whether or not they have sufficient rights to override attendance from another user or system. Agents that represent a system that can validate attendance based on, among other things, its source, should subscribe to StudentPeriodAttendance events to collect "suggested" attendance changes from the zone, and should then publish "accepted" attendance changes as OfficialStudentPeriodAttendance events. A rejected change would result in an event that reverts the system that generated the rejected event back to its previous state or to some other state that represents the correct "official" attendance.
SIF_Events are reported for this object.
Figure 6.7.9-1: StudentPeriodAttendance| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentPeriodAttendance | This object provides attendance for a student in the context of a SectionInfo object. This object is used by all agents in a zone that provide period attendance, but don't have the logic to determine whether or not they have sufficient rights to override attendance from another user or system. Agents that represent a system that can validate attendance based on, among other things, its source, should subscribe to StudentPeriodAttendance events to collect "suggested" attendance changes from the zone, and should then publish "accepted" attendance changes as OfficialStudentPeriodAttendance events. A rejected change would result in an event that reverts the system that generated the rejected event back to its previous state or to some other state that represents the correct "official" attendance. | |||
@![]() | RefId | M | RefIdType | |
| @ | StudentPersonalRefId | M | The GUID of the student that this attendance applies to. | IdRefType |
| @ | SectionInfoRefId | M | The GUID of the section that this attendance applies to. | IdRefType |
| @ | SchoolInfoRefId | M | The school where the attendance was recorded. Somewhat redundant, needed for requests. | IdRefType |
| @ | Date | M | The date of the attendance event. | xs:date |
| TimetablePeriod | C | The period within which attendance is being reported, e.g. "4D". Conditional on the SectionInfo object having MeetingTime elements. If one or more are defined for the Section, this element is required. | xs:normalizedString | |
| TimeIn | O | The time the student entered or returned to this class. | xs:time | |
| TimeOut | O | The time the student left this class. | xs:time | |
| AttendanceCode | M | The local attendance code. | xs:token | |
| @ | AttendanceCodeInfoRefId | M | IdRefType | |
| AuditInfo | M | An audit trail to help determine who entered this attendance event and when. | ||
| AuditInfo/CreationUser | M | Information about which staff member created this attendance record. | ||
| @ | Type | M | The role of the staff member for that created this attendance record. | values:
|
| AuditInfo/CreationUser/UserId | M | Unique identifier of the user that created the attendance record. This will depend on the user and the source. The preferred identifier would be a RefId for a StaffPersonal, StudentContact, or StudentPersonal Object. However, the user may not be associated with any of these SIF objects. In that case a unique ID given by the source should be used. | xs:normalizedString | |
| AuditInfo/CreationDateTime | M | The date and time of this attendance record was created. | xs:dateTime | |
| AttendanceComment | O | This element contains the comments that are relevant to this attendance record. | xs:string | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains the marks entered for a student in a class section for a specific marking period.
SIF_Events are reported for this object.
Figure 6.7.10-1: StudentSectionMarks| Element/@Attribute | Char | Description | Type | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| StudentSectionMarks | This object contains the marks entered for a student in a class section for a specific marking period. | |||||||||
@![]() | StudentPersonalRefId | M | The ID (GUID) that uniquely identifies the StudentPersonal object that this item refers to. | IdRefType | ||||||
@![]() | SectionInfoRefId | M | The ID (GUID) that uniquely identifies the SectionInfo object that this item refers to. | IdRefType | ||||||
@![]() | TermInfoRefId | M | The ID (GUID) that identifies the marking period that the following marks are recorded in. | IdRefType | ||||||
| @ | SchoolInfoRefId | M | The ID (GUID) that uniquely identifies the School that these Mark Values apply to. | IdRefType | ||||||
| IsFinal | M | Indicates if the grades are "Final" from the perspective of the teacher or school. Does not mean that change events will not occur for this item. | xs:boolean | |||||||
| MarkList | M | A list of marks received for this student in this section. For each Mark entry, at least one of the sub-elements must be specified. | List | |||||||
| MarkList/Mark | MR | Outer wrapper for marks reported for this section, in this term. | ||||||||
| @ | MarkInfoRefId | M | The ID (GUID) that identifies a mark that was given for this student. | IdRefType | ||||||
| MarkList/Mark/Percentage | C | The percent score for this mark (0.00 - 100.00). | xs:decimal
| |||||||
| MarkList/Mark/Numeric | C | The raw numeric score for this mark. | xs:decimal | |||||||
| MarkList/Mark/Letter | C | The letter grade for this mark. | xs:normalizedString | |||||||
| MarkList/Mark/Narrative | C | The free form text narrative for this mark. | xs:string | |||||||
| SIF_Metadata | O | SIF_Metadata | ||||||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
The Human Resources & Financials Working Group defines the SIF specifications for human resources and financial application software, focusing solely on defining specifications for the information required by the other SIF application groups from the human resource and financial applications in order to prevent duplicate input of the same data, or to keep applications in sync with data that is primarily maintained in human resource and financial applications.
This object defines an accounting period within a fiscal year.
SIF_Events are reported for this object.
Figure 6.8.1-1: AccountingPeriod| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| AccountingPeriod | This object defines an accounting period within a fiscal year. | |||
@![]() | RefId | M | GUID that identifies this accounting period. | RefIdType |
| Name | M | Name of the accounting period. | xs:normalizedString | |
| Description | O | xs:string | ||
| FiscalYearRefId | M | Fiscal year to which this accounting period belongs. | IdRefType | |
| StartDate | M | Start date of the accounting period. | xs:date | |
| EndDate | M | End date of the accounting period. | xs:date | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains an amount to be billed to an outside entity.
SIF_Events are reported for this object.
Figure 6.8.2-1: Billing| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Billing | This object contains an amount to be billed to an outside entity. | |||
@![]() | RefId | M | GUID for this transaction. The application that owns this object is responsible for generating this unique ID. | RefIdType |
| BilledEntity | M | ID of the entity being billed for this billing activity (e.g., student, employee, organization). | IdRefType | |
| @ | SIF_RefObject | M |
SIF object referenced by | values:
|
| BillingDate | M | Date of the transaction. | xs:date | |
| TransactionDescription | M | Description of the transaction. | xs:string | |
| BilledAmount | M | Amount to be billed. | MonetaryAmountType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object defines information related to an employee assignment as it pertains to the human resource needed to track employee assignment for employee reporting and financial funding tracking. The staff assignment record will hold more detail of the actual assignment. There are multiple records for each assignment and/or location.
SIF_Events are reported for this object.
Figure 6.8.3-1: EmployeeAssignment| Element/@Attribute | Char | Description | Type | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| EmployeeAssignment | This object defines information related to an employee assignment as it pertains to the human resource needed to track employee assignment for employee reporting and financial funding tracking. The staff assignment record will hold more detail of the actual assignment. There are multiple records for each assignment and/or location. | |||||||||
@![]() | RefId | M | The GUID that uniquely identifies a particular HR staff assignment. | RefIdType | ||||||
| @ | EmployeePersonalRefId | M | This GUID referencing the parent EmployeePersonal object | IdRefType | ||||||
| Description | M | Short assignment description | xs:string | |||||||
| PrimaryAssignment | M | Is this the staff member's primary assignment? There must be one and only one instance of the object with | values:
| |||||||
| LocationInfoRefId | O | This is an optional element so the placement of the employee within the agency can be tracked as needed. The GUID references the LocationInfo object. | IdRefType | |||||||
| JobStartDate | O | This is the date from which the staff assignment is valid (inclusive). | xs:date | |||||||
| JobEndDate | C | This is the date through which the staff assignment is valid (inclusive). Present if the JobStartDate is entered and a JobEndDate is available. | xs:date | |||||||
| JobFTE | O | Full-time job equivalent ratio for this assignment. (Format is x.xx; an employee who is full-time and who spends 50% of their time on this assignment would be represented as 0.50) | xs:decimal
| |||||||
| JobClassification | O | The specific group of duties or responsibilities of position. | ||||||||
| JobClassification/Code | M | The specific group of duties or responsibilities of position. | NCES0557JobClassificationType | |||||||
| JobClassification/OtherCodeList | O | OtherCodeList | ||||||||
| ProgramType | O | The type of instructional or non-instructional program. | ||||||||
| ProgramType/Code | M | The type of instructional or non-instructional program. | NCES0229ProgramTypeType | |||||||
| ProgramType/OtherCodeList | O | OtherCodeList | ||||||||
| FundingSource | O | Provider of funds for the program or service. | ||||||||
| FundingSource/Code | M | Provider of funds for the program or service. | NCES0222ProgramFundingSourceType | |||||||
| FundingSource/OtherCodeList | O | OtherCodeList | ||||||||
| SIF_Metadata | O | SIF_Metadata | ||||||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains HR contract information related to employees.
SIF_Events are reported for this object.
Figure 6.8.4-1: EmployeeContract| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EmployeeContract | This object contains HR contract information related to employees. | |||
@![]() | RefId | M | The GUID of the employee contract information. | RefIdType |
| @ | EmployeePersonalRefId | M | The GUID that refers to the EmployeePersonal object. | IdRefType |
| BaseSalary | M | Base salary of employee for this contact | MonetaryAmountType | |
| ContractStartDate | M | Contractual start date. | xs:date | |
| ContractEndDate | M | Contractual ending date. | xs:date | |
| ContractTerm | O | Contractual Term in school years | NCES0468ContractualTermType | |
| ContractDays | O | Number of days in service for contract total | xs:decimal | |
| AssignmentDays | O | Number of days per year employee is expected to work in this assignment | xs:decimal | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains basic HR information for employees.
SIF_Events are reported for this object.
Figure 6.8.5-1: EmployeePersonal| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EmployeePersonal | This object contains basic HR information for employees. | |||
@![]() | RefId | M | The GUID that uniquely identifies this employee. | RefIdType |
| StateProvinceId | O | The state-assigned identifier for this staff member. | StateProvinceId | |
| OtherIdList | O | List all "other" IDs associated with the employee. | List | |
| OtherIdList/OtherId | OR | This field can hold a SSN, state or locally assigned ID. | xs:normalizedString | |
| @ | Type | M | values:
| |
| Name | M | Name of employee. | Name | |
| Demographics | O | This element contains information related to employee demographics. | Demographics | |
| AddressList | O | The employee's address(es). | AddressList | |
| PhoneNumberList | O | The employee's phone number(s). | PhoneNumberList | |
| EmailList | O | The employee's e-mail address(es). | EmailList | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information about an employee's picture.
SIF_Events are reported for this object.
Figure 6.8.6-1: EmployeePicture| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EmployeePicture | This object contains information about an employee's picture. | |||
@![]() | EmployeePersonalRefId | M | This is the GUID of the Employee whose picture this is. | IdRefType |
| PictureSource | M | 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 | |
| @ | Type | M | The way the picture is specified. | values:
|
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains HR/payroll employee information used to define how to pay an employee per pay cycle.
SIF_Events are reported for this object.
Figure 6.8.7-1: EmployeeWage| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EmployeeWage | This object contains HR/payroll employee information used to define how to pay an employee per pay cycle. | |||
@![]() | RefId | M | The GUID of the employee's pay information. | RefIdType |
| @ | EmployeePersonalRefId | M | The GUID that refers to the EmployeePersonal object. | IdRefType |
| PayRates | M | List | ||
| PayRates/PayRate | MR | Per pay distributions | ||
| @ | Type | M | Type of pay | values:
|
| PayRates/PayRate/Amount | M | Pay amount. | MonetaryAmountType | |
| PayRates/PayRate/Percentage | M | Percentage of pay this represents. | xs:decimal | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains a snapshot (view) of employment information for an employee.
SIF_Events are reported for this object.
Figure 6.8.8-1: EmploymentRecord| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EmploymentRecord | This object contains a snapshot (view) of employment information for an employee. | |||
@![]() | SIF_RefId | O | The GUID can either refer to the EmployeePersonal or StaffPersonal object. | IdRefType |
@![]() | SIF_RefObject | M | values:
| |
| LEAInfoRefId | M | The GUID reference to the LEAInfo object representing the LEA that employs the staff member. | IdRefType | |
| Active | O | Staff is currently active and/or employed. | xs:boolean | |
| FullTimeStatus | O | Full-time status of employee. | NCES0476FullTimeStatusType | |
| HireDate | O | Date the employee was hired. | xs:date | |
| TerminationDate | C | Date the employee resigned. Present if a HireDate is entered and a TerminationDate is available. | xs:date | |
| TotalYearsExperience | O | Total number of years of prior experience. | xs:unsignedInt | |
| PositionTitle | O | Employee's current position title. | xs:normalizedString | |
| PositionNumber | O | Employee's level or category assigned by employer. | xs:normalizedString | |
| SeniorityDate | O | Date employee has seniority. | xs:date | |
| TenureDate | O | Date employee is tenured. | xs:date | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates information about a financial account.
SIF_Events are reported for this object.
Figure 6.8.9-1: FinancialAccount| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FinancialAccount | This object communicates information about a financial account. | |||
@![]() | RefId | M | GUID that identifies this financial account. | RefIdType |
| AccountNumber | M | Account number used for ledger. | xs:normalizedString | |
| Name | M | Name of the account. | xs:normalizedString | |
| Description | O | Description. | xs:string | |
| FinancialClassRefId | M | Financial class of the account. | IdRefType | |
| CreationDate | M | Account creation date. | xs:date | |
| CreationTime | M | Account creation time. | xs:time | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object relates financial account to an accounting period and a location.
SIF_Events are reported for this object.
Figure 6.8.10-1: FinancialAccountAccountingPeriodLocationInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FinancialAccountAccountingPeriodLocationInfo | This object relates financial account to an accounting period and a location. | |||
@![]() | RefId | M | GUID that identifies this object. | RefIdType |
| FinancialAccountRefId | M | Financial account reference. | IdRefType | |
| AccountingPeriodRefId | M | Accounting period reference. | IdRefType | |
| LocationInfoRefId | M | LocationInfo reference. | IdRefType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information about account code annual financial totals, summarized by major and/or minor account code breaks.
SIF_Events are not reported for this object.
Figure 6.8.11-1: FinancialAnnual| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FinancialAnnual | This object contains information about account code annual financial totals, summarized by major and/or minor account code breaks. | |||
| ReportDate | M | Date on which snapshot was generated. | xs:date | |
| StateProvinceId | M | State assigned reporting ID for district or agency | StateProvinceId | |
| FiscalYear | M | Fiscal year of summary account (e.g. the 2003-2004 fiscal year will be denoted as 2004) | xs:gYear | |
| AnnualItems | M | List | ||
| AnnualItems/AnnualItem | MR | Contains information about the item being summarized. | ||
| AnnualItems/AnnualItem/AccountType | M | Classification of budgetary account code summary | values:
| |
| AnnualItems/AnnualItem/FundType | M | Is the account a general or special account code designation? | values:
| |
| AnnualItems/AnnualItem/StateProvinceId | O | State-assigned ID for the relative area in which the expenditure/revenue was used. | StateProvinceId | |
| AnnualItems/AnnualItem/ExpenditureArea | O | Relative area in which the expenditure was used. | values:
| |
| AnnualItems/AnnualItem/Function | M | Function break in account code for summarization. | xs:normalizedString | |
| AnnualItems/AnnualItem/Object | O | Object break in account code for summarization. | xs:normalizedString | |
| AnnualItems/AnnualItem/InstructionalProgram | O | Instructional program break in account code for summarization | xs:normalizedString | |
| AnnualItems/AnnualItem/Amount | M | Summarized amount. | xs:decimal | |
| AnnualItems/AnnualItem/SpecialAmountType | O | With regard to regional/local education service agencies report of "special" account code information, the account code summarization can be classified as: | values:
| |
| AnnualItems/AnnualItem/GLAmountType | O | General Ledger Amount Type. With regard to an account code grouping classified as a General Ledger account: | values:
| |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information about account code budget totals, summarized by major and/or minor account code breaks. It is a snapshot object used to allow a district to report summarized financial budgetary information to their state as required.
SIF_Events are not reported for this object.
Figure 6.8.12-1: FinancialBudget| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FinancialBudget | This object contains information about account code budget totals, summarized by major and/or minor account code breaks. It is a snapshot object used to allow a district to report summarized financial budgetary information to their state as required. | |||
| ReportDate | M | Date on which snapshot was generated. | xs:date | |
| StateProvinceId | M | State-assigned identifier for this location | StateProvinceId | |
| FiscalYear | M | Fiscal Year of summary account (e.g. the 2003-2004 fiscal year will be denoted as 2004) | xs:gYear | |
| BudgetAccounts | M | List | ||
| BudgetAccounts/BudgetAccount | MR | Information about budget accounts being submitted. | ||
| BudgetAccounts/BudgetAccount/ AccountClass | M | Classification of budgetary account code summary | values:
| |
| BudgetAccounts/BudgetAccount/ FundBreakdown | O | Fund breakdown of account code for summarization. | xs:normalizedString | |
| BudgetAccounts/BudgetAccount/ FunctionBreakdown | M | Function breakdown of account code for summarization. | xs:normalizedString | |
| BudgetAccounts/BudgetAccount/ ObjectBreakdown | O | Object breakdown of account code for summarization. | xs:normalizedString | |
| BudgetAccounts/BudgetAccount/ BudgetAmount | M | Summarized, positive amount without cents for breakdowns | xs:unsignedInt | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates financial class information. Financial classes are used to categorize financial accounts.
SIF_Events are reported for this object.
Figure 6.8.13-1: FinancialClass| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FinancialClass | This object communicates financial class information. Financial classes are used to categorize financial accounts. | |||
@![]() | RefId | M | GUID that identifies this financial class. | RefIdType |
| Name | M | Name of the financial class. | xs:normalizedString | |
| Description | O | Description. | xs:string | |
| ClassType | M | values:
| ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates the income statement details for a location and an accounting period.
SIF_Events are reported for this object.
Figure 6.8.14-1: FinancialIncomeStatement| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FinancialIncomeStatement | This object communicates the income statement details for a location and an accounting period. | |||
@![]() | RefId | M | GUID that identifies this income statement. | RefIdType |
| GenerationDate | M | Generation date. | xs:date | |
| GenerationTime | M | Generation time. | xs:time | |
| LocationInfoRefId | M | LocationInfo reference. | IdRefType | |
| Period | M | Period of the income statement. | ||
| Period/StartDate | M | Start date. | xs:date | |
| Period/EndDate | M | End date. | xs:date | |
| Amounts | M | List | ||
| Amounts/Amount | MR | Amount in the account. | MonetaryAmountType | |
| @ | FinancialAccountAccountingPeriodLocationInfoRefId | M | FinancialAccountAccountingPeriodLocationInfo reference. | IdRefType |
| @ | FinancialClassRefId | M | Class of the financial account. | IdRefType |
| Program | O | Program | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object communicates a financial transaction. A transaction can be for the daily food sales revenue account.
SIF_Events are reported for this object.
Figure 6.8.15-1: FinancialTransaction| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FinancialTransaction | This object communicates a financial transaction. A transaction can be for the daily food sales revenue account. | |||
@![]() | RefId | M | GUID that identifies this financial transaction. | RefIdType |
| TransactionDate | M | Transaction date. | xs:date | |
| TransactionTime | M | Transaction time. | xs:time | |
| Amounts | M | List | ||
| Amounts/Amount | MR | Monetary amount of the transaction. | MonetaryAmountType | |
| @ | FinancialAccountAccountingPeriodLocationInfoRefId | M | Account. | IdRefType |
| @ | Type | M | values:
| |
| Program | O | Program | ||
| Description | O | xs:string | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object defines a fiscal year.
SIF_Events are reported for this object.
Figure 6.8.16-1: FiscalYear| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FiscalYear | This object defines a fiscal year. | |||
@![]() | RefId | M | GUID that identifies this object. | RefIdType |
| Description | O | A description of the fiscal year. | xs:string | |
| StartDate | M | Start date of the fiscal year. | xs:date | |
| EndDate | M | End date of the fiscal year. | xs:date | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
LocationInfo represents a location in a district.
SIF_Events are reported for this object.
Figure 6.8.17-1: LocationInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| LocationInfo | LocationInfo represents a location in a district. | |||
@![]() | RefId | M | The SIF unique identifier for the location. | RefIdType |
| @ | LocationType | M | Defines whether the location is a school or a non-school location. | values:
|
| SiteCategory | M | Specific site category. Examples | xs:normalizedString | |
| Name | M | Text name of the location | xs:normalizedString | |
| Description | O | Description about the location. | xs:string | |
| LocalId | M | The locally-assigned identifier for this location. | LocalId | |
| IdentificationInfoList | O | IdentificationInfoList | ||
| StateProvinceId | O | The state-assigned identifier for this location. | StateProvinceId | |
| NCESId | O | The NCES-assigned identifier for this location. | NCESId | |
| LEAInfoRefId | O | The ID (GUID) that identifies the district. | IdRefType | |
| OtherLEAs | O | List | ||
| OtherLEAs/LEAInfoRefId | OR | The ID (GUID) of an other related education agency, such as a regional service agency. | IdRefType | |
| ParentLocationInfo | O | A LocationInfo instance could be related to another LocationInfo. This element will help create that relation. | IdRefType | |
| @ | SIF_RefObject | M | The name of the object referenced. | values:
|
| SchoolInfoRefId | O | The RefId of a corresponding SchoolInfo object. | IdRefType | |
| AddressList | O | This element has the LocationInfo address information. | AddressList | |
| PhoneNumberList | O | The location's phone numbers. | PhoneNumberList | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object complements the Billing object, and contains information about the payment of a Billing object.
SIF_Events are reported for this object.
Figure 6.8.18-1: Payment| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Payment | This object complements the Billing object, and contains information about the payment of a Billing object. | |||
@![]() | RefId | M | GUID for this transaction. The application that owns this object is responsible for generating this unique ID. | RefIdType |
| @ | BillingRefId | M | A pointer back to the Billing object. | IdRefType |
| ReceivedDate | M | Date payment was received. | xs:date | |
| ReceivedAmount | M | Amount received. | MonetaryAmountType | |
| ReceivedTransactionId | M | Memo transaction ID from other vendor software. | xs:normalizedString | |
| TransactionDescription | O | Description of the transaction. | xs:string | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object provides information down to the line item level for requisitions and purchase orders.
SIF_Events are reported for this object.
Figure 6.8.19-1: Purchasing| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Purchasing | This object provides information down to the line item level for requisitions and purchase orders. | |||
@![]() | RefId | M | Transaction GUID for this purchasing activity. The application that owns this object and is responsible for generating this unique ID. | RefIdType |
| FormType | M | Type of purchasing document. | values:
| |
| FormNumber | M | Requisition or PO number. | xs:normalizedString | |
| FiscalYearRefId | O | Reference to fiscal year for the transaction. | IdRefType | |
| VendorInfoRefId | C | This object references the VendorInfo object and should be considered mandatory when FormType="PO" | IdRefType | |
| LocationInfoRefId | O | The building ID for this purchasing activity. | IdRefType | |
| EmployeePersonalRefId | O | The employee ID for the originator of this purchasing activity. | IdRefType | |
| PurchasingItems | M | List | ||
| PurchasingItems/PurchasingItem | MR | Contains information about the item being purchased. | ||
| PurchasingItems/PurchasingItem/ ItemNumber | O | Vendor item number. | xs:normalizedString | |
| PurchasingItems/PurchasingItem/ ItemDescription | M | Description of the item. | xs:string | |
| PurchasingItems/PurchasingItem/ Quantity | O | Quantity ordered. | xs:normalizedString | |
| PurchasingItems/PurchasingItem/ UnitCost | O | Unit cost of the item. | MonetaryAmountType | |
| PurchasingItems/PurchasingItem/ ExpenseAccounts | O | List | ||
| PurchasingItems/PurchasingItem/ ExpenseAccounts/ExpenseAccount | OR | Account that is to be charged for the item. | ||
| PurchasingItems/PurchasingItem/ ExpenseAccounts/ExpenseAccount/ AccountCode | M | Account code charged to this item. | xs:token | |
| PurchasingItems/PurchasingItem/ ExpenseAccounts/ExpenseAccount/ Amount | M | Amount charged to this account. | MonetaryAmountType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information about the time worked by an employee on a specific job.
SIF_Events are reported for this object.
Figure 6.8.20-1: TimeWorked| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| TimeWorked | This object contains information about the time worked by an employee on a specific job. | |||
@![]() | RefId | M | GUID for this object. The application that owns this object is responsible for generating this unique ID. | RefIdType |
| EmployeePersonalRefId | M | References associated EmployeePersonal object. | IdRefType | |
| LocationInfoRefId | M | Site where employee actually worked. References LocationInfo object. | IdRefType | |
| JobFunction | O | The purpose of the activities as related to students. | ||
| JobFunction/Code | M | Code representing the type of job function. | NCES0568FunctionTypeType | |
| JobFunction/OtherCodeList | O | OtherCodeList | ||
| RegularHours | M | Regular hours worked. Enter 0 if no hours worked. | xs:decimal | |
| OvertimeHours | M | Overtime hours worked. Enter 0 if no overtime hours worked. | xs:decimal | |
| PayPeriod | M | Pay period hours were worked in. | xs:normalizedString | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains basic vendor information.
SIF_Events are reported for this object.
Figure 6.8.21-1: VendorInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| VendorInfo | This object contains basic vendor information. | |||
@![]() | RefId | M | Vendor ID. | RefIdType |
| Name | M | Name of the vendor. | xs:normalizedString | |
| ContactInfo | O | Contact information. | ContactInfo | |
| CustomerId | O | Account number or other ID. | xs:normalizedString | |
| EmployeePersonalRefId | O | When the vendor and employee are the same, it may be appropriate to link the EmployeePersonal records to the VendorInfo when tracking expense and tuition reimbursement. This is the GUID of the associated EmployeePersonal object. | IdRefType | |
| Send1099 | O | Send 1099 to this vendor. | xs:boolean | |
| FederalTaxId | O | Taxpayer identification number/Federal tax ID for this vendor. | xs:normalizedString | |
| @ | Code | M | The type tax ID that this is. TIN based on IRS Publication 1915 [IRSTIN]. | values:
|
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains the information completed on a W4 tax form. (Please note that this object is defined to represent the current deductions allowances for the employee; this is not intended to circumvent or replace IRS reporting standards but to faciliatate movement of W4 data from system to system within the LEA.)
SIF_Events are reported for this object.
Figure 6.8.22-1: W4| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| W4 | This object contains the information completed on a W4 tax form. (Please note that this object is defined to represent the current deductions allowances for the employee; this is not intended to circumvent or replace IRS reporting standards but to faciliatate movement of W4 data from system to system within the LEA.) | |||
@![]() | EmployeePersonalRefId | M | This is the GUID that points to the employee represented in the EmployeePersonal object. | IdRefType |
| W4Date | M | Date W4 was completed. | xs:date | |
| MaritalStatusRate | M | This denotes the current martial status of the employee | values:
| |
| FederalAllowancesNumber | M | Number of federal allowances. | xs:unsignedInt | |
| StateAllowancesNumber | O | Number of state allowances. | xs:unsignedInt | |
| StateProvince | M | State of residence. | StateProvince | |
| Exempt | M | Is this employee exempt from federal and state exemptions? | xs:boolean | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
In addition to SIF messages and strictly infrastructure-related objects like SIF_ZoneStatus, the Infrastructure
Working Group occasionally defines data model objects that either do not fall neatly within the purview of currently
existing data model working groups (e.g. the Authentication object) or that can be provided by the ZIS and agents
alike—typically metadata about a zone as opposed to data directly originating from the K-12 instructional and
administrative environment (e.g. SIF_LogEntry).
Click here for non-normative background/supplementary documentation from this group.
The Authentication object allows a system that stores usernames and/or passwords to share them with other applications through SIF. The provider of the Authentication object may only support providing a username or a password, or it may support both.
The Authentication object is also able to transmit a user's network identity through SIF. If the user has an account in a network directory system that supports LDAP, the user's distinguishedName or username is shared to uniquely identify the user to applications that support LDAP or native network authentication options.
Details of how to implement the password element are included below the object definition.
SIF_Events are reported for this object.
Figure 6.9.1-1: Authentication| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| Authentication | The Authentication object allows a system that stores usernames and/or passwords to share them with other applications through SIF. The provider of the Authentication object may only support providing a username or a password, or it may support both. The Authentication object is also able to transmit a user's network identity through SIF. If the user has an account in a network directory system that supports LDAP, the user's distinguishedName or username is shared to uniquely identify the user to applications that support LDAP or native network authentication options. | |||||
@![]() | RefId | M | The SIF RefId that uniquely identifies this authentication object. | RefIdType | ||
| @ | SIF_RefId | M | The SIF RefId of a student or staff member | IdRefType | ||
| @ | SIF_RefObject | M | The type of SIF object that the SIF_RefId attribute identifies. | values:
| ||
| AuthenticationInfo | M | The authentication information for one system. | ||||
| AuthenticationInfo/System | M | An identifying string for the system that supports this authentication information. | xs:normalizedString
| |||
| @ | Type | M | Specific type of user identification. | values:
| ||
| AuthenticationInfo/Username | O | The identification string for this user. | xs:normalizedString
| |||
| AuthenticationInfo/DistinguishedName | O | This is the distinguished name of the user in a network directory system. | xs:normalizedString
| |||
| AuthenticationInfo/PasswordList | O | Allows a provider or publisher to specify the same password using multiple algorithms, if supported. | List | |||
| AuthenticationInfo/PasswordList/ Password | MR | A representation of the user's password using the given algorithm. | xs:base64Binary
| |||
| @ | Algorithm | M | The method used to encrypt the user's password. See the implementation details below. | values:
| ||
| @ | KeyName | M | The name of the key to be used for decryption of the password. Left blank for plain, encoded text (Algorithm attribute value of "base64") and hash algorithms. | xs:normalizedString
| ||
| SIF_Metadata | O | SIF_Metadata | ||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
While Authentication objects transported over SIF HTTPS are typically secure in transit, SIF objects are often stored in logs and databases. If the network infrastructure is not secure, the passwords could be subject to snooping from system users. Because of this, the design of the Authentication object requires that passwords never be transmitted in plain text, to prevent casual viewing. The design of this object allows passwords to be securely encrypted using a variety of encryption algorithms.
Passwords in the Authentication object can be shared in one of three ways as documented in the sections below.
Sharing a password using encoded text is a very insecure method, because it uses a well-known algorithm and the value is not encrypted. The only merit of using this method is that the password is not readable as plain text, and thus deters any casual attempt to read a password. To share passwords in this manner, the following steps must be followed:
Password element with the algorithm set to base64.
Password element.
Sharing a hashed text version of a password means that the original password is not shared. Clear text passwords are not retrievable from values stored as hashes. These hashed values can only be used to verify passwords input by a user.
What is shared is a cryptographically secure hash of the password. This hash allows other applications to verify a user's password when s/he logs in by comparing the hash value, not the original password. To share passwords in this manner, the following steps must be followed:
Password element with the algorithm set to MD5 or SHA1.
Password element.
Sharing a password using encrypted text can be very secure.
The key being used to encrypt the data should be known only to the applications.
The KeyName attribute is used to allow agents to uniquely identify keys that are being used.
To share passwords in this manner, the following steps must be followed:
Password element with the algorithm set to DES, TripleDES, RC2, or AES.
Password element.
The XML in the Authentication example can be used to verify an agent's implementation of any of the published algorithms.
The password being shared for the sake of the example is ¿sècrèt.
High-Unicode characters are being used in this example to validate proper encoding.
The actual Unicode characters are: U+00BF, U+0073, U+00E8, U+0063, U+0072, U+00E8, U+0074.
The encryption keys being used are as follows (in base 64 format)
| Key Name | Key (in base64 format) |
| 64-BIT_KEY | dW7SKzwdn0Q= |
| 128-BIT_KEY | TcdilmUZ6qvbmegl2it2pA== |
| 192-BIT_KEY | mECbXMo+fOMWRwam7tyUEE59jbO9O0Z4 |
NOTE: Real-world implementations of password sharing should use keys other than the ones used for this documentation. These keys are provided for example's sake only. Keys should be generated using a secure cryptographic key generator.
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.
Figure 6.9.2-1: SIF_LogEntry| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| 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. | |||||
| @ | Source | M | The SIF node that logged this entry. | values:
| ||
| @ | LogLevel | M | The level of the log entry herein described. | values:
| ||
| SIF_LogEntryHeader | M | 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_OriginalHeader | O | 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_Category | C | 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:
| |||
| SIF_Code | O | 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_ApplicationCode | O | 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
| |||
| SIF_Desc | M | A textual description of the error. | xs:string
| |||
| SIF_ExtendedDesc | O | Any extended error description. | xs:string | |||
| SIF_LogObjects | O | List | ||||
| SIF_LogObjects/SIF_LogObject | MR | Any SIF data objects to which this log entry may apply. | SIF_ResponseObjectType | |||
| @ | ObjectName | M | The name of the SIF object referenced (e.g. StudentPersonal). | SIF_RequestObjectNamesType | ||
| SIF_Metadata | O | SIF_Metadata | ||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
The goal of Instructional Services Task Force is to create, design and advocate a set of specifications that feature data objects which will advance interoperability standards of information needed in instruction and educational service delivery in the classroom and instructional settings.
The work assigned to students, an educational event planned by a teacher to deliver a particular educational concept or skill.
SIF_Events are reported for this object.
Figure 6.10.1-1: Activity| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Activity | The work assigned to students, an educational event planned by a teacher to deliver a particular educational concept or skill. | |||
@![]() | RefId | M | RefIdType | |
| @ | xml:lang | M | The default language of the text used for the content in the Assessment. | |
| TechnicalRequirements | O | Applications, OS, and network requirements for activity if applicable. | List | |
| TechnicalRequirements/TechnicalRequirement | OR | Applications, OS, or network requirement for activity. | xs:string | |
| EssentialMaterials | O | Essential materials required to engage in this activity. | List | |
| EssentialMaterials/EssentialMaterial | OR | Essential material required to engage in this activity. | xs:string | |
| Title | O | Descriptive name of the activity. | xs:normalizedString | |
| Preamble | O | Description and context for the activity. | xs:string | |
| LearningObjectives | O | Educational objectives of the activity. | List | |
| LearningObjectives/LearningObjective | OR | Description of an educational objective of the activity. | xs:string | |
| LearningStandards | O |
Associated | List | |
| LearningStandards/LearningStandardItemRefId | OR | Link from activity to associated LearningStandardItem object. | IdRefType | |
| SubjectArea | O | SubjectArea | ||
| Prerequisites | O | Skills or competencies the student must have to engage in activity. | List | |
| Prerequisites/Prerequisite | OR | Skill or competency the student must have to engage in activity. | xs:string | |
| Students | O | Links to any students or group or category of students that this activity is for. | List | |
| Students/StudentPersonalRefId | OR | Link to a student. | IdRefType | |
| SourceObjects | O | Source objects assigned to students. | List | |
| SourceObjects/SourceObject | OR | GUID assigned to the source object. | IdRefType | |
| @ | SIF_RefObject | M | The type of learning object the source object is. | values:
|
| Points | O | Number of possible points for an activity. | xs:unsignedInt | |
| ActivityTime | M | Time structures for the activity. | ||
| ActivityTime/CreationDate | M | Creation date of the activity. | xs:date | |
| ActivityTime/Duration | O | Time required to complete the activity. | xs:unsignedInt | |
| @ | Units | M | Unit of time of the Duration value. | values:
|
| ActivityTime/StartDate | O | Date activity is started. | xs:date | |
| ActivityTime/FinishDate | O | Date activity is finished. | xs:date | |
| ActivityTime/DueDate | O | Date activity is due. | xs:date | |
| AssessmentRefId | O | Link to the SIF Assessment object containing the evaluation information for this activity. | IdRefType | |
| MaxAttemptsAllowed | O | How many tries allowed. | xs:unsignedInt | |
| ActivityWeight | O | The percentage weight of the activity during the particular course or term. | xs:decimal | |
| Evaluation | O | Field for non-numeric types of grading and evaluation such as "narrative." | ||
| @ | EvaluationType | M | A qualifer for what type of evaluation this is. Valid values are "Inline" and "RefId". Inline values are contained in the optional Description element, RefIds are contained in the AssessmentRefId element. | values:
|
| Evaluation/Description | O | A free text description of the evaluation to be used for this activity | xs:string | |
| LearningResources | O | Learning resources that support this activity. | List | |
| LearningResources/LearningResourceRefId | OR | A GUID reference to a SIF LearningResource object that supports this activity | IdRefType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
The work assigned to a student, which can comprise of learning resources, activities, and assessments. It must have a student and a time attached to it.
SIF_Events are reported for this object.
Figure 6.10.2-1: Assignment| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Assignment | The work assigned to a student, which can comprise of learning resources, activities, and assessments. It must have a student and a time attached to it. | |||
@![]() | RefId | M | GUID assigned to assignment. | RefIdType |
| @ | xml:lang | M | The default language used in the assignment object. | |
| Students | M | Students given this assignment. | List | |
| Students/StudentPersonalRefId | MR | GUID assigned to the student. | IdRefType | |
| StaffPersonalRefId | O | GUID assigned to the educator who gave the assignment. | IdRefType | |
| TechnicalRequirements | O | Applications, OS, and network requirements for activity if applicable. | List | |
| TechnicalRequirements/TechnicalRequirement | OR | Applications, OS, or network requirement for activity. | xs:string | |
| EssentialMaterials | O | Essential materials required to engage in the assignment. | List | |
| EssentialMaterials/EssentialMaterial | OR | Essential material required to engage in the assignment. | xs:string | |
| Title | O | Descriptive name of the assignment. | xs:normalizedString | |
| Preamble | O | Description and context for the assignment. | xs:string | |
| LearningObjectives | O | Educational objectives of the assignment. | List | |
| LearningObjectives/LearningObjective | OR | Description of an educational objective of the assignment. | xs:string | |
| LearningStandards | O |
Associated | List | |
| LearningStandards/LearningStandardItemRefId | OR | Link from assignment to an associated LearningStandardItem object. | IdRefType | |
| Prerequisites | O | Skills or competencies the student must have to engage in assignment. | List | |
| Prerequisites/Prerequisite | OR | Skill or competency the student must have to engage in assignment. | xs:string | |
| SourceObjects | O | Source objects assigned to students. | List | |
| SourceObjects/SourceObject | OR | GUID assigned to the source object. The source object is the "thing" being assigned to a student. | IdRefType | |
| @ | SIF_RefObject | M | The type of learning object the source object is. | values:
|
| AssignmentTime | M | Time structures for the assignment. | ||
| AssignmentTime/CreationDate | O | Creation date of the assignment | xs:date | |
| AssignmentTime/Duration | O | Time required to complete the assignment. | xs:decimal | |
| @ | Units | M |
Unit of time of the | values:
|
| AssignmentTime/StartDate | M | Date assignment is started. | xs:date | |
| AssignmentTime/StartTime | O | Time assignment is started. | xs:time | |
| AssignmentTime/DueDate | M | Date assignment is due. | xs:date | |
| AssignmentTime/DueTime | O | Time assignment is due. | xs:time | |
| AssignmentTime/AdministrationDate | O | Date that the assignment was administered to student if an assessment. | xs:date | |
| MaxAttemptsAllowed | O | The number attempts a student may make on this assignment. Assumed to be unlimited if omitted. | xs:unsignedInt | |
| AddToGradeBookFlag | O | Flag to prompt grade book processing. | xs:boolean | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
An object designed to contain instructional objects such as units, lessons, activities, and assessments—or other containers—joined together under a particular topic and/or duration.
SIF_Events are reported for this object.
Figure 6.10.3-1: CurriculumStructure| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| CurriculumStructure | An object designed to contain instructional objects such as units, lessons, activities, and assessments—or other containers—joined together under a particular topic and/or duration. | |||
@![]() | RefId | M | GUID for this particular object. | RefIdType |
| @ | xml:lang | M | The default language of the text used for the content in object | |
| Titles | M | List | ||
| Titles/Title | MR | Name of this type of curriculum object (e.g., "American Revolutionary War") | xs:normalizedString | |
| Description | O | Description of this curriculum object | xs:string | |
| SubjectArea | O | SubjectArea | ||
| CurriculumHierarchyLevel | M | Describes the position of this object in the curriculum hierarchy. | ||
| CurriculumHierarchyLevel/ Number | M |
Integer assigned to each hierarchical level within the CurriculumStructure tree. The top level is | xs:unsignedInt | |
| CurriculumHierarchyLevel/ Name | M | Used to describe what role this is serving in the structure. Some curriculum objects describe their levels in terms of programs of study, courses and units. Others use other terms. This attribute names the level of the item. | xs:normalizedString | |
| CurriculumHierarchyLevel/ Description | M | Used to describe what role this is serving in the structure. Some curriculum objects describe their levels in terms of programs of study, courses and units. Others use other terms. | xs:string | |
| PredecessorObjects | O | CurriculumStructure objects directly above this one in the hierarchy tree. These are repeatable because a single object can have multiple parent levels in the hierarcy. | List | |
| PredecessorObjects/CurriculumStructureRefId | OR | GUID assigned to the CurriculumStructure object directly above it in the hierarchy tree. | IdRefType | |
| LearningObjectives | O | Learning objectives for this object. | List | |
| LearningObjectives/LearningObjective | OR | Narrative description of a learning objective. | xs:string | |
| ComponentObjects | O | Component objects, if any, that make up this object. | List | |
| ComponentObjects/ComponentObject | OR | A GUID reference to a component object. | IdRefType | |
| @ | SIF_RefObject | M | The type of learning object being referenced. | values:
|
| LearningStandards | O | Associated learning standards. | List | |
| LearningStandards/LearningStandardItemRefId | OR | GUID of an associated LearningStandardItem object | IdRefType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information related to learning resources that may be used in educational settings. These include textbooks, Internet content, educational software, videos and DVDs, supplemental print material, etc.
SIF_Events are reported for this object.
Figure 6.10.4-1: LearningResource| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| LearningResource | This object contains information related to learning resources that may be used in educational settings. These include textbooks, Internet content, educational software, videos and DVDs, supplemental print material, etc. | |||
@![]() | RefId | M | GUID assigned to this LearningResource. | RefIdType |
| @ | xml:lang | M | The default language used in the LearningResource object. | |
| Name | M | Name of learning resource. | xs:normalizedString | |
| Author | O | Name of organization or company that created the resource. | xs:normalizedString | |
| Contacts | O | Contains contact information about resource authors. | List | |
| Contacts/Contact | OR | Contains contact information about a resource author. | ||
| Contacts/Contact/Name | O | Name of contact person. Use the generic element Name. | Name | |
| Contacts/Contact/Address | O | Address of organization or company. | Address | |
| Contacts/Contact/PhoneNumber | O | Phone number of organization or company. | PhoneNumber | |
| Contacts/Contact/Email | O | The email of the organization or company. | ||
| Location | O | Description of location of resource, i.e. location in library or URL, community resource, outside resource supplier. | xs:string | |
| @ | ReferenceType | M | A qualifying attribute for the Location payload. If ReferenceType is "URI", the payload contains a web address where the resource can be found. | xs:token |
| Status | O | Describes availability status of resource, e.g. "checked out." | xs:normalizedString | |
| Description | O | Description of the resource, e.g., "This textbook is intended for grade 4 social studies students and addresses..." | xs:string | |
| GradeLevels | O | GradeLevels | ||
| SubjectAreas | O | List | ||
| SubjectAreas/SubjectArea | OR | SubjectArea | ||
| MediaTypes | O | Resource media types. | List | |
| MediaTypes/MediaType | OR | MIME type [MIME] based on IANA registration (see RFC2048) or 'non-digital'. | xs:token | |
| UseAgreement | O | Describes terms of use for resource. | xs:string | |
| AgreementDate | O | A date that defines the date of agreement. | xs:date | |
| Approvals | O | Authorizations to use this resource. For example, this resource may be included as part of the district's standard curriculum model. | List | |
| Approvals/Approval | OR | A sub-element containing an authorization to use this resource. For example, this resource may be included as part of the district's standard curriculum model. | ||
| Approvals/Approval/Organization | M | Name of agency that approved use of resource. | xs:normalizedString | |
| Approvals/Approval/Date | M | Date resource was approved. | xs:date | |
| Evaluations | O | Evaluations/review of the resource. | List | |
| Evaluations/Evaluation | OR | Evaluation/review of resource. | ||
| @ | RefId | M | GUID assigned to an evaluation. | RefIdType |
| Evaluations/Evaluation/Description | O | Description of evaluation of resource. | xs:string | |
| Evaluations/Evaluation/Date | O | Date evaluation was performed | xs:date | |
| Evaluations/Evaluation/Name | O | Name of individual who submitted evaluation. | Name | |
| Components | M | Lesson or activity-sized portions of a resource. | List | |
| Components/Component | MR | A lesson or activity-sized portion of a resource. | ||
| Components/Component/Name | M | Name of learning resource component within the resource, i.e. "Chapter 1, Section 4. | xs:normalizedString | |
| Components/Component/Reference | M | Description of where ResourceComponent is located within resource or in general, i.e. "Section 4, pages 32-38," or URL string, or whatever locator is appropriate for media. | xs:string | |
| Components/Component/Description | O | Description of ResourceComponent, i.e. "Discover how changing the scale of a map can either increase or decrease the level of detail you see." | xs:string | |
| Components/Component/Strategies | O | Teaching/learning strategies used in the learning resource. | List | |
| Components/Component/Strategies/ Strategy | OR | Teaching/learning strategy used in the learning resource. One per element. | xs:string | |
| Components/Component/AssociatedObjects | O | References from component to associated elements within another SIF object. | List | |
| Components/Component/AssociatedObjects/ AssociatedObject | OR | Reference from component to associated elements within another SIF object. | IdRefType | |
| @ | SIF_RefObject | M | Attribute that identifies the type of SIF object being referenced. | ObjectNameType |
| LearningStandards | O | References to LearningStandardItems. | List | |
| LearningStandards/LearningStandardItemRefId | OR | Reference to a LearningStandardItem. | IdRefType | |
| LearningResourcePackageRefId | O | Reference to a | IdRefType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
Many instructional applications in a SIF zone need to share teaching and learning objects.
Curriculum planning applications, content repositories, learning management systems, etc.—all of these systems need to share
instructional content utilizing the LearningResource object.
The LearningResourcePackage object provides a transport envelope to move these files across the SIF zone.
SIF_Events are not reported for this object.
Figure 6.10.5-1: LearningResourcePackage| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| LearningResourcePackage | A wrapper for any external learning content to be transmitted across a SIF Zone. | AbstractContentPackageType |
A curriculum standards document or the like published by a national, state, district, school site, professional association or other interested party. The LearningStandardDocument reflects an expectation of student work.
SIF_Events are reported for this object.
Figure 6.10.6-1: LearningStandardDocument| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| LearningStandardDocument | A curriculum standards document or the like published by a national, state, district, school site, professional association or other interested party. The LearningStandardDocument reflects an expectation of student work. | |||
@![]() | RefId | M | ID for the standards document | RefIdType |
| @ | xml:lang | M | The default language of the text used for the content in the learning standard document. | |
| Title | M | Name of standard document, i.e., "Washington Essential Academic Learning Requirements." | xs:normalizedString | |
| Description | O | Description of the standards document. | xs:string | |
| Source | M |
Defines source of standard document. This is the descriptive type of the organization listed in | values:
| |
| Organizations | M | List | ||
| Organizations/Organization | MR | Name of organization represented by the document, i.e., "National Council of Teachers of Mathematics (NCTM)," "Washington," "Seattle School District." | xs:normalizedString | |
| Authors | O | List | ||
| Authors/Author | OR | Name of the organization that authored the standards document, i.e. "Mid-Continent Research for Education & Learning (McREL)." May be the same as "Organization" above. | xs:normalizedString | |
| OrganizationContactPoint | O | A brief description of how to contact the organization maintaining the standards. It could be a phone number, email address, or URL. | xs:string | |
| SubjectAreas | M | List | ||
| SubjectAreas/SubjectArea | MR | SubjectArea | ||
| DocumentStatus | M | values:
| ||
| DocumentDate | O | The date the current status was achieved. | xs:date | |
| LocalAdoptionDate | O | The date the local organization adopted this standard document | xs:date | |
| LocalArchiveDate | O | The date the local organization stopped using this standard document and superseded by a new document. | xs:date | |
| EndOfLifeDate | O | This is the date that the governing organization retired this document. | xs:date | |
| Copyright | O | Copyright for document. | ||
| Copyright/Date | C | Copyright date | xs:date | |
| Copyright/Holder | C | Name of the copyright holder | xs:normalizedString | |
| GradeLevels | O | SIF common GradeLevels element | GradeLevels | |
| RepositoryDate | O | Date document data was added to the repository | xs:date | |
| LearningStandardItemRefId | M | Link to the first/top LearningStandardItem in the standard hierarchy | IdRefType | |
| RelatedLearningStandards | O | List | ||
| RelatedLearningStandards/ LearningStandardDocumentRefId | OR | Links to related LearningStandardDocument | IdRefType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
SIF_Events are reported for this object.
Figure 6.10.7-1: LearningStandardItem| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| LearningStandardItem | This object contains information related to curriculum standards statements "standards" or "benchmarks" or the like within the document. This object primarily focuses upon state department curriculum standards, published curriculum standards and local education agency learning standards. Each LearningStandardItem reflects an individual standard statement and may occur at several levels within a hierarchially structured document. | |||
@![]() | RefId | M | GUID assigned to each statement at each level within the document hierarchy | RefIdType |
| @ | xml:lang | M | The default language of the text used for the content in the LearningStandardItem. | |
| StandardSettingBody | O | The name of the state or organization that authored and manages updates to the standards document (i.e., NCTM, Ohio Department of Education). | ||
| StandardSettingBody/Country | M | Country | ||
| StandardSettingBody/StateProvince | O | StateProvince | ||
| StandardSettingBody/NCESId | O | NCESId | ||
| StandardSettingBody/SettingBodyName | O | This is the text version of the organization's name. | xs:normalizedString | |
| StandardHierarchyLevel | M | Description of hierarchical level within standards tree. | ||
| StandardHierarchyLevel/Number | M | Integer assigned to each hierarchical level within standards tree. The top level is "1". | xs:unsignedInt | |
| StandardHierarchyLevel/Description | M | Used to describe what role this item is serving in the structure. Some standards describe their levels in terms of standard, strands, and topics. Others use standards, benchmarks, and indicators. This attribute names the level of the item. | xs:string | |
| PredecessorItems | O | List | ||
| PredecessorItems/LearningStandardItemRefId | OR | GUID assigned to the LearningStandardItem directly above it in the hierarchy tree. This is a repeatable element because a single granular item may relate to multiple parent levels of the hierarchy. If the object has no parent, the ParentRefId should be the same as the object's RefId. The RefId in LearningStandardDocumentRefId will always point to the parent's LearningStandardDocument object. | IdRefType | |
| StatementCodes | O | List | ||
| StatementCodes/StatementCode | OR | An alphanumeric ID code as defined by the organization to identify the statement. | xs:token | |
| Statements | O | List | ||
| Statements/Statement | MR | The text of the "standard," or "benchmark." | xs:string | |
| GradeLevels | M | GradeLevels | ||
| SubjectArea | O | SubjectArea | ||
| StandardIdentifier | O | This element describes the unique identifier for each LearningStandard. | ||
| StandardIdentifier/YearCreated | M | This represents the year that this specific learning standard was created. This is important to indicate as standards are updated to reflect the appropriate year it was created. This would be assigned and unique to the standard setting body. | xs:gYear | |
| StandardIdentifier/SubjectArea | M | This represents the subject or content area this learning standard addresses. This would be assigned and unique to the standard setting body.\ | SubjectArea | |
| StandardIdentifier/StandardNumber | M | This is the specific number of the standard. For example, if the subject is mathematics and this standard is Patterns, Functions and Algebra, this would be StandardNumber 1. This would be assigned and unique to the standard setting body. | xs:normalizedString | |
| StandardIdentifier/GradeLevels | M | This represents the grade level(s) this specific learning standard will address. This may be addressed in different ways. Some states have a grade level that covers several grades and others have just one grade. This would be assigned and unique to the standard setting body. | GradeLevels | |
| StandardIdentifier/Benchmark | O | This is the next level within the hierarchy of the learning standard. For example, if the subject is mathematics and the standard is algebra, this would be the next delineation - Represent an unknown quantity as a variable using a symbol, including letters. This would be assigned and unique to the standard setting body. | xs:normalizedString | |
| StandardIdentifier/GradeLevel | O | This is the specific grade level. This is to be utilized if the GradeLevel covers several grades. This would be assigned and unique to the standard setting body. | GradeLevel | |
| StandardIdentifier/IndicatorNumber | O | This would be the most granular level of the learning standard associated with the grade level. Following the same example, an indicator for Algebra GradeLevel 5-7, the indicator for the benchmark above at 6 grade would be to Evaluate simple expressions by replacing variables with given values, and use formulas in problem-solving situations. This would be assigned and unique to the standard setting body. | xs:normalizedString | |
| StandardIdentifier/AlternateIdentificationCodes | O | This element is for an organization to utilize for an internal code. This may be used for an alignment schema or other purposes that are only internal for the organization. | List | |
| StandardIdentifier/AlternateIdentificationCodes/ AlternateIdentificationCode | MR | An alphanumeric ID code as defined by the organization to identify the statement. | xs:normalizedString | |
| StandardIdentifier/Organization | M | Name of organization represented by the document, i.e., "National Council of Teachers of Mathematics (NCTM)," "Washington," "Seattle School District." This is the name of the organization that has this AlternateIdentificationCode. This should be a text field. | xs:normalizedString | |
| LearningStandardDocumentRefId | M | The RefId of the item's parent LearningStandardDocument. | IdRefType | |
| RelatedLearningStandardItems | O | Container for external relationships. | List | |
| RelatedLearningStandardItems/ LearningStandardItemRefId | OR | A relationship between the current standard item and another standard item. | IdRefType | |
| @ | RelationshipType | M | Type of the relationship between the current standard and the target standard. The value identifies the type of standard of the target item. The purpose of this information is to allow applications to sort/display these relationships in the appropriate context. | union of: LearningStandardItemRelationshipTypesType xs:token |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
A series of Activities and LearningResources tied together under a particular topic or period of time to deliver a particular educational concept or skill.
SIF_Events are reported for this object.
Figure 6.10.8-1: Lesson| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| Lesson | A series of Activities and LearningResources tied together under a particular topic or period of time to deliver a particular educational concept or skill. | |||
@![]() | RefId | M | RefIdType | |
| @ | xml:lang | M | The default language of the text used for the content in the Lesson. | |
| SourceObjects | O | List | ||
| SourceObjects/SourceObject | OR | Reference to the source object. | IdRefType | |
| @ | SIF_RefObject | M | The type of learning object being referred to. | values:
|
| CurriculumStructures | O | List | ||
| CurriculumStructures/CurriculumStructureRefId | OR | A GUID reference to the parent CurriculumStructure object of this Lesson. | IdRefType | |
| SubjectArea | O | SubjectArea | ||
| Title | M | Name of lesson. | xs:normalizedString | |
| Duration | O | Desired duration of the lesson | xs:unsignedInt | |
| @ | Units | M | Unit of time of the Duration value. | values:
|
| Description | O | Description of the lesson plan. | xs:string | |
| Procedure | O | Text field to describe how to use and implement the lesson. | xs:string | |
| Strategies | O | List | ||
| Strategies/Strategy | OR | Teaching strategy used in this lesson plan. | xs:normalizedString | |
| LearningObjectives | O | List | ||
| LearningObjectives/LearningObjective | OR | Description of learning objective(s) for this lesson, i.e., "Student will be able to use Pythagorean Theorem."—equates to 'benchmark' or 'goal' or other terminology | xs:string | |
| SupportingActivities | O | List | ||
| SupportingActivities/ActivityRefId | OR | Links to Activity objects that may support the lesson | IdRefType | |
| LearningStandards | O | List | ||
| LearningStandards/LearningStandardItemRefId | OR | Link to an associated LearningStandardItem. This allows for a single Lesson to be aligned to multiple standard statements. | IdRefType | |
| LearningResources | O | List | ||
| LearningResources/LearningResourceRefId | OR | Link to an aligned LearningResource object. | IdRefType | |
| LessonSources | O | List | ||
| LessonSources/LessonSource | OR | One or more sources for the lesson. This describes the lesson's origin. | ||
| LessonSources/LessonSource/ Author | OR | For each source, the authors of the source. | ||
| LessonSources/LessonSource/ Author/Name | O | Name of the author. | Name | |
| LessonSources/LessonSource/ Author/Organization | O | Organization name. | xs:normalizedString | |
| LessonSources/LessonSource/ Author/Address | O | Address of the author. | Address | |
| LessonSources/LessonSource/ Author/Email | O | Email address of the author. | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
The Library Automation Working Group provides the library automation entities necessary to effectively exchange relevant data via the framework.
This object reports the current library status for the requested student or staff member.
The minimum data that the object will return will be the patron's ElectronicId,
the total number of materials that are checked out and overdue,
and the number and amount of any fines that have been assessed to the patron.
When a patron has materials that have been checked out, requested, or are overdue, the object will contain a Transaction element
describing the details of the transaction. Likewise, any fines that have an outstanding balance will also have a Transaction element for the fine.
When a checked out item is returned to the library, it will not appear in the object, even if the item was overdue. Fines that have an outstanding balance will be reported, but when the fine is paid, it will not appear in the object.
SIF_Events are not reported for this object.
Figure 6.11.1-1: LibraryPatronStatus| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| LibraryPatronStatus | This object reports the current library status for the requested student or staff member. | |||
| @ | LibraryType | M | A library-defined language-independent value that refers to a specific patron type. | xs:string |
@![]() | SIF_RefId | M | The SIF wide unique identifier of a student or teacher. | IdRefType |
@![]() | SIF_RefObject | M | The type of patron mapped to a SIF supported object. Library automation products work with patrons who could be students or teachers. | values:
|
| ElectronicIdList | M | List of electronic identifiers associated with the patron. | ElectronicIdList | |
| TransactionList | O | List of transactions. | List | |
| TransactionList/Transaction | OR | Contains information about library transactions for the referenced student. These include items that are checked out or have fines or holds placed on them. | ||
| TransactionList/Transaction/ ItemInfo | O |
If this transaction has an item associated with it, this element contains the information about the item. Most | ||
| @ | Type | M | Type of item being referenced. | values:
|
| TransactionList/Transaction/ ItemInfo/Title | M |
The title of the item being referenced by this | xs:string | |
| TransactionList/Transaction/ ItemInfo/Author | O |
The author of the item being referenced by this | xs:string | |
| TransactionList/Transaction/ ItemInfo/ElectronicId | O |
Electronic identifier associated with this
This element will not appear if the | ElectronicId | |
| TransactionList/Transaction/ ItemInfo/CallNumber | O | The library call number, if any, assigned to this item. | xs:string | |
| TransactionList/Transaction/ ItemInfo/Price | O | The cost of this item. | MonetaryAmountType | |
| TransactionList/Transaction/ CheckoutInfo | O | If the item is currently checked out to this person, this element contains the date and time that the item is due to be returned. | ||
| TransactionList/Transaction/ CheckoutInfo/ReturnBy | M | The date and time that this item is due to be returned. | xs:dateTime | |
| TransactionList/Transaction/ FineInfoList | O | List of fines assessed. | List | |
| TransactionList/Transaction/ FineInfoList/FineInfo | OR | If the item has a fine assessed to this person, this element will contain the information about the fine. | ||
| @ | Type | M | Type of fine assessed to this patron and item. A corresponding ItemInfo is required for all FineInfo types except "Other" and "Refund" where it is permissible to omit the ItemInfo element if there isn't an item associated with the fine. | values:
|
| TransactionList/Transaction/ FineInfoList/FineInfo/Assessed | M | The date and time that this fine was assessed to the patron. | xs:dateTime | |
| TransactionList/Transaction/ FineInfoList/FineInfo/Description | O | More detailed information concerning the assessed fine or refund. | xs:string | |
| TransactionList/Transaction/ FineInfoList/FineInfo/Amount | M | The current balance of the fine expressed as a positive number. | MonetaryAmountType | |
| TransactionList/Transaction/ FineInfoList/FineInfo/Reference | O | An application-specific reference identifier for the fine being assessed, paid, or refunded. It is intended to identify a specific fine transaction allowing consumers to include this information in Billing or Payment events sent to the library application. | xs:string | |
| TransactionList/Transaction/ HoldInfoList | O | List of holds placed. | List | |
| TransactionList/Transaction/ HoldInfoList/HoldInfo | OR | If the item has a hold placed on it by a patron, this element will contain the information about the hold. | ||
| @ | Type | M | The type of hold being referenced. | values:
|
| TransactionList/Transaction/ HoldInfoList/HoldInfo/DatePlaced | M | The date that the patron placed the hold. | xs:date | |
| TransactionList/Transaction/ HoldInfoList/HoldInfo/DateNeeded | O | The date that the patron needs this item by. | xs:date | |
| TransactionList/Transaction/ HoldInfoList/HoldInfo/MadeAvailable | O | The date that this item became available for the patron to pick up. | xs:date | |
| TransactionList/Transaction/ HoldInfoList/HoldInfo/Expires | O | The date when this ready hold will expire freeing the item to be assigned to another patron. | xs:date | |
| MessageList | O | List of messages for/regarding the patron. | List | |
| MessageList/Message | OR | |||
| @ | Priority | M | The level of urgency associated with this message. | values:
|
| MessageList/Message/Sent | O | The date and time that this message was originally sent. | xs:dateTime | |
| MessageList/Message/Text | M | The contents of the message. | xs:string | |
| NumberOfCheckouts | M | The total number of items that this patron currently has checked out including overdue items. | xs:unsignedInt | |
| NumberOfOverdues | M | The total number of checkouts that are currently overdue. | xs:unsignedInt | |
| NumberOfFines | M | The total number of fines currently assessed to this patron. | xs:unsignedInt | |
| FineAmount | M | The total monetary amount of the fines that this patron currently owes the library expressed as a positive number. | MonetaryAmountType | |
| NumberOfRefunds | O | The total number of refunds currently credited to this patron. | xs:unsignedInt | |
| RefundAmount | O | The total monetary amount of the refunds that the library currently owes the patron expressed as a positive number. | MonetaryAmountType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
The Professional Development Working Group assesses the interoperability needs of state and local education agencies with regard to professional development. This includes:
This object contains information about educational providers of professional education courses and activities.
SIF_Events are reported for this object.
Figure 6.12.1-1: ActivityProvider| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| ActivityProvider | This object contains information about educational providers of professional education courses and activities. | |||
@![]() | RefId | M | GUID for this object. The application that owns this object is responsible for generating this unique ID. | RefIdType |
| LocalId | M | Local code used to represent this provider | LocalId | |
| StateProvinceId | O | State assigned provider number | StateProvinceId | |
| Name | M | Name of the provider. | xs:normalizedString | |
| Address | O | This element contains information related to provider's address information. | Address | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains HR, certification and teaching assignment information for elementary and secondary professional personnel for state reporting. It is a snapshot object used for vertical reporting of data related to K-12 elementary and secondary professional employees.
SIF_Events are not reported for this object.
Figure 6.12.2-1: EmployeeCredential| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EmployeeCredential | This object contains HR, certification and teaching assignment information for elementary and secondary professional personnel for state reporting. It is a snapshot object used for vertical reporting of data related to K-12 elementary and secondary professional employees. | |||
| ReportDate | M | Date that report snapshot was generated | xs:date | |
| SchoolYear | M | School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2004" for the 2003-04 school year). | SchoolYear | |
| StateProvinceId | M | State assigned reporting unit number | StateProvinceId | |
| SSN | M | Employee social security number | xs:normalizedString | |
| Name | M | Name of employee. | Name | |
| Demographics | O | This element contains information related to employee demographics. | Demographics | |
| Race | M | Primary employee's race | NCES0849RaceType | |
| Hispanic | O | Is this employee Hispanic or Latino? | values:
| |
| Certifications | M | Employee certifications | List | |
| Certifications/Certification | MR | Employee certification area information | ||
| Certifications/Certification/ Description | M | Certification description as defined by state | xs:string | |
| Certifications/Certification/ AreaAuthorized | O | Area in which employee has certification | NCES0421TeachingFieldOrAreaAuthorizedType | |
| Salary | M | Employee's salary | MonetaryAmountType | |
| Status | M | Employee professional position status | NCES0613EmploymentStatusType | |
| Leave | M | Is this employee on leave this year? | values:
| |
| TotalYears | M | Total number of years employee has been in a professional position | xs:decimal | |
| UnitYears | M | Total number of years at current LEA | xs:decimal | |
| Education | M | Highest level of education attained by employee. | NCES0395TeachingCredentialBasisType | |
| TeachingCredentialType | OR | Category in which teacher is authorized to teach | NCES0394TeachingCredentialTypeType | |
| TerminationCode | O | If appropriate, employment separation reason | NCES0434EmploymentSeparationReasonType | |
| BackgroundChecks | O | List of background checks performed on employee | List | |
| BackgroundChecks/BackgroundCheck | OR | Information about background check done on employee | ||
| BackgroundChecks/BackgroundCheck/ Type | M | Background check type | NCES0401BackgroundCheckTypeType | |
| BackgroundChecks/BackgroundCheck/ Date | M | Date on which background type was checked | xs:date | |
| BackgroundChecks/BackgroundCheck/ Description | O | Description of background check performed | xs:string | |
| Assignments | M | List of employee assignments to schools | List | |
| Assignments/Assignment | MR | Information about the school and assignment of employee | ||
| Assignments/Assignment/SchoolInfoRefId | M | References SchoolInfo object to determine school in which this assignment pertains. | IdRefType | |
| Assignments/Assignment/GradeLevels | M | Grade which is assigned to this employee (e.g. 12) | GradeLevels | |
| Assignments/Assignment/JobFunction | O | The purpose of the activity in school as related to students | ||
| Assignments/Assignment/JobFunction/ Code | M | Code representing the type of job function. | NCES0568FunctionTypeType | |
| Assignments/Assignment/JobFunction/ OtherCodeList | O | OtherCodeList | ||
| Assignments/Assignment/FTE | O | Full-time equivalent for this school | xs:decimal | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information about courses and activities taken by employees.
SIF_Events are reported for this object.
Figure 6.12.3-1: EmployeeCredit| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EmployeeCredit | This object contains information about courses and activities taken by employees. | |||
@![]() | RefId | M | This is the GUID for this object. | RefIdType |
| @ | EmployeePersonalRefId | M | References EmployeePersonal object. | IdRefType |
| @ | ProfessionalDevelopmentActivitiesRefId | M | References the ProfessionalDevelopmentActivities object | IdRefType |
| EndDate | M | Date in which the course or activity was completed and awarded credit. | xs:date | |
| Earned | M | The number of units earned | xs:decimal | |
| @ | Type | M | The unit description | values:
|
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information about employee continuing professional course and activity credits and hours taken by employees for recertification purposes. It is used as a vertical reporting snapshot-type object to transmit information regarding professional continuing education courses and activities completed by employees to maintain their current educational certification(s) within a given state.
SIF_Events are not reported for this object.
Figure 6.12.4-1: EmployeeRecertification| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| EmployeeRecertification | This object contains information about employee continuing professional course and activity credits and hours taken by employees for recertification purposes. It is used as a vertical reporting snapshot-type object to transmit information regarding professional continuing education courses and activities completed by employees to maintain their current educational certification(s) within a given state. | |||
| StateProvinceId | C | The state-assigned identifier for this staff member. This element or | StateProvinceId | |
| SSN | C | Employee Social Security Number. This element or | SSN | |
| Name | M | Name of employee. | Name | |
| Demographics | O | This element contains information related to employee demographics. | Demographics | |
| ActivityName | M | Name of the course or activity | xs:normalizedString | |
| ActivityType | M | Type of course or activity | values:
| |
| ActivityHours | M | Total activity hours/total clock hours | xs:decimal | |
| Earned | M | Hours attended or credits earned by the employee | xs:decimal | |
| @ | Type | M | Number of hours or credits. | values:
|
| DateFrom | M | Start date of the course or activity | xs:date | |
| DateTo | M | Ending date of the course or activity | xs:date | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information about courses and activities for which employees can earn credits or hours to maintain their certification.
SIF_Events are reported for this object.
Figure 6.12.5-1: ProfessionalDevelopmentActivities| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| ProfessionalDevelopmentActivities | This object contains information about courses and activities for which employees can earn credits or hours to maintain their certification. | |||
@![]() | RefId | M | GUID for this object. | RefIdType |
| @ | ActivityProviderRefId | M | References the ActivityProvider object | IdRefType |
| ProfessionalDevelopmentProgramRefId | O | Reference to associated professional development program. | IdRefType | |
| LearningStandardItems | O | Associated | List | |
| LearningStandardItems/LearningStandardItemRefId | OR | A GUID reference to a | IdRefType | |
| LocalId | M | Locally assigned number or provider referenced course number used to represent the course or activity | LocalId | |
| StartDate | M | The starting date of the course or activity | xs:date | |
| EndDate | M | The ending date of the course or activity | xs:date | |
| Description | M | The description of the course or activity | xs:string | |
| ClockHours | M | The actual number of hours required for the course or activity | xs:decimal | |
| Credits | O | Number of credits that can be earned by completing the course or activity. | xs:decimal | |
| Stipend | O | Tracks stipend being offered for this particular activity. | MonetaryAmountType | |
| FundingSource | O | Tracks the source of funding for this particular activity. | xs:string | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
SIF_Events are reported for this object.
Figure 6.12.6-1: ProfessionalDevelopmentProgram| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| ProfessionalDevelopmentProgram | Container for external relationships. | |||
@![]() | RefId | M | GUID for this object. | RefIdType |
| LearningStandardItems | O | Associated | List | |
| LearningStandardItems/LearningStandardItemRefId | OR | A GUID reference to a | IdRefType | |
| LocalProgramId | O | An element for setting local program identifiers. | xs:normalizedString | |
| ProgramName | M | The name or title of the program. | xs:normalizedString | |
| ProgramType | M | The type of program whether it be a grant, learning plan, or system training. | xs:normalizedString | |
| FundingSource | O | The funding source of the program. | xs:string | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
SIF_Events are reported for this object.
Figure 6.12.7-1: ProfessionalDevelopmentRegistration| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| ProfessionalDevelopmentRegistration | ||||
@![]() | RefId | M | RefIdType | |
| @ | EmployeePersonalRefId | M | Who this record affects. | IdRefType |
| RegistrationStatus | M | Tracks the status of the user in the professional development activity. | values:
| |
| ProfessionalDevelopmentActivityRefId | O | Relationship ID for professional development activity. | IdRefType | |
| ProfessionalDevelopmentProgramRefId | O | Relationship ID for professional development program. | IdRefType | |
| PaidAmount | O | This optional field is used if there is a fee for the professional development activity and for tracking the amount the user paid to participate in the professional development activity. | MonetaryAmountType | |
| Stipend | O | Optional field for tracking the amount the user is paid to participate in the professional development activity. | MonetaryAmountType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
The Special Programs Working Group's mission is to focus on support within SIF for effective data exchange regarding special education and other individualized programs.
This object contains information pertaining to student eligibility for and participation in an individualized special program such as special education, ESL, Section 504, 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.
Figure 6.13.1-1: StudentParticipation| Element/@Attribute | Char | Description | Type | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| StudentParticipation | This object contains information pertaining to student eligibility for and participation in an individualized special program such as special education, ESL, Section 504, 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 | |||||||||
@![]() | RefId | M | This is the unique identification code | RefIdType | ||||||
| @ | StudentPersonalRefId | M | The GUID of the student that this object is linked to. | IdRefType | ||||||
| StudentParticipationAsOfDate | M |
Effective date (NOT the entry date) of this | xs:date | |||||||
| ProgramType | M | ProgramType | ||||||||
| ProgramFundingSources | O | List | ||||||||
| ProgramFundingSources/ProgramFundingSource | MR | |||||||||
| ProgramFundingSources/ProgramFundingSource/ Code | M | Funding source for the program, may be more than one. | union of: NCES0222ProgramFundingSourceType subset:
additional values:
| |||||||
| ProgramFundingSources/ProgramFundingSource/ OtherCodeList | O | OtherCodeList | ||||||||
| ManagingPublicAgency | O | The GUID of the public agency (a district / LEA) to which the "ManagingSchool" reports / belongs. | IdRefType | |||||||
| @ | SIF_RefObject | M | values:
| |||||||
| ManagingSchool | O | The GUID of the school responsible for coordinating the student's program participation. | IdRefType | |||||||
| @ | SIF_RefObject | M | values:
| |||||||
| PartCTransitionMeetingNotHeldReasons | O | List | ||||||||
| PartCTransitionMeetingNotHeldReasons/ PartCTransitionMeetingNotHeldReason | MR | |||||||||
| PartCTransitionMeetingNotHeldReasons/ PartCTransitionMeetingNotHeldReason/ Code | M | A reason why the Part C transition meeting was not held. | values:
| |||||||
| PartCTransitionMeetingNotHeldReasons/ PartCTransitionMeetingNotHeldReason/ OtherCodeList | O | OtherCodeList | ||||||||
| PartCTransitionMeetingDate | O | Date the transition meeting was held for a Part C child. | xs:date | |||||||
| PartCTransitionMeetingOutcomes | O | List | ||||||||
| PartCTransitionMeetingOutcomes/ PartCTransitionMeetingOutcome | MR | |||||||||
| PartCTransitionMeetingOutcomes/ PartCTransitionMeetingOutcome/ Code | M | An outcome of a Part C transition meeting. | values:
| |||||||
| PartCTransitionMeetingOutcomes/ PartCTransitionMeetingOutcome/ OtherCodeList | O | OtherCodeList | ||||||||
| ReferralDate | O | Date student was referred for evaluation/program participation. | xs:date | |||||||
| ReferralSource | O | |||||||||
| ReferralSource/Code | M | The method by which a student was identified for referral to a particular program. | NCES0792IdentificationProcedureType | |||||||
| ReferralSource/OtherCodeList | O | OtherCodeList | ||||||||
| ProgramStatus | O | ProgramStatus | ||||||||
| GiftedEligibilityCriteria | O | State / local code used to determine eligibility for Gifted / Talented program. | xs:token | |||||||
| EvaluationParentalConsentDate | O | Date parent(s) consented to completion of evaluation of child for program participation. | xs:date | |||||||
| EvaluationDate | O | Date the evaluation/assessment process for student was completed. | xs:date | |||||||
| EvaluationExtensionDate | O | Actual date by which evaluation must be completed (for state use in determining timeliness in event that parent and LEA agreed to an extension beyond normal state deadline). | xs:date | |||||||
| ExtensionComments | O | Contains any comments on the extension. Optional even if an EvaluationExtensionDate is present. | xs:string | |||||||
| ReevaluationDate | O | Date students will be reevaluated for continued placement in a support program(s). | xs:date | |||||||
| ExceptionalityCategories | O | ExceptionalityCategories | ||||||||
| ProgramEligibilityDate | O | Date student is eligible for beginning the support program(s). | xs:date | |||||||
| ProgramPlanType | O | |||||||||
| ProgramPlanType/Code | M | The document that outlines the student program/plan as approved by parents, guardians, and staff. | union of: NCES0806IndividualizedProgramTypeType additional values:
| |||||||
| ProgramPlanType/OtherCodeList | O | OtherCodeList | ||||||||
| ProgramPlanDate | O | Date the most recent program plan was completed and approved by the team responsible for developing it. The date the parent consented to placement is NOREPDate. | xs:date | |||||||
| ProgramPlanEffectiveDate | O | Date by which the plan must be implemented for the student. | xs:date | |||||||
| NOREPDate | O | Date the Notice of Recommended Educational Placement was signed and approved by the parent / guardian of the student. | xs:date | |||||||
| PlacementParentalConsentDate | O | Date the parent(s) consented to the proposed placement. | xs:date | |||||||
| ProgramPlacementDate | O | Date student began the support program. | xs:date | |||||||
| LeastRestrictiveEnvironment | O | |||||||||
| LeastRestrictiveEnvironment/ Code | M | Category represents the optimal educational setting in which the student should be placed (setting where child has most desirable learning environment). Relates specifically to special education. | union of: NCES0307ServiceSettingType NCES0798EarlyChildhoodProgramSettingType NCES0804EarlyChildhoodSpecialEducationSettingType subset:
| |||||||
| LeastRestrictiveEnvironment/ OtherCodeList | O | OtherCodeList | ||||||||
| ExtendedSchoolYear | O | For special education, indicates whether Extended School Year (ESY) / summer services have been determined as necessary | xs:boolean | |||||||
| ExtendedDay | O | For special education, indicates whether Extended School Day (ESD) services have been determined as necessary. | xs:boolean | |||||||
| ProgramAvailability | O | |||||||||
| ProgramAvailability/Code | M | Describes the availability of the program. | NCES0211ProgramAvailabilityType | |||||||
| ProgramAvailability/OtherCodeList | O | OtherCodeList | ||||||||
| PrivateNotPlacedByPublic | O | Indicates whether the student is enrolled by a parent/guardian in a private school and has special education/services provided at public expense. Necessary for the OSEP federal IDEA reports.. | xs:boolean | |||||||
| ProgramReviewDate | O | Projected date of the program plan review (for IDEA, the projected annual IEP review date). | xs:date | |||||||
| FBADate | O | The most recent date on which the IEP Team completed a full and comprehensive review of all functional behavioral assessment materials. | xs:date | |||||||
| BIPDate | O | The most recent date on which the IEP Team approved a behavioral intervention plan. | xs:date | |||||||
| ProgramExitDate | O | Date student exited support program(s). | xs:date | |||||||
| ProgramExitReason | O | |||||||||
| ProgramExitReason/Code | M | Review by program / state. May be required if student has exited the program. | union of: NCES0815ProgramExitReasonType additional values:
| |||||||
| ProgramExitReason/OtherCodeList | O | OtherCodeList | ||||||||
| ProjectedExitDate | O | The date on which it is projected that a student will exit program. Has typically been provided when student turns 14; under new IDEA, may change to 16. | xs:date | |||||||
| ProjectedExitReason | O | Review by program / state. May be required if a ProjectedExitDate is present. The projected reason for a student's exit from program. | xs:token | |||||||
| @ | Codeset | M | Identifies source of value provided. | values:
| ||||||
| PlannedAssessmentParticipation | O | The student's planned level of participation in statewide assessments. | PlannedAssessmentParticipation | |||||||
| TransitionPlanning | O | Purpose / goal for recommended transition planning services. Examples | xs:token | |||||||
| @ | Codeset | M | Identifies source of value provided. | values:
| ||||||
| StudentSpecialEducationFTE | O | 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
| |||||||
| EntryPerson | O | Identification / name of the person who created the transaction that led to the creation of this instance of the object. | xs:normalizedString | |||||||
| ParticipationContact | O | Primary contact for this record. | xs:normalizedString | |||||||
| SIF_Metadata | O | SIF_Metadata | ||||||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information that describes a specific instructional, related or transitional service that has been prescribed or recommended in the program plan developed for a student who has been placed in an individualized special program.
The following notes are intended to clarify the use of this object:
SIF_Events are reported for this object.
Figure 6.13.2-1: StudentPlacement| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentPlacement | This object contains information that describes a specific instructional, related or transitional service that has been prescribed or recommended in the program plan developed for a student who has been placed in an individualized special program. | |||
@![]() | RefId | M | This is the unique identification code | RefIdType |
| @ | StudentParticipationRefId | M | This is the reference code for student eligibility for participation | IdRefType |
| @ | StudentPersonalRefId | M | The GUID of the student that this object is linked to. | IdRefType |
| StudentPlacementAsOfDate | M | Effective date (NOT the entry date) of this StudentPlacement instance for the identified student and program. It is intended that each time the contents of this instance of the object changes, it will be published with a new RefId. | xs:date | |
| Service | M | |||
| Service/Code | M | Specialized instruction or related / transitional service provided to this student. | union of: NCES0273StudentSupportServiceTypeType subset:
NCES0289TransitionalSupportServiceTypeType EDENHomelessEducationalSupportServicesAndActivitiesTypeOfServicesReceivedType subset:
EDENMigrantStudentsServedMigrantServiceTypeType subset:
EDENLEPProgramTypeOfServicesReceivedType subset:
EDENStudentsInNeglectedOrDelinquentProgramsNeglectedOrDelinquentServicesReceivedType subset:
StudentPlacementTitleIServicesType StudentPlacementOtherServicesType StudentPlacementOtherTypesOfTransportationType | |
| Service/OtherCodeList | O | OtherCodeList | ||
| ServiceCategory | O | Category of service (for example, whether it is instruction or a related / transitional service or a supplemental service). Typically designated by a state. | values:
| |
| ServiceFundingSources | O | List | ||
| ServiceFundingSources/ServiceFundingSource | MR | |||
| ServiceFundingSources/ServiceFundingSource/ Code | M | Funding source for the program, may be more than one. | union of: NCES0222ProgramFundingSourceType subset:
additional values:
| |
| ServiceFundingSources/ServiceFundingSource/ OtherCodeList | O | OtherCodeList | ||
| ServicingPublicAgency | O | The GUID of the public agency (a district / LEA) to which the "ServicingSchool" reports / belongs. | IdRefType | |
| @ | SIF_RefObject | M | values:
| |
| ServicingSchool | O | The GUID of the school responsible for providing and coordinating this service (but physical location where service delivered could be different and is identified in SchoolWhereServiceDelivered). | IdRefType | |
| @ | SIF_RefObject | M | values:
| |
| SchoolWhereServiceDelivered | O | The GUID of the school where the service is delivered. | IdRefType | |
| @ | SIF_RefObject | M | values:
| |
| ServiceProviderType | O | |||
| ServiceProviderType/Code | M | Used for an individual providing the service. Review by state / program, may be required. Service provider title (such as Physical Therapist or Psychologist). | NCES0557JobClassificationType subset:
| |
| ServiceProviderType/OtherCodeList | O | OtherCodeList | ||
| AgencyType | O | Identifies an agency or clinic that will provide the specified service. | xs:normalizedString | |
| ServiceProviderName | O | The name of the person who delivers the service. | xs:normalizedString | |
| ServiceSetting | O | |||
| ServiceSetting/Code | M | Setting where service is provided (Regular Class, Resource Room, Homebound, Detention Center, etc.). | union of: NCES0307ServiceSettingType NCES0798EarlyChildhoodProgramSettingType NCES0804EarlyChildhoodSpecialEducationSettingType | |
| ServiceSetting/OtherCodeList | O | OtherCodeList | ||
| WhenServiceProvided | O | |||
| WhenServiceProvided/Code | M | General timing of service delivery relative to school calendar / schedule. | NCES0211ProgramAvailabilityType | |
| WhenServiceProvided/OtherCodeList | O | OtherCodeList | ||
| LatestStartDate | O | Date by which service is supposed to start for this student. | xs:date | |
| StartDate | O | Actual date this service began for this student. | xs:date | |
| EndDate | O | Actual date this service ended for this student. | xs:date | |
| FrequencyTime | O | |||
| FrequencyTime/Code | M | Code for the frequency that the service is provided. | values:
| |
| FrequencyTime/OtherCodeList | O | OtherCodeList | ||
| DirectTime | O | Number of units of time per session spent directly providing the service to the student. | xs:decimal | |
| @ | UnitOfMeasure | M | Identifies unit of measure in which amount of time is expressed. | values:
|
| IndirectTime | O | Number of units of time per session NOT spent directly providing the service to the student but rather spent providing consultation services to someone related to the student (e.g. parent, a general ed teacher, a new service provider, etc.). | xs:decimal | |
| @ | UnitOfMeasure | M | Identifies unit of measure in which amount of time is expressed. | values:
|
| TotalServiceDuration | O | Total of the direct and indirect time as it relates to the FrequencyTime; e.g., DirectTime 60 + IndirectTime 30 = 90. | xs:decimal | |
| @ | UnitOfMeasure | M | Identifies unit of measure in which amount of time is expressed. | values:
|
| IncludedInSpecialEducationFTE | O | Indicates whether the direct time for this service is included in the calculation of a student's special education FTE. | xs:boolean | |
| SpecialNeedsTransportation | O | Indicates whether the student requires transportation to the location of Placement/Service. | xs:boolean | |
| AssistiveTechnology | O | Indicates whether the student requires assistive technology for this Placement/Service. | xs:boolean | |
| EntryPerson | O | Identification / name of the person who created the transaction that led to the creation of this instance of the object. | xs:normalizedString | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object provides information about test accommodation(s) required for a particular student who is registered to take a particular state test or who is about to be assigned by a teacher to take a course-related test, is participating in one or more special program(s) and for whom this set of test accommodations is prescribed in one or more specific special program plan(s). At the time that a new special program plan is developed for the student, any needed test / instructional accommodations must be specified as a part of that plan. During the life of a plan, a test accommodation may be added or removed.
Note that although a test accommodation may not be permitted for a state assessment program because it nullifies the results, it may be used for daily instruction. However, in order to use a test accommodation for a state assessment program, the test accommodation must be specified in the program plan and should be part of daily instruction. The request for this object must supply the information necessary to identify the specific student and either a specific high-stakes test or a subject area.
SIF_Events are not reported for this object.
Figure 6.13.3-1: TestAccommodation| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| TestAccommodation | This object provides information about test accommodation(s) required for a particular student who is registered to take a particular state test or who is about to be assigned by a teacher to take a course-related test, is participating in one or more special program(s) and for whom this set of test accommodations is prescribed in one or more specific special program plan(s). | |||
@![]() | RefId | M | Unique ID for this set of test accommodations required for a particular student who is participating in a special program and for whom this set of test accommodation(s) is recommended / prescribed for this test administration (specific subject area and level) in a specific special programs plan. | RefIdType |
| StudentPersonalRefId | C | Reference to StudentPersonal object. Typically a vendor is allowed to receive a StateProvinceId or a student's Name, but not both together. The student must be identified by StudentPersonalRefId, or Name and LocalId, or StateProvinceId. | IdRefType | |
| Name | C | The student's name as presented in StudentPersonal object, Name element with a Type of 02 (Current Legal Name). If Type 02 is not available, Type of 04 (Name of Record). Sub-elements to be used: LastName, FirstName, MiddleName. | Name | |
| LocalId | C | The locally assigned identifier for this student. | LocalId | |
| StateProvinceId | C | Reference to the state code identifying the student in the StudentPersonal object, as of the date of the response. | StateProvinceId | |
| StateDistrictId | O | Reference to State code (StateProvinceId for LEAInfo) for the student's district of enrollment as of the date of the response (optional because school might be independent). | StateProvinceId | |
| LEAInfoRefId | O | The RefId for the district to which the student's home school of enrollment belongs as of the date of the response (optional because school might be independent). | IdRefType | |
| SchoolInfoRefId | M | The RefId for the student's home school of enrollment as of the date of the response. | IdRefType | |
| StateSchoolId | O | Reference to State code (StateProvinceId for SchoolInfo) for student's home school of enrollment as of the date of the response (optional because state may not require). | StateProvinceId | |
| GradeLevel | M | Code for the current actual grade placement of the student as of the date of the response from StudentSchoolEnrollment. | GradeLevel | |
| AssessmentRegistrationRefId | C | RefId for the student's registration / assignment to take a particular test (test name, subject area, level, grade level, type) at a particular time or within a particular timeframe. An assessment may also be identified by omitting this element and specifying the whole set (TestAdministration, TestSubjectArea, TestGradeLevel, TestAdministrationDateRange or PlannedTestAdministrationDate, and TestType). | IdRefType | |
| TestAdministration | C | Abbreviated name of the test for which this set of accommodations is to be provided. | xs:token | |
| TestSubjectArea | C | Subject area of the test. Teachers may only supply this element, while a high-stakes test will supply the whole set (TestAdministration, TestSubjectArea, TestGradeLevel, TestAdministrationDateRange or PlannedTestAdministrationDate, and TestType). | xs:token | |
| TestGradeLevel | C | Grade level of the test. | xs:token | |
| TestAdministrationDateRange | C | General date range of the test (e.g. "Spring 2005"). Date is identified by either TestAdministrationDateRange or PlannedTestAdministrationDate | xs:normalizedString | |
| PlannedTestAdministrationDate | C | The date the test is planned to be administered. Should contain the most current known date (Date is needed in order to identify accommodations to be sent—accommodations are date-dependent). | xs:date | |
| TestType | O | Identifies whether the test the student is to take is a standard or alternate. | values:
| |
| AuthorizedActual | M | Indicator - Identifies whether accommodations in this object are authorized or were actually used. | values:
| |
| ActualTestAdministrationDate | O | The date the test was actually administered. | xs:date | |
| StudentProgramAccommodations | O | Container. If the requested student no longer requires any accomodations, this element should be omitted. | ||
| StudentProgramAccommodations/ StudentProgramAccommodation | MR | Identifies a program in which the student participates and the accommodations specified by that program. | List | |
| StudentProgramAccommodations/ StudentProgramAccommodation/ StudentParticipationRefId | O | Reference to the instance of the StudentParticipation object in which the required test accommodation(s) are specified for the date of the test. | IdRefType | |
| StudentProgramAccommodations/ StudentProgramAccommodation/ StudentProgramType | M | |||
| StudentProgramAccommodations/ StudentProgramAccommodation/ StudentProgramType/Code | M | The value specified in the referenced StudentParticipation object in ProgramType | xs:token | |
| StudentProgramAccommodations/ StudentProgramAccommodation/ StudentProgramType/OtherCodeList | O | OtherCodeList | ||
| StudentProgramAccommodations/ StudentProgramAccommodation/ Accommodations | M | List | ||
| StudentProgramAccommodations/ StudentProgramAccommodation/ Accommodations/Accommodation | MR | |||
| StudentProgramAccommodations/ StudentProgramAccommodation/ Accommodations/Accommodation/ Code | M | Identifies the specific accommodation. At least one required if the repeating group is sent. | union of: TestAccommodationTestMaterialType TestAccommodationTestAdministrationType TestAccommodationStudentEquipmentAndTechnologyType TestAccommodationTestResponseType TestAccommodationSchedulingType TestAccommodationSettingType additional values:
| |
| StudentProgramAccommodations/ StudentProgramAccommodation/ Accommodations/Accommodation/ OtherCodeList | O | OtherCodeList | ||
| StudentProgramAccommodations/ StudentProgramAccommodation/ Accommodations/Accommodation/ AccommodationCategory | O | Defines a general category of test accommodation. | ||
| StudentProgramAccommodations/ StudentProgramAccommodation/ Accommodations/Accommodation/ AccommodationCategory/Code | M | values:
| ||
| StudentProgramAccommodations/ StudentProgramAccommodation/ Accommodations/Accommodation/ AccommodationCategory/OtherCodeList | O | OtherCodeList | ||
| StudentProgramAccommodations/ StudentProgramAccommodation/ Accommodations/Accommodation/ SpecialMaterials | M | Accommodation specified requires special materials. Required if the repeating group is sent. | xs:boolean | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
The Student Information Systems Working Group provides maximum interoperability between K-12 applications that need to exchange SIS information such as student, teacher, school, and enrollment using SIF by designing SIF data objects that are easy to understand, implement and extend, and by making the communication between applications as efficient as possible by ensuring that only the minimum required amount of data is exchanged in each transaction.
Click here for non-normative background/supplementary documentation from this group.
This object provides information about a particular attendance code, allows applications to synchronize each other's attendance code tables, or provides a dynamic list of attendance codes.
SIF_Events are reported for this object.
Figure 6.14.1-1: AttendanceCodeInfo| Element/@Attribute | Char | Description | Type | |||||
|---|---|---|---|---|---|---|---|---|
| AttendanceCodeInfo | This object provides information about a particular attendance code, allows applications to synchronize each other's attendance code tables, or provides a dynamic list of attendance codes. | |||||||
@![]() | RefId | M | The ID (GUID) that uniquely identifies this AttendanceCodeInfo entity. | RefIdType | ||||
| @ | SchoolInfoRefId | M | The ID (GUID) that identifies the school where the attendance code is used. | IdRefType | ||||
| AttendanceCode | M | Locally defined code for attendance. | xs:token | |||||
| AttendanceType | M | Type of attendance code. | values:
| |||||
| AttendanceStatus | M | Excused status of the attendance code. | values:
| |||||
| Description | O | The text description of the attendance code. | xs:normalizedString | |||||
| AbsenceValue | O | The amount of absence represented by AttendanceCode, up to three decimal places. | xs:decimal
| |||||
| UsedForDailyAttendance | M | Is this attendance code used for daily attendance? | values:
| |||||
| UsedForPeriodAttendance | M | Is this attendance code used for period attendance? | values:
| |||||
| SIF_Metadata | O | SIF_Metadata | ||||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
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.
Figure 6.14.2-1: CalendarDate| Element/@Attribute | Char | Description | Type | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 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. | |||||||||
@![]() | Date | M | A specific school day that occurs within the school year. | xs:date | ||||||
@![]() | CalendarSummaryRefId | M | The ID (GUID) of the calendar summary in which this calendar date is. | IdRefType | ||||||
| @ | SchoolInfoRefId | M | The ID (GUID) of the school for which this calendar information is being reported. | IdRefType | ||||||
| @ | SchoolYear | M | School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2007" for the 2006-07 school year). | SchoolYear | ||||||
| CalendarDateType | M | Calendar date type information. | ||||||||
| CalendarDateType/Code | M | Code indicating the type of school day. | union of: NCES0084CalendarEventType additional values:
| |||||||
| CalendarDateType/OtherCodeList | O | OtherCodeList | ||||||||
| CalendarDateNumber | O | Order in which the calendar date falls within the school calendar. | xs:unsignedInt | |||||||
| StudentAttendance | O | Information describing how the day relates to student attendance. | ||||||||
| StudentAttendance/CountsTowardAttendance | M | Designates whether this date should be counted toward student attendance. | values:
| |||||||
| 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 | xs:decimal
| |||||||
| TeacherAttendance | O | Information describing how the day relates to teacher attendance. | ||||||||
| TeacherAttendance/CountsTowardAttendance | M | Designates whether this date should be counted toward teacher attendance. | values:
| |||||||
| TeacherAttendance/AttendanceValue | M | Amount of the school day in which the teacher should be in attendance (format is x.x; a teacher who should be in attendance a full day would be represented as 1.0). | xs:decimal
| |||||||
| AdministratorAttendance | O | Information describing how the day relates to administrator attendance. | ||||||||
| AdministratorAttendance/CountsTowardAttendance | M | Designates whether this date should be counted toward administrator attendance. | values:
| |||||||
| AdministratorAttendance/AttendanceValue | M | Amount of the school day in which the administrator should be in attendance (format is x.x; an administrator who should be in attendance a full day would be represented as 1.0). | xs:decimal
| |||||||
| SIF_Metadata | O | SIF_Metadata | ||||||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
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.
Figure 6.14.3-1: CalendarSummary| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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. | |||
@![]() | RefId | M | The ID (GUID) of the calendar to which this information relates. | RefIdType |
| @ | SchoolInfoRefId | M | The ID (GUID) of the school for which this calendar information is being reported. | IdRefType |
| @ | SchoolYear | M | School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2007" for the 2006-07 school year). | SchoolYear |
| LocalId | M | The locally assigned identifier for this calendar. | LocalId | |
| Description | O | Textual description of the school calendar. | xs:string | |
| DaysInSession | M | 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 | |
| StartDate | O | 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 | |
| EndDate | O | 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 | |
| FirstInstructionDate | O | The first day of student instruction. | xs:date | |
| LastInstructionDate | O | 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 | |
| GraduationDate | O | Date of graduation ceremony. | GraduationDate | |
| InstructionalMinutes | O | The total number of instructional minutes for this calendar for the school year. | xs:unsignedInt | |
| MinutesPerDay | O | The number of minutes in the day in which the school is normally in session. | xs:unsignedInt | |
| GradeLevels | O | Collection of grade levels applicable to this school calendar. | GradeLevels | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object provides information on incidents involving violence, weapons, drugs, and other safety and discipline issues.
SIF_Events are reported for this object.
Figure 6.14.4-1: DisciplineIncident| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| DisciplineIncident | This object provides information on incidents involving violence, weapons, drugs, and other safety and discipline issues. | |||
@![]() | RefId | M | The unique identifier (GUID) of this discipline incident. | RefIdType |
| @ | SchoolYear | M | School year in which the incident occurred, and for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2007" for the 2006-07 school year). | SchoolYear |
| AgencyReporting | M | The ID (GUID) of the school or LEA reporting the incident, usually the school in which the incident occurred. | IdRefType | |
| @ | SIF_RefObject | M | The name of the SIF object to which the GUID relates. | values:
|
| IncidentNumber | M | The locally-defined unique identifier (within the school or school district) to identify this specific incident or occurrence. | xs:normalizedString | |
| IncidentDate | M | The date when the incident occurred. | xs:date | |
| IncidentTime | M | The time when the incident occurred. | xs:time | |
| @ | Type | M | Identifies whether or not the incident occurred during school hours. | SAFETYTimeType |
| IncidentLocation | M | The locally-defined identifier or description of the location where the incident occurred. | xs:string | |
| @ | Type | M | Identifies where the incident occurred. | NCES1040IncidentLocationType |
| IncidentLocationRefId | O | GUID of the SIF object that relates to the school or location where the incident occurred, if applicable. | IdRefType | |
| @ | SIF_RefObject | M | The name of the SIF object to which the GUID relates. | values:
|
| IncidentCost | O | If the incident resulted in a quantifiable monetary loss for any entity involved, identify and record the value of that loss. Cost may be reported by specific monetary amount or range. | xs:string | |
| IncidentReporter | M | Information regarding the individual who reported the incident. | ||
| @ | Type | M | Identifies the type of individual who reported the incident. | NCES1043ReporterDescriptionType |
| IncidentReporter/Name | O | The name of the individual reporting the incident. | Name | |
| IncidentReporter/SIF_RefId | O | GUID of the SIF object that relates to the person who reported the incident, if applicable. | IdRefType | |
| @ | SIF_RefObject | M | The name of the SIF object to which the GUID relates. | values:
|
| RelatedToList | O | List of categories to which the incident is related. | List | |
| RelatedToList/RelatedTo | OR | Identifies if incident was related to a specific category. | NCES1048SecondaryIncidentBehaviorType | |
| WeaponTypeList | C | List of weapons involved in the incident. If the incident involves weapons, the element must have a value. | List | |
| WeaponTypeList/WeaponType | MR | Identifies the type of weapon used during an incident. | NCES1045WeaponTypeType | |
| IncidentCategory | M | The category or description for this incident. | ||
| IncidentCategory/Code | M | Identifies the type of incident being reported. | NCES1049IncidentCodeType | |
| IncidentCategory/OtherCodeList | O | List of other codes or strings that crosswalk to or serve as translations of the Code element. If Code changes and OtherCode elements are supported, both Code and all associated OtherCode elements must be present. | OtherCodeList | |
| OffenderList | M | List of offenders. | List | |
| OffenderList/Offender | MR | Information regarding the offender(s)/perpetrator(s). | ||
| @ | Type | M | Identifies the type of offender involved in the incident. | NCES1043ReporterDescriptionType |
| OffenderList/Offender/Name | M | The name of the offender. | Name | |
| OffenderList/Offender/SIF_RefId | C | If the Offender Type attribute identifies the offender as a Student or Staff Member, then this element should contain the ID (GUID) of the student or staff to whom this information relates. | IdRefType | |
| @ | SIF_RefObject | M | SIF Object to which the SIFRefId relates. | values:
|
| OffenderList/Offender/Injury | M | Identifies whether or not this specific offender was physically injured, and if so, identifies whether the injury was major or minor. | NCES1046IncidentInjuryType | |
| OffenderList/Offender/ManifestationDetermination | O | Information relating to a manifestation determination meeting. | ||
| OffenderList/Offender/ManifestationDetermination/ MeetingHeld | O | Was a manifestation determination meeting held for this student regarding this offense? | values:
| |
| OffenderList/Offender/ManifestationDetermination/ MeetingDate | O | Date of the manifestation determination meeting, if applicable. | xs:date | |
| OffenderList/Offender/ManifestationDetermination/ DueToDisability | O | Did the team determine that the offense was a manifestation of the student's disability? | values:
| |
| OffenderList/Offender/ActionList | O | List of actions taken. | List | |
| OffenderList/Offender/ActionList/ Action | OR | Information regarding the action(s) taken against the offender in response to the incident. | ||
| OffenderList/Offender/ActionList/ Action/Code | M | Specific action taken toward this offender. | NCES1054DisciplinaryActionType | |
| OffenderList/Offender/ActionList/ Action/OtherCodeList | O | List of other codes or strings that crosswalk to or serve as translations of the Code element. If Code changes and OtherCode elements are supported, both Code and all associated OtherCode elements must be present. | OtherCodeList | |
| OffenderList/Offender/ActionList/ Action/StartDate | M | The date on which the disciplinary action begins. | xs:date | |
| OffenderList/Offender/ActionList/ Action/EndDate | M | The date through which the disciplinary action is in effect, inclusive. | xs:date | |
| OffenderList/Offender/ActionList/ Action/Duration | M | Identifies the length, in school days, of the disciplinary action. Note: decimal places may be used for fractions of school days. | xs:decimal | |
| OffenderList/Offender/ActionList/ Action/ZeroTolerance | M | Identifies whether or not this action taken against a student was imposed as a consequence of state or local zero tolerance policies. | values:
| |
| OffenderList/Offender/ActionList/ Action/FullYearExpulsion | M | Identifies whether or not the action involved an expulsion with or without services for a period of one full year (i.e., 365 days). | values:
| |
| OffenderList/Offender/ActionList/ Action/ShortenedExpulsion | M | Identifies whether or not the action involved an expulsion with or without services that is shortened to a term of less than one year by the superintendent or chief administrator of a school district. | values:
| |
| OffenderList/Offender/ActionList/ Action/PoliceNotification | M | Identifies whether or not the offender's action included notification of local law enforcement, regardless of whether official action was taken. | values:
| |
| OffenderList/Offender/ActionList/ Action/Arrest | M | Identifies whether or not the offender was arrested. | values:
| |
| OffenderList/Offender/ActionList/ Action/AlternativeEducation | M | Identifies whether or not the offender was assigned to an Alternative Education facility. | values:
| |
| VictimList | C | List of victim(s) if the incident is directed toward specific persons or their property. | List | |
| VictimList/Victim | MR | Information regarding the victim(s) in the incident. | ||
| @ | Type | M | Identifies the type of individual victimized in the incident. | NCES1043ReporterDescriptionType |
| VictimList/Victim/Name | O | The name of the victim. | Name | |
| VictimList/Victim/SIF_RefId | C | If the Victim Type attribute identifies the victim as a Student or Staff Member, then this element should contain the ID (GUID) of the student or staff to whom this information relates. | IdRefType | |
| @ | SIF_RefObject | M | SIF Object to which the SIFRefId relates. | values:
|
| VictimList/Victim/Injury | M | Identifies whether or not this specific victim was physically injured, and if so, identify whether the injury was major or minor. | NCES1046IncidentInjuryType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information about a school district or other Local Educational Agency (LEA).
SIF_Events are reported for this object.
Figure 6.14.5-1: LEAInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| LEAInfo | This object contains information about a school district or other Local Educational Agency (LEA). | |||
@![]() | RefId | M | The GUID of the LEA whose information this is. | RefIdType |
| LocalId | M | The locally-assigned identifier for this LEA. | LocalId | |
| StateProvinceId | O | The state-assigned identifier for this LEA. | StateProvinceId | |
| NCESId | O | The NCES-assigned identifier for this LEA. | NCESId | |
| LEAName | M | Name of LEA. | LEAName | |
| LEAURL | O | URL for the LEA. | xs:anyURI | |
| EducationAgencyType | O | The classification of the education agency within the geographic boundaries of a state according to the level of administrative and operational control. | ||
| EducationAgencyType/Code | M | Code indicating the operational/administrative level. | NCES1151AgencyTypeType | |
| EducationAgencyType/OtherCodeList | O | OtherCodeList | ||
| LEAContactList | O | 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 | ||
| PhoneNumberList | O | The LEA's phone number(s). | PhoneNumberList | |
| AddressList | O | The LEA's address(es). | AddressList | |
| IdentificationInfoList | O | Other identification information associated with an LEA, such as the locally-defined code/identifier, etc. | IdentificationInfoList | |
| GradeLevels | O | Collection of grade levels offered in this LEA. | GradeLevels | |
| OperationalStatus | O | Operational condition of an LEA. | OperationalStatus | |
| CongressionalDistrict | O | Number for the US congressional district where the LEA is located. | CongressionalDistrict | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
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.
Figure 6.14.6-1: RoomInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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. | |||
@![]() | RefId | M | GUID that identifies this room. | RefIdType |
| @ | SchoolInfoRefId | M | GUID that identifies the school that this room belongs to. | IdRefType |
| RoomNumber | M | Room number as presented to the user/application. | xs:token | |
| StaffList | O | List | ||
| StaffList/StaffPersonalRefId | MR | GUID that identifies the staff person assigned to this room (e.g. the homeroom teacher). | IdRefType | |
| Description | O |
Friendly name that can be assigned to the room (e.g. | xs:normalizedString | |
| Building | O | 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 | |
| HomeroomNumber | O | When a room is designated as a homeroom it may have a different number. Usually blank when room is not a homeroom. | xs:normalizedString | |
| Size | O | Size in square feet. | xs:decimal | |
| Capacity | O | Number of persons (usually students) that this room can hold. | xs:unsignedInt | |
| PhoneNumber | O | Phone number for the room | PhoneNumber | |
| RoomTypeRefId | O | GUID that identifies the room type assigned to this room. | IdRefType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object identifies the type of room, i.e. gym, cafeteria, standard classroom, etc.
SIF_Events are reported for this object.
Figure 6.14.7-1: RoomType| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| RoomType | This object identifies the type of room, i.e. gym, cafeteria, standard classroom, etc. | |||
@![]() | RefId | M | GUID that identifies this room type. | RefIdType |
| @ | SchoolInfoRefId | M | GUID that identifies the school that this room type belongs to. | IdRefType |
| Description | M | Description of the room type. | xs:normalizedString | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object is for course information.
SIF_Events are reported for this object.
Figure 6.14.8-1: SchoolCourseInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SchoolCourseInfo | This object is for course information. | |||
@![]() | RefId | M | The ID (GUID) that uniquely identifies the school course. | RefIdType |
| @ | SchoolInfoRefId | The ID (GUID) that identifies the school where the course is offered. | IdRefType | |
| @ | SchoolYear | M |
School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g. | SchoolYear |
| CourseCode | M | School-defined local code for the course. | CourseCode | |
| StateCourseCode | O | State-defined standard course code used to report information about courses. | StateCourseCode | |
| DistrictCourseCode | O | The corresponding district course code. | DistrictCourseCode | |
| SubjectAreaList | O | Subject matter areas. | SubjectAreaList | |
| CourseTitle | M | Title of the course. | CourseTitle | |
| Description | O | Textual description of the course. | xs:normalizedString | |
| InstructionalLevel | O | An indication of the general nature and difficulty of instruction provided. | InstructionalLevel | |
| CourseCredits | O | The number of credits awarded upon course completion. | CourseCredits | |
| CoreAcademicCourse | O | Does the course meet the state definition of a core academic course? | values:
| |
| GraduationRequirement | O | Does the state require that the course be completed for graduation? | GraduationRequirement | |
| Department | O | Department with jurisdiction over this course. | xs:normalizedString | |
| SCEDCode | O | Course code from the School Codes for the Exchange of Data that describes the course content. NOTE: SCED codes currently only apply to secondary courses. This element may be sent with | SCEDCode | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information about the school.
SIF_Events are reported for this object.
Figure 6.14.9-1: SchoolInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SchoolInfo | This object contains information about the school. | |||
@![]() | RefId | M | The GUID that identifies this school. | RefIdType |
| LocalId | O | The locally-assigned identifier for this school. | LocalId | |
| StateProvinceId | O | The state-assigned identifier for this school. | StateProvinceId | |
| NCESId | O | The NCES-assigned identifier for this school. | NCESId | |
| SchoolName | M | Name of school. | xs:normalizedString | |
| LEAInfoRefId | O | The ID (GUID) that references the school district of which this school is a member. | IdRefType | |
| OtherLEA | O | The ID (GUID) of another related education agency, such as a regional service agency. | IdRefType | |
| @ | SIF_RefObject | M | The name of the object reference. | values:
|
| SchoolType | O | An indication of the level of the educational institution. | NCES0031SchoolLevelType | |
| SchoolFocusList | O | List | ||
| SchoolFocusList/SchoolFocus | MR | The type of educational institution as classified by its focus. | values:
| |
| SchoolURL | O | URL for the school. | SchoolURL | |
| PrincipalInfo | O | Information about the school's principal. | ||
| PrincipalInfo/ContactName | M | The name of the principal. | xs:normalizedString | |
| PrincipalInfo/ContactTitle | O | The principal's title. | xs:normalizedString | |
| SchoolContactList | O | SchoolContactList | ||
| AddressList | O | The school's addresses. | AddressList | |
| PhoneNumberList | O | The school's phone numbers. | PhoneNumberList | |
| IdentificationInfoList | O | Other identification information associated with a school, such as the locally-defined code/identifier, etc. | IdentificationInfoList | |
| SessionType | O | Code that specifies the session type. | NCES0266SessionTypeType | |
| GradeLevels | O | Collection of grade levels offered in this school. | GradeLevels | |
| Title1Status | O | Status of the school's Title I eligibility. Certain schools are designated under appropriate state and federal regulations as being eligible for participation in programs authorized by Title I of Public Law 103-382. | values:
| |
| OperationalStatus | O | Operational condition of a school. | OperationalStatus | |
| CongressionalDistrict | O | Number for the US congressional district of the school location. | CongressionalDistrict | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object provides information about the section—the specific time period a session of the course meets.
SIF_Events are reported for this object.
Figure 6.14.10-1: SectionInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SectionInfo | This object provides information about the section—the specific time period a session of the course meets. | |||
@![]() | RefId | M | The ID (GUID) that uniquely identifies this section entity. | RefIdType |
| @ | SchoolCourseInfoRefId | M | The ID (GUID) that identifies the course being taught in this section. | IdRefType |
| @ | SchoolYear | M |
School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g. | SchoolYear |
| LocalId | M | The locally-assigned identifier for this course section. | LocalId | |
| Description | O | Description of the course section. | xs:normalizedString | |
| ScheduleInfoList | M | List | ||
| ScheduleInfoList/ScheduleInfo | MR | The schedule-related information for a section repeating for each term in which the section is scheduled. The TermInfoRefId attribute value should not repeat within an instance of the object (ScheduleInfo nodes should not have duplicate terms). | ||
| @ | TermInfoRefId | M | The ID (GUID) of the term to which this schedule information relates. | IdRefType |
| ScheduleInfoList/ScheduleInfo/ TeacherList | O | List | ||
| ScheduleInfoList/ScheduleInfo/ TeacherList/StaffPersonalRefId | MR | The ID (GUID) of the teacher. | IdRefType | |
| ScheduleInfoList/ScheduleInfo/ SectionRoomList | O | List | ||
| ScheduleInfoList/ScheduleInfo/ SectionRoomList/RoomInfoRefId | MR | The ID (GUID) of the room in which this section is taught. | IdRefType | |
| ScheduleInfoList/ScheduleInfo/ MeetingTimeList | O | List | ||
| ScheduleInfoList/ScheduleInfo/ MeetingTimeList/MeetingTime | MR | Time(s) this section meets. | MeetingTime | |
| MediumOfInstruction | O | Medium through which the student receives instructional communication from the teacher. | ||
| MediumOfInstruction/Code | M | Code representing the medium of instruction. | NCES0209MediumOfInstructionType | |
| MediumOfInstruction/OtherCodeList | O | OtherCodeList | ||
| LanguageOfInstruction | O | Language in which the section is taught. | ||
| LanguageOfInstruction/Code | M | Code representing the language of instruction. | NISOZ3953LanguageCodesType | |
| LanguageOfInstruction/OtherCodeList | O | OtherCodeList | ||
| LocationOfInstruction | O | Description of the location in which the section is taught. | ||
| LocationOfInstruction/Code | M | Code representing the location of instruction. | NCES0171ReceivingLocationOfInstructionServiceType | |
| LocationOfInstruction/OtherCodeList | O | OtherCodeList | ||
| SummerSchool | O | Is this a summer school assignment? | values:
| |
| SchoolCourseInfoOverride | O | Optional overrides of the course information for this section. | ||
| @ | Override | M | Designates whether or not SchoolCourseInfo information has been overridden with different values for this section. | values:
|
| SchoolCourseInfoOverride/ CourseCode | O | Override of the school-defined course code for this section. | CourseCode | |
| SchoolCourseInfoOverride/ StateCourseCode | O | Override of the state-defined course code for this section. | StateCourseCode | |
| SchoolCourseInfoOverride/ DistrictCourseCode | O | Override of the district course code for this section. | DistrictCourseCode | |
| SchoolCourseInfoOverride/ SubjectArea | O | Override of the subject matter area for this section. | SubjectArea | |
| SchoolCourseInfoOverride/ CourseTitle | O | Override of the course title for this section. | CourseTitle | |
| SchoolCourseInfoOverride/ InstructionalLevel | O | Override of the instructional level for this section. | InstructionalLevel | |
| SchoolCourseInfoOverride/ CourseCredits | O | Override of the course credits for this section. | CourseCredits | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
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.
Figure 6.14.11-1: StaffAssignment| Element/@Attribute | Char | Description | Type | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| StaffAssignment | This object defines information related to a staff member's assignment(s); commonly, this will be a school assignment. | |||||||||
@![]() | RefId | M | The GUID that uniquely identifies a particular staff assignment. | RefIdType | ||||||
| @ | SchoolInfoRefId | M | The ID (GUID) that identifies the school where the staff member is assigned. | IdRefType | ||||||
| @ | SchoolYear | M |
School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., | SchoolYear | ||||||
| @ | StaffPersonalRefId | M | ID (GUID) of this staff member, as represented in the StaffPersonal object. | IdRefType | ||||||
| Description | O | Short assignment description | xs:normalizedString | |||||||
| PrimaryAssignment | M | Is this the staff member's primary assignment? Note: There must be one and only one instance of the object with a | values:
| |||||||
| JobStartDate | O | This is the date from which the staff assignment is valid (inclusive). | xs:date | |||||||
| JobEndDate | O | This is the date through which the staff assignment is valid (inclusive). | xs:date | |||||||
| JobFTE | O | 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
| |||||||
| JobFunction | O | The purpose of the activities as related to students | ||||||||
| JobFunction/Code | M | Code representing the type of job function. | NCES0568FunctionTypeType | |||||||
| JobFunction/OtherCodeList | O | OtherCodeList | ||||||||
| TeachingAssignment | O | The teacher field taught by the individual | ||||||||
| TeachingAssignment/Code | M | Code representing the type of teaching assignment. | union of: NCES0436TeachingAssignmentType additional values:
| |||||||
| TeachingAssignment/OtherCodeList | O | OtherCodeList | ||||||||
| GradeLevels | O | An indication of the grade level(s) the individual is assigned | GradeLevels | |||||||
| ItinerantTeacher | O | Is this staff itinerant for this assignment? | values:
| |||||||
| InstructionalLevel | O | An indication of the general nature of instruction provided throughout a course. | InstructionalLevel | |||||||
| EmployeePersonalRefId | O | A GUID referencing an EmployeePersonal object to be able to establish a link between HR employee objects and SIS staff objects. | IdRefType | |||||||
| SIF_Metadata | O | SIF_Metadata | ||||||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
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.
Figure 6.14.12-1: StaffPersonal| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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. | |||
@![]() | RefId | M | The GUID of the staff member. | RefIdType |
| LocalId | M | The locally-assigned identifier for this staff member. | LocalId | |
| StateProvinceId | O | The state-assigned identifier for this staff member. | StateProvinceId | |
| ElectronicIdList | O | Electronic identifier(s) associated with this entity. | ElectronicIdList | |
| OtherIdList | O | Lists all "other" identifiers associated with the staff member. | List | |
| OtherIdList/OtherId | MR | Lists an "other" identifier associated with the staff member. | xs:normalizedString | |
| @ | Type | M | Code that defines the type of this other ID. | NCES0147IdentificationSystemType subset:
|
| Name | M |
Name of the staff member. Note: Type value of | NameOfRecordType | |
| OtherNames | O | Previous, alternate or other names or aliases associated with the staff member. | OtherNames | |
| Demographics | O | This element contains information related to staff member demographics. | Demographics | |
| Title | O | The staff member's title. | xs:normalizedString | |
| AddressList | O | The staff member's address(es). | AddressList | |
| PhoneNumberList | O | The staff member's phone number(s). | PhoneNumberList | |
| EmailList | O | The staff member's e-mail address(es). | EmailList | |
| EmployeePersonalRefId | O | Allows for a linkage to the HR/Fin EmployeePersonal object. | IdRefType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object provides information on co-curricular or extra-curricular activities (e.g., student organizations, intramural and interscholastic athletes, publications, band, orchestra, and service activities) in which students may participate.
SIF_Events are reported for this object.
Click here for non-normative background/supplementary documentation on this object.
Figure 6.14.13-1: StudentActivityInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentActivityInfo | Co-curricular or extra-curricular activities (e.g., student organizations, intramural and interscholastic athletes, publications, band, orchestra, and service activities) in which students may participate. | |||
@![]() | RefId | M | The ID (GUID) that uniquely identifies the instance of the object. | RefIdType |
| Title | M | Name of the co-curricular or extra-curricular activity. | xs:normalizedString | |
| Description | O | The description of the co-curricular or extra-curricular activity. | xs:normalizedString | |
| StudentActivityType | M | Information regarding the co-curricular or extra-curricular activity. | ||
| StudentActivityType/Code | M | Code identifying the co-curricular or extra-curricular activity. | NCES0679ActivityInvolvementCodeType subset:
| |
| StudentActivityType/OtherCodeList | O | OtherCodeList | ||
| StudentActivityLevel | O | A description of the separation of level in the activity (e.g., Varsity, Junior Varsity, Honors). | xs:normalizedString | |
| GradeLevels | O | Collection of grade levels applicable to this co-curricular or extra-curricular activity. | GradeLevels | |
| CurricularStatus | O | An indication of the degree to which an activity is related to a student's curriculum. | NCES0024ActivityTypeType | |
| Location | O | Location where the activity takes place. | Location | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
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.
Click here for non-normative background/supplementary documentation on this object.
Figure 6.14.14-1: StudentActivityParticipation| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentActivityParticipation | The co-curricular or extra-curricular activity in which the student participates. | |||
@![]() | RefId | M | GUID that uniquely identifies this instance of the object. | RefIdType |
| @ | StudentPersonalRefId | M | GUID that identifies the student participating in the activity. | IdRefType |
| @ | StudentActivityInfoRefId | M | GUID that identifies the activity in which the student participates. | IdRefType |
| @ | SchoolYear | M | School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g. 2009 for the 2008-09 school year). | SchoolYear |
| ParticipationComment | O | Comment related to the student's participation in the activity. | xs:string | |
| StartDate | O | This is the date which the activity participation is valid (inclusive). | xs:date | |
| EndDate | O | 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 | |
| Role | O | Specific role the student plays in the activity (e.g., band leader, student body president). | xs:normalizedString | |
| RecognitionList | O | 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:token | |
| @ | Code | M | NCES0674HonorsTypeType | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
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.
Figure 6.14.15-1: StudentAttendanceSummary| Element/@Attribute | Char | Description | Type | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 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. | |||||||||
@![]() | StudentPersonalRefId | M | The ID (GUID) of the student for whom this attendance information is being reported. | IdRefType | ||||||
@![]() | SchoolInfoRefId | M | The ID (GUID) of the school for which this attendance information is being reported. | IdRefType | ||||||
@![]() | SchoolYear | M | School year for which the information is applicable. | SchoolYear | ||||||
| StartDate | M | Starting date of this attendance reporting period. | xs:date | ||||||
| StartDay | M | Number of the school day represented in StartDate. | xs:unsignedInt | |||||||
| EndDate | M | Ending date of this attendance reporting period. | xs:date | ||||||
| EndDay | M | Number of the school day represented in EndDate. | xs:unsignedInt | |||||||
| Resident | M | An indication as to whether or not the student's legal residence was within the boundaries of the school during the time between the StartDate and EndDate, inclusive. | values:
| |||||||
| FTE | O | 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
| |||||||
| DaysAttended | M | The number of days the student attended school when school was in session between the StartDate and EndDate, inclusive. | xs:decimal | |||||||
| ExcusedAbsences | M | 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 | |||||||
| UnexcusedAbsences | M | 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 | |||||||
| DaysTardy | O | The number of days the student was tardy when school was in session between the StartDate and EndDate, inclusive. | xs:decimal | |||||||
| DaysInMembership | M | 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_Metadata | O | SIF_Metadata | ||||||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information regarding a contact person for a student.
Note: At least one of the child elements of ContactFlags must have a Yes value.
Do not publish the StudentContact instance if one of the child elements does not have a Yes value.
SIF_Events are reported for this object.
Figure 6.14.16-1: StudentContact| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentContact | This object contains information regarding a contact person for a student. Note: At least one of the child elements of | |||
@![]() | RefId | M | The GUID of this contact. | RefIdType |
| @ | StudentPersonalRefId | M | The GUID of the student whose contact this is. | IdRefType |
| LocalId | O | The locally-assigned identifier for this contact. 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 StudentContact instance with the same LocalId. | LocalId | |
| OtherIdList | O | Lists all "other" identifiers associated with the contact. | List | |
| OtherIdList/OtherId | MR | Lists an "other" identifier associated with the contact. | xs:normalizedString | |
| @ | Type | M | Code that defines the type of this other ID. | NCES0147IdentificationSystemType subset:
|
| Name | M |
The name of the contact. Note: Type attribute value of | NameOfRecordType | |
| OtherNames | O | Previous, alternate or other names or aliases associated with the contact. | OtherNames | |
| Demographics | O | Demographic information about the contact. | Demographics | |
| AddressList | O | The contact's address(es). | AddressList | |
| PhoneNumberList | O | The contact's phone number(s). | PhoneNumberList | |
| EmailList | O | The contact's e-mail address(es). | EmailList | |
| Relationship | O | Defines the relationship of the contact to the student. | Relationship | |
| EmployerType | O | Code that defines the employer type. | NCES0614EmployerTypeType | |
| EducationalLevel | O | The highest level of education completed by the contact person. | EducationalLevel | |
| ContactFlags | M |
Contains Yes/No characteristics of the contact person's role. Provide a | ||
| ContactFlags/ParentLegalGuardian | C | Does the individual have parental or legal guardianship responsibility for the student? | values:
| |
| ContactFlags/PickupRights | C | This element tells whether or not the contact has pickup rights. | values:
| |
| ContactFlags/LivesWith | C | Does the student live with this contact? | values:
| |
| ContactFlags/AccessToRecords | C | Does this contact have access to the student's records? | values:
| |
| ContactFlags/EmergencyContact | C | Should this contact be notified in case of emergency? | values:
| |
| ContactFlags/HasCustody | C | Does this contact have or share custody of the student? | values:
| |
| ContactFlags/DisciplinaryContact | C | Is this person to be contacted in case of disciplinary action? | values:
| |
| ContactFlags/PrimaryCareProvider | C | Does this person provide daily living or personal assistance to the student? | values:
| |
| ContactSequence | O | Number indicating the order in which the person should be contacted. | xs:unsignedInt | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
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.
Figure 6.14.17-1: StudentDailyAttendance| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentDailyAttendance | This object provides daily attendance information for a particular student in a particular school on a particular date. | |||
@![]() | StudentPersonalRefId | M | The ID (GUID) of the student for whom this attendance information is being reported. | IdRefType |
@![]() | SchoolInfoRefId | M | The ID (GUID) of the school for which this attendance information is being reported. | IdRefType |
@![]() | Date | M | The calendar date to which this attendance information relates. | xs:date |
| @ | SchoolYear | M |
School year for which this enrollment is applicable, expressed as the four-digit year in which the school year
ends (e.g. | SchoolYear |
| AttendanceCodeInfoRefId | M | The ID (GUID) of the locally-defined daily attendance code information. | IdRefType | |
| TimeIn | O | The time the student entered or returned to school. | xs:time | |
| TimeOut | O | The time the student left school. | xs:time | |
| AttendanceNote | O | Note related to this particular attendance. | xs:normalizedString | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains all the personal information related to the student.
SIF_Events are reported for this object.
Figure 6.14.18-1: StudentPersonal| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentPersonal | This object contains all the personal information related to the student. | |||
@![]() | RefId | M | The GUID of the student. | RefIdType |
| AlertMessages | O | List | ||
| AlertMessages/AlertMessage | MR | This is an alert message that is associated with the student. | xs:string | |
| @ | Type | M | This attribute specifies what type of alert message this is. | values:
|
| MedicalAlertMessages | O | List | ||
| MedicalAlertMessages/MedicalAlertMessage | MR | Medical alert associated with the student. | xs:string | |
| @ | Severity | M | The level of severity of this medical alert. | values:
|
| LocalId | M | The locally-assigned identifier for this student. | LocalId | |
| StateProvinceId | O | The state-assigned identifier for this student. | StateProvinceId | |
| ElectronicIdList | O | Electronic identifier(s) associated with this entity. | ElectronicIdList | |
| OtherIdList | O | Lists all "other" identifiers associated with the student. | List | |
| OtherIdList/OtherId | MR | Lists an "other" identifier associated with the student. | xs:normalizedString | |
| @ | Type | M | Code that defines the type of this other ID. | NCES0147IdentificationSystemType subset:
|
| Name | M |
Name of the student. Note: Type value of | NameOfRecordType | |
| OtherNames | O | Previous, alternate or other names or aliases associated with the student. | OtherNames | |
| Demographics | O | This element contains information related to student demographics. | Demographics | |
| AddressList | O | The student's address(es) | AddressList | |
| PhoneNumberList | O | The student's phone number(s). | PhoneNumberList | |
| EmailList | O | The student's e-mail address(es). | EmailList | |
| ProjectedGraduationYear | O | Currently projected graduation year. | ProjectedGraduationYear | |
| OnTimeGraduationYear | O | First projected graduation year, usually determined when student is accepted into 9th grade. | OnTimeGraduationYear | |
| GraduationDate | O | Date student officially graduated from secondary education. | GraduationDate | |
| MostRecent | O | 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/SchoolLocalId | O | 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 | LocalId | |
| MostRecent/GradeLevel | O | The current or most recent grade level of the student in the district. | GradeLevel | |
| AcceptableUsePolicy | O | Does the student have a current signed Acceptable Use Policy document for system access? | values:
| |
| IDEA | O | IDEA | ||
| Migrant | O | Migrant | ||
| Title1 | O | Title1 | ||
| GiftedTalented | O | GiftedTalented | ||
| EconomicDisadvantage | O | EconomicDisadvantage | ||
| ELL | O | ELL | ||
| Homeless | O | Homeless | ||
| Section504 | O | Section504 | ||
| VocationalConcentrator | O | VocationalConcentrator | ||
| Immigrant | O | Immigrant | ||
| NeglectedDelinquent | O | NeglectedDelinquent | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information about the student's picture.
SIF_Events are reported for this object.
Figure 6.14.19-1: StudentPicture| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentPicture | This object contains information about the student's picture. | |||
@![]() | StudentPersonalRefId | M | This is the GUID of the student whose picture this is. | IdRefType |
| @ | SchoolYear | M |
School year for which this enrollment is applicable, expressed as the four-digit year in which the school year
ends (e.g. | SchoolYear |
| PictureSource | M | 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 | |
| @ | Type | M | The way the picture is specified. | values:
|
| OKToPublish | O | Can the picture be published? | values:
| |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
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=Home
and TimeFrame=Current
for the time interval between EntryDate and ExitDate, inclusive.
Effective in version 2.0, 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 pre-2.0 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. For more information, please refer to the supporting documentation.
SIF_Events are reported for this object.
Click here for non-normative background/supplementary documentation on this object.
Figure 6.14.20-1: StudentSchoolEnrollment| Element/@Attribute | Char | Description | Type | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 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
Effective in version 2.0, agents are required to re-publish a When the object is re-published, it must contain all the data in the object that is supported by the publisher. For more information, please refer to the supporting documentation. | |||||||||
@![]() | RefId | M | The ID (GUID) that uniquely identifies a particular enrollment. | RefIdType | ||||||
| @ | StudentPersonalRefId | M | The ID (GUID) of the student to whom this information is linked. | IdRefType | ||||||
| @ | SchoolInfoRefId | M | The ID (GUID) of the school to which this enrollment applies. | IdRefType | ||||||
| @ | MembershipType | M | The type of this enrollment as it relates to the school identified in SchoolInfoRefId. | values:
| ||||||
| @ | TimeFrame | M | The timeframe of the enrollment based on the | values:
| ||||||
| @ | SchoolYear | M |
School year for which this enrollment is applicable, expressed as the four-digit year in which the school year ends (e.g. | SchoolYear | ||||||
| EntryDate | M | The date from when this enrollment is valid. | xs:date | |||||||
| EntryType | O | |||||||||
| EntryType/Code | M | Code indicating the type of entry for this enrollment | NCES0619EntryTypeType | |||||||
| EntryType/OtherCodeList | O | OtherCodeList | ||||||||
| GradeLevel | O | Grade or academic level of student. | GradeLevel | |||||||
| Homeroom | O | Homeroom for this enrollment. | IdRefType | |||||||
| @ | SIF_RefObject | M | The name of the object referenced. | values:
| ||||||
| Advisor | O | Staff member assigned as an advisor. | IdRefType | |||||||
| @ | SIF_RefObject | M | The name of the object referenced. | values:
| ||||||
| Counselor | O | Staff member assigned as an advisor. | IdRefType | |||||||
| @ | SIF_RefObject | M | The name of the object referenced. | values:
| ||||||
| Calendar | O | The calendar assigned to this enrollment. | IdRefType | |||||||
| @ | SIF_RefObject | M | The name of the object referenced. | values:
| ||||||
| ExitDate | C | The last school calendar day of this enrollment. If the student has exited the school or the enrollment has a | xs:date | |||||||
| ExitStatus | O | |||||||||
| ExitStatus/Code | M | Code indicating the closure status for this enrollment. | NCES0643ExitWithdrawalStatusType | |||||||
| ExitStatus/OtherCodeList | O | OtherCodeList | ||||||||
| ExitType | O | |||||||||
| ExitType/Code | M | Code indicating the type of exit for this enrollment. | NCES0644ExitWithdrawalTypeType | |||||||
| ExitType/OtherCodeList | O | OtherCodeList | ||||||||
| RecordClosureReason | O | The reason why this enrollment was closed. | values:
| |||||||
| PromotionInfo | O | 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:
| |||||||
| FTE | O | 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
| |||||||
| FTPTStatus | O | An indication of whether the student is enrolled full time or part time. | values:
| |||||||
| ResidencyStatus | O | Location of an individual's legal residence relative to (within or outside) the boundaries of the school for this enrollment. | ||||||||
| ResidencyStatus/Code | M | Code indicating the residency status for this enrollment. | NCES0598PublicSchoolResidenceStatusType | |||||||
| ResidencyStatus/OtherCodeList | O | OtherCodeList | ||||||||
| NonResidentAttendReason | C | If the school represented by this enrollment is outside of the student's usual attendance area (as indicated in the ResidencyStatus element), this element indicates the reason that the student attends this school. | NCES0599NonResidentAttendanceRationaleType | |||||||
| SIF_Metadata | O | SIF_Metadata | ||||||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information about a student's enrollment in a section of a course.
SIF_Events are reported for this object.
Figure 6.14.21-1: StudentSectionEnrollment| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentSectionEnrollment | This object contains information about a student's enrollment in a section of a course. | |||
@![]() | RefId | M | The ID (GUID) that uniquely identifies this StudentSectionEnrollment entity. | RefIdType |
| @ | StudentPersonalRefId | M | The ID (GUID) of the student to whom the enrollment information applies. | IdRefType |
| @ | SectionInfoRefId | M | The ID (GUID) of the section in which this student is enrolled. | IdRefType |
| @ | SchoolYear | M |
School year for which the information is applicable, expressed as the four-digit year in which the school
year ends (e.g. | SchoolYear |
| EntryDate | O | Date from when this course section enrollment is valid. | xs:date | |
| ExitDate | O | The last school calendar day (membership day) the student was enrolled in the course section (inclusive). | xs:date | |
| ScheduleInfoOverrideList | O | A complete replacement of the standard SectionInfo/ScheduleInfoList for this student's course enrollment. | List | |
| ScheduleInfoOverrideList/ ScheduleInfoOverride | MR | A complete replacement of the standard SectionInfo/ScheduleInfo for this student's course enrollment. If the student's schedule for this course is different than the standard schedule as defined in SectionInfo, a ScheduleInfoOverride must be provided for each term in which the course is offered, along with the appropriate value for Override. See the use cases for this object for scenario examples. | ||
| @ | Override | M | Designates whether or not scheduling information has been overridden with different values for this student. | values:
|
| @ | TermInfoRefId | M | The ID (GUID) of the term to which this override information relates for this student. | RefIdType |
| ScheduleInfoOverrideList/ ScheduleInfoOverride/MeetingTimeList | O | List | ||
| ScheduleInfoOverrideList/ ScheduleInfoOverride/MeetingTimeList/ MeetingTime | MR | Time(s) this section meets for this student; this should be a subset of the meeting times for the section. | MeetingTime | |
| CreditsAttempted | O | Number of credits the student is attempting to earn. If present, this element's value overrides the credits in SchoolCourseInfo and SectionInfo. | xs:decimal | |
| @ | Type | M | The type of credit. | NCES0108CreditTypeEarnedType |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
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.
Figure 6.14.22-1: StudentSnapshot| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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. | |||
@![]() | SnapDate | M | 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 |
@![]() | StudentPersonalRefId | M | The ID (GUID) of the student to whom this information relates. | IdRefType |
| @ | SchoolYear | M |
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. | SchoolYear |
| Name | O | The name of the student. | Name | |
| LocalId | M | The locally-defined identifier for this student. | LocalId | |
| StateProvinceId | O | The state-assigned identifier for this student. | StateProvinceId | |
| Address | O | The address of the student. | Address | |
| RaceList | O | Person's race | RaceList | |
| HispanicLatino | O | HispanicLatino | ||
| Gender | O | Person's gender. | Gender | |
| BirthDate | O | The person's date of birth. | BirthDate | |
| Age | O | The age (in years) of the student on the date in SnapDate. | xs:unsignedInt | |
| ProjectedGraduationYear | O | Currently projected graduation year. | ProjectedGraduationYear | |
| OnTimeGraduationYear | O | First projected graduation year, usually determined when student is accepted into ninth grade. | OnTimeGraduationYear | |
| GraduationDate | O | Date student officially graduated from secondary education. | GraduationDate | |
| GraduationAward | O | The award received upon graduation. | values:
| |
| GraduationOnTime | O | Did the student graduate in the expected number of years? | values:
| |
| HomeEnrollment | M | 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/LocalId | C | 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/StateProvinceId | O | The state or province defined identifier for this school. | StateProvinceId | |
| HomeEnrollment/Status | M | Enrollment status as of the SnapDate. | values:
| |
| HomeEnrollment/GradeLevel | M | Grade or academic level of student. | GradeLevel | |
| HomeEnrollment/Homeroom | O | IdRefType | ||
| @ | SIF_RefObject | M | The name of the SIF object referenced. | values:
|
| HomeEnrollment/HomeroomNumber | O | The locally-defined identifier for this room. | HomeroomNumber | |
| HomeEnrollment/FullYearEnrollment | O | An indication as to whether or not the student was enrolled for the whole school year. If the SchoolYear is in progress as of the SnapDate, use the value "Unknown". | values:
| |
| IDEA | O | IDEA | ||
| Migrant | O | Migrant | ||
| Title1 | O | Title1 | ||
| GiftedTalented | O | GiftedTalented | ||
| EconomicDisadvantage | O | EconomicDisadvantage | ||
| ELL | O | ELL | ||
| Homeless | O | Homeless | ||
| Section504 | O | Section504 | ||
| VocationalConcentrator | O | VocationalConcentrator | ||
| Immigrant | O | Immigrant | ||
| NeglectedDelinquent | O | NeglectedDelinquent | ||
| FreeAndReducedStatus | O | Student's eligibility for free and reduced meals. | values:
| |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object provides information about a term; i.e., a reportable period of time.
SIF_Events are reported for this object.
Figure 6.14.23-1: TermInfo| Element/@Attribute | Char | Description | Type | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| TermInfo | This object provides information about a term; i.e., a reportable period of time. | |||||||||
@![]() | RefId | M | The ID (GUID) that uniquely identifies this TermInfo entity. | RefIdType | ||||||
| @ | SchoolInfoRefId | M | The ID (GUID) that identifies the school where the term is used. | IdRefType | ||||||
| @ | SchoolYear | M |
School year for which the information is applicable, expressed as the four-digit year in which the school year ends (e.g., | SchoolYear | ||||||
| StartDate | M | Starting date of the term. | xs:date | |||||||
| EndDate | M | Ending date of the term (CCYYMMDD). | xs:date | |||||||
| Description | O | Text-based description of the term. | xs:normalizedString | |||||||
| RelativeDuration | O | Portion of the school year represented by this term, expressed in decimal form precise to 4 decimal places (e.g., 0.1333). | xs:decimal
| |||||||
| TermCode | O | Locally-defined code. | xs:normalizedString | |||||||
| Track | O | 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 | |||||||
| TermSpan | O | TermSpan | ||||||||
| MarkingTerm | O | Does this TermInfo represent a marking period? | values:
| |||||||
| SchedulingTerm | O | Does this TermInfo represent a scheduling term? | values:
| |||||||
| AttendanceTerm | O | Does this TermInfo represent an attendance term? | values:
| |||||||
| SIF_Metadata | O | SIF_Metadata | ||||||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains references to the set of records associated with and available for a given student.
SIF_Events are not reported for this object.
Figure 6.15.1-1: StudentRecordExchange| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentRecordExchange | This object contains references to the set of records associated with and available for a given student. | |||
| @ | RefId | M | The GUID that uniquely identifies an instance of this object. | RefIdType |
| StateProvinceId | C | A unique student identifier outside of SIF.
To request this object for a given student, one or more of | StateProvinceId | |
| LocalId | C | A locally-defined student identifier. | LocalId | |
| StudentPersonalRefId | C | An associated | IdRefType | |
| Records | M | All records associated with the student. | ||
| Records/StudentDemographicRecordRefId | M | IdRefType | ||
| Records/StudentAcademicRecordRefId | O | IdRefType | ||
| Records/StudentSpecialEducationRecordRefId | O | IdRefType | ||
| Records/OtherRecords | O |
Other records or content not defined by SIF, but associated with the student. Wrapped
in | List | |
| Records/OtherRecords/StudentRecordPackageRefId | MR | IdRefType | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
Conveys a student's demographic data for student record exchange and transcript purposes.
This object is designed to be a dual-purpose object. It can be linked to a StudentRecordExchange object
for record exchange purposes. There may also be Zones where systems can provide this information for record exchange
systems or general informational purposes, in which case the object can be linked directly to StudentPersonal.
SIF_Events are not reported for this object.
Figure 6.15.2-1: StudentDemographicRecord| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentDemographicRecord | Conveys a student's demographic data for student record exchange and transcript purposes.
This object is designed to be a dual-purpose object. It can be linked to a | |||
@![]() | RefId | M | The ID (GUID) of this record. | RefIdType |
| @ | SIF_RefId | M |
The GUID of an associated object, either | RefIdType |
| @ | SIF_RefObject | M | The associated object type. | values:
|
| ReportingDate | M | The date this record was prepared. | xs:date | |
| StudentPersonalData | M | Collects elements of interest from StudentPersonal. | ||
| StudentPersonalData/LocalId | O | LocalId | ||
| StudentPersonalData/StateProvinceId | O | StateProvinceId | ||
| StudentPersonalData/SSN | O | SSN | ||
| StudentPersonalData/OtherIdList | O | Lists all "other" identifiers associated with the student. | List | |
| StudentPersonalData/OtherIdList/ OtherId | MR | Lists an "other" identifier associated with the student. | xs:normalizedString | |
| @ | Type | M | Code that defines the type of this other ID. | NCES0147IdentificationSystemType subset:
|
| StudentPersonalData/Name | M |
Name of the student. Note: Type value of | NameOfRecordType | |
| StudentPersonalData/OtherNames | O | Previous, alternate or other names or aliases associated with the student. | OtherNames | |
| StudentPersonalData/DemographicsData | O | Collects elements of interest from Demographics. | ||
| StudentPersonalData/DemographicsData/ RaceList | O | RaceList | ||
| StudentPersonalData/DemographicsData/ Gender | O | Gender | ||
| StudentPersonalData/DemographicsData/ BirthDate | O | BirthDate | ||
| StudentPersonalData/DemographicsData/ EnglishProficiency | O | Person's proficiency in English. | EnglishProficiency | |
| StudentPersonalData/DemographicsData/ LanguageList | O | List of languages an individual uses to communicate. | LanguageList | |
| StudentPersonalData/AddressList | O | The address of the student. | AddressList | |
| StudentPersonalData/PhoneNumberList | O | PhoneNumberList | ||
| StudentPersonalData/IDEA | O | IDEA | ||
| StudentPersonalData/Migrant | O | Migrant | ||
| StudentPersonalData/Title1 | O | Title1 | ||
| StudentPersonalData/GiftedTalented | O | GiftedTalented | ||
| StudentPersonalData/EconomicDisadvantage | O | EconomicDisadvantage | ||
| StudentPersonalData/ELL | O | ELL | ||
| StudentPersonalData/Homeless | O | Homeless | ||
| StudentPersonalData/Section504 | O | Section504 | ||
| StudentPersonalData/VocationalConcentrator | O | VocationalConcentrator | ||
| StudentPersonalData/Immigrant | O | Immigrant | ||
| StudentPersonalData/NeglectedDelinquent | O | NeglectedDelinquent | ||
| StudentContactsSummary | O | Reports up to two parents/guardians of the student. | ||
| StudentContactsSummary/ParentGuardian1 | M | First parent/guardian. | ||
| StudentContactsSummary/ParentGuardian1/ Name | M | Name | ||
| StudentContactsSummary/ParentGuardian1/ PhoneNumberList | O | PhoneNumberList | ||
| StudentContactsSummary/ParentGuardian1/ AddressList | O | AddressList | ||
| StudentContactsSummary/ParentGuardian2 | O | Second parent/guardian. | ||
| StudentContactsSummary/ParentGuardian2/ Name | M | Name | ||
| StudentContactsSummary/ParentGuardian2/ PhoneNumberList | O | PhoneNumberList | ||
| StudentContactsSummary/ParentGuardian2/ AddressList | O | AddressList | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object conveys a student's academic record data for student record exchange and transcript purposes.
This object is designed to be a dual-purpose object. It can be linked to a StudentRecordExchange object
for record exchange purposes. There may also be Zones where systems can provide this information for record exchange
systems or general informational purposes, in which case the object can be linked directly to StudentPersonal.
SIF_Events are not reported for this object.
Figure 6.15.3-1: StudentAcademicRecord| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentAcademicRecord | This object conveys a student's academic record data for student record exchange and transcript purposes.
This object is designed to be a dual-purpose object. It can be linked to a | |||
@![]() | RefId | M | The ID (GUID) of this record. | RefIdType |
| @ | SIF_RefId | M |
The GUID of an associated object, either | RefIdType |
| @ | SIF_RefObject | M | The associated object type. | values:
|
| ReportingDate | M | The date this record was prepared. | xs:date | |
| StudentSchoolEnrollmentData | M | Collects elements of interest from StudentSchoolEnrollment. | ||
| @ | SchoolAttendedRefId | M | References the school of record for the student (see SchoolAttended). | IdRefType |
| StudentSchoolEnrollmentData/ GradeLevel | M | GradeLevel | ||
| StudentSchoolEnrollmentData/ Advisor | O | Staff member assigned to the student as an advisor. | ||
| StudentSchoolEnrollmentData/ Advisor/StaffPersonalData | M | Collects elements of interest from StaffPersonal. | ||
| StudentSchoolEnrollmentData/ Advisor/StaffPersonalData/ Name | M | Name | ||
| StudentSchoolEnrollmentData/ Advisor/StaffPersonalData/ Title | O | xs:normalizedString | ||
| StudentSchoolEnrollmentData/ Advisor/StaffPersonalData/ AddressList | O | AddressList | ||
| StudentSchoolEnrollmentData/ Advisor/StaffPersonalData/ PhoneNumberList | O | PhoneNumberList | ||
| StudentSchoolEnrollmentData/ Counselor | O | Staff member assigned to the student as a counselor. | ||
| StudentSchoolEnrollmentData/ Counselor/StaffPersonalData | M | Collects elements of interest from StaffPersonal. | ||
| StudentSchoolEnrollmentData/ Counselor/StaffPersonalData/ Name | M | Name | ||
| StudentSchoolEnrollmentData/ Counselor/StaffPersonalData/ Title | O | xs:normalizedString | ||
| StudentSchoolEnrollmentData/ Counselor/StaffPersonalData/ AddressList | O | AddressList | ||
| StudentSchoolEnrollmentData/ Counselor/StaffPersonalData/ PhoneNumberList | O | PhoneNumberList | ||
| DistrictEntryDate | O | The date the student originally enrolled in the district of the school of record. | PartialDateType | |
| SchoolAttendanceHistory | M | Chronology of schools attended in the student's academic career, including the current school if enrolled. | List | |
| SchoolAttendanceHistory/SchoolAttended | MR | Data about each individual school attended. | ||
| @ | RefId | M | ID used internally to StudentAcademicRecord to avoid duplication of school-related data. | RefIdType |
| SchoolAttendanceHistory/SchoolAttended/ LEAInfoData | O | Collects elements of interest from LEAInfo. | ||
| SchoolAttendanceHistory/SchoolAttended/ LEAInfoData/LocalId | O | LocalId | ||
| SchoolAttendanceHistory/SchoolAttended/ LEAInfoData/StateProvinceId | O | StateProvinceId | ||
| SchoolAttendanceHistory/SchoolAttended/ LEAInfoData/NCESId | O | NCESId | ||
| SchoolAttendanceHistory/SchoolAttended/ LEAInfoData/LEAName | M | LEAName | ||
| SchoolAttendanceHistory/SchoolAttended/ SchoolInfoData | M | Collects elements of interest from SchoolInfo. | ||
| SchoolAttendanceHistory/SchoolAttended/ SchoolInfoData/LocalId | M | LocalId | ||
| SchoolAttendanceHistory/SchoolAttended/ SchoolInfoData/StateProvinceId | O | StateProvinceId | ||
| SchoolAttendanceHistory/SchoolAttended/ SchoolInfoData/NCESId | O | NCESId | ||
| SchoolAttendanceHistory/SchoolAttended/ SchoolInfoData/SchoolName | M | SchoolName | ||
| SchoolAttendanceHistory/SchoolAttended/ SchoolInfoData/SchoolURL | O | SchoolURL | ||
| SchoolAttendanceHistory/SchoolAttended/ SchoolInfoData/SchoolContactList | O | SchoolContactList | ||
| SchoolAttendanceHistory/SchoolAttended/ SchoolInfoData/AddressList | O | AddressList | ||
| SchoolAttendanceHistory/SchoolAttended/ SchoolInfoData/PhoneNumberList | O | PhoneNumberList | ||
| SchoolAttendanceHistory/SchoolAttended/ SchoolInfoData/IdentificationInfoList | O | IdentificationInfoList | ||
| SchoolAttendanceHistory/SchoolAttended/ SchoolInfoData/GradeLevels | O | GradeLevels | ||
| SchoolAttendanceHistory/SchoolAttended/ AccreditingBody | O | Accrediting body for the school. | xs:normalizedString | |
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems | C | Note: Mandatory if school of record. Marking systems/grading tables used by the school. | List | |
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData | MR | Marking system/grading table used by the school. | ||
| @ | RefId | M | ID used internally to StudentAcademicRecord to link marks to their marking systems. | RefIdType |
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Name | M | The text name of the value list ("Letter Grades", "Letter Grades (+/-)", "ESU", "Pass/Fail", "Override Grades", "Citizenship Comment Codes", etc.). | xs:string | |
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Percentage | C | Indicates whether a percent Mark is accepted (format ##0.00). | ||
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Percentage/Minimum | O | The minimum percent value accepted for this mark. If present, the publisher of this object is required to ensure that any values present in the StudentSectionMarks object will not be lower than this value. | xs:decimal | |
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Percentage/Maximum | O | The maximum percent value accepted for this mark. If present, the publisher of this object is required to ensure that any values present in the StudentSectionMarks object will not be higher than this value. | xs:decimal | |
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Numeric | C | Indicates whether a raw numeric score is accepted. | ||
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Numeric/Precision | O | Number of significant digits. | xs:unsignedInt | |
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Numeric/Scale | O | Number of decimal places. | xs:unsignedInt | |
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Numeric/Low | O | Lowest Mark in the range (e.g., 98, 3.95). | xs:decimal | |
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Numeric/High | O | Highest Mark in the range (e.g., 100, 4.0). | xs:decimal | |
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Letter | C | Indicates whether a letter Mark is accepted. | ActionList (ValidMark/Code) | |
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Letter/ValidMark | MR | List of specific valid letter Marks. | ||
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Letter/ValidMark/Code | M | String representing the actual Mark that would appear on the report card (e.g., "A+", "I", "100"). | xs:token | |
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Letter/ValidMark/NumericEquivalent | O | Numeric equivalent for the Mark (e.g., 100, 4.0). | xs:decimal | |
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Letter/ValidMark/Description | O | The description for this code. (e.g. "Excellent", "Participates in Class", "Incomplete", etc...). | xs:string | |
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Narrative | C | If present, indicates that a free-form text narrative is accepted. | ||
| SchoolAttendanceHistory/SchoolAttended/ MarkingSystems/MarkValueInfoData/ Narrative/MaximumSize | O | An integer value representing the maximum number of Unicode characters for the narrative, the UTF-8 encoding of which may be longer. | xs:unsignedInt | |
| EnrollmentHistory | O | A list of each enrollment in the schools above (see SchoolAttended). | List | |
| EnrollmentHistory/StudentSchoolEnrollmentData | OR | Collects elements of interest from StudentSchoolEnrollment. | ||
| @ | SchoolAttendedRefId | M | Reference to SchoolAttended. | IdRefType |
| EnrollmentHistory/StudentSchoolEnrollmentData/ SchoolYear | O | SchoolYear | ||
| EnrollmentHistory/StudentSchoolEnrollmentData/ EntryDate | O | PartialDateType | ||
| EnrollmentHistory/StudentSchoolEnrollmentData/ ExitDate | C | Note: Mandatory if student exited school. | PartialDateType | |
| CurrentCourseActivity | C | Note: Mandatory if coursework is underway. Conveys a student's current coursework along with mid-term marks if applicable. | ||
| CurrentCourseActivity/TermInfoData | M | Collects elements of interest from TermInfo. | ||
| @ | SchoolAttendedRefId | M | Reference to the school of record for the courses being taken (see SchoolAttended). | IdRefType |
| CurrentCourseActivity/TermInfoData/ SchoolYear | O | SchoolYear | ||
| CurrentCourseActivity/TermInfoData/ StartDate | O | PartialDateType | ||
| CurrentCourseActivity/TermInfoData/ EndDate | O | PartialDateType | ||
| CurrentCourseActivity/TermInfoData/ Description | O | xs:string | ||
| CurrentCourseActivity/TermInfoData/ TermCode | O | xs:normalizedString | ||
| CurrentCourseActivity/TermInfoData/ Track | O | xs:normalizedString | ||
| CurrentCourseActivity/TermInfoData/ TermSpan | O | TermSpan | ||
| CurrentCourseActivity/Courses | M | Courses being taken. | List | |
| CurrentCourseActivity/Courses/ Course | MR | Course being taken. | ||
| CurrentCourseActivity/Courses/ Course/SchoolAttendedRefId | C | Reference to the school where the course is being taken (see SchoolAttended); may be omitted if the school is the same as the school of record. | IdRefType | |
| CurrentCourseActivity/Courses/ Course/SchoolCourseInfoData | M | Collects elements of interest from SchoolCourseInfo. | ||
| CurrentCourseActivity/Courses/ Course/SchoolCourseInfoData/ CourseCode | O | CourseCode | ||
| CurrentCourseActivity/Courses/ Course/SchoolCourseInfoData/ StateCourseCode | O | StateCourseCode | ||
| CurrentCourseActivity/Courses/ Course/SchoolCourseInfoData/ DistrictCourseCode | O | DistrictCourseCode | ||
| CurrentCourseActivity/Courses/ Course/SchoolCourseInfoData/ NationalCourseCode | O | xs:normalizedString | ||
| CurrentCourseActivity/Courses/ Course/SchoolCourseInfoData/ SubjectAreaList | O | SubjectAreaList | ||
| CurrentCourseActivity/Courses/ Course/SchoolCourseInfoData/ CourseTitle | O | CourseTitle | ||
| CurrentCourseActivity/Courses/ Course/SchoolCourseInfoData/ Description | O | xs:string | ||
| CurrentCourseActivity/Courses/ Course/SchoolCourseInfoData/ InstructionalLevel | O | InstructionalLevel | ||
| CurrentCourseActivity/Courses/ Course/SchoolCourseInfoData/ CoreAcademicCourse | O | xs:boolean | ||
| CurrentCourseActivity/Courses/ Course/SchoolCourseInfoData/ GraduationRequirement | O | GraduationRequirement | ||
| CurrentCourseActivity/Courses/ Course/SchoolCourseInfoData/ Department | O | xs:normalizedString | ||
| CurrentCourseActivity/Courses/ Course/StartDate | O | Date course section started. | PartialDateType | |
| CurrentCourseActivity/Courses/ Course/EndDate | O | Date course section ended, or will end. | PartialDateType | |
| CurrentCourseActivity/Courses/ Course/MarkingPeriod | M | |||
| CurrentCourseActivity/Courses/ Course/MarkingPeriod/TermInfoData | O | Information related to the span of time associated with the marking period. | ||
| CurrentCourseActivity/Courses/ Course/MarkingPeriod/TermInfoData/ StartDate | O | PartialDateType | ||
| CurrentCourseActivity/Courses/ Course/MarkingPeriod/TermInfoData/ EndDate | O | PartialDateType | ||
| CurrentCourseActivity/Courses/ Course/MarkingPeriod/TermInfoData/ Description | O | xs:string | ||
| CurrentCourseActivity/Courses/ Course/MarkingPeriod/TermInfoData/ TermCode | O | xs:normalizedString | ||
| CurrentCourseActivity/Courses/ Course/MarkingPeriod/TermInfoData/ Track | O | xs:normalizedString | ||
| CurrentCourseActivity/Courses/ Course/MarkingPeriod/TermInfoData/ TermSpan | O | TermSpan | ||
| CurrentCourseActivity/Courses/ Course/MarkingPeriod/GradeLevelWhenTaken | O | Student's grade level at time of course. | GradeLevel | |
| CurrentCourseActivity/Courses/ Course/MarkingPeriod/MarkData | C | Note: Mandatory if mid-term mark exists. Mid-term mark. | ||
| @ | MarkValueInfoDataRefId | M | Reference to marking system at school of record. | IdRefType |
| CurrentCourseActivity/Courses/ Course/MarkingPeriod/MarkData/ Percentage | C | The percent score for this mark (0.00 - 100.00). | xs:decimal | |
| CurrentCourseActivity/Courses/ Course/MarkingPeriod/MarkData/ Numeric | C | The raw numeric score for this mark. | xs:unsignedInt | |
| CurrentCourseActivity/Courses/ Course/MarkingPeriod/MarkData/ Letter | C | The letter grade for this mark. | xs:normalizedString | |
| CurrentCourseActivity/Courses/ Course/MarkingPeriod/MarkData/ Narrative | C | The free form text narrative for this mark. | xs:string | |
| CurrentCourseActivity/Courses/ Course/MarkingPeriod/CourseCreditsAttempted | O | Number of course credits attempted. | xs:decimal | |
| CourseHistory | O | Conveys the coursework completed, performance and attendance information for a student's academic career. | List | |
| CourseHistory/Term | OR | Time spans by which courses are grouped. | ||
| CourseHistory/Term/TermInfoData | M | Collects elements of interest from TermInfo. | ||
| @ | SchoolAttendedRefId | M | Reference to the school of record for the time span (see SchoolAttended). | IdRefType |
| CourseHistory/Term/TermInfoData/ SchoolYear | O | SchoolYear | ||
| CourseHistory/Term/TermInfoData/ StartDate | O | PartialDateType | ||
| CourseHistory/Term/TermInfoData/ EndDate | O | PartialDateType | ||
| CourseHistory/Term/TermInfoData/ Description | O | xs:string | ||
| CourseHistory/Term/TermInfoData/ TermCode | O | xs:normalizedString | ||
| CourseHistory/Term/TermInfoData/ Track | O | xs:normalizedString | ||
| CourseHistory/Term/TermInfoData/ TermSpan | O | TermSpan | ||
| CourseHistory/Term/Courses | O | |||
| CourseHistory/Term/Courses/ Course | OR | |||
| CourseHistory/Term/Courses/ Course/SchoolAttendedRefId | C | Reference to the school where the course was taken (see SchoolAttended); may be omitted if the school is the same as the school of record. | IdRefType | |
| CourseHistory/Term/Courses/ Course/SchoolCourseInfoData | M | Collects elements of interest from SchoolCourseInfo. | ||
| CourseHistory/Term/Courses/ Course/SchoolCourseInfoData/ CourseCode | O | CourseCode | ||
| CourseHistory/Term/Courses/ Course/SchoolCourseInfoData/ StateCourseCode | O | StateCourseCode | ||
| CourseHistory/Term/Courses/ Course/SchoolCourseInfoData/ DistrictCourseCode | O | DistrictCourseCode | ||
| CourseHistory/Term/Courses/ Course/SchoolCourseInfoData/ NationalCourseCode | O | xs:normalizedString | ||
| CourseHistory/Term/Courses/ Course/SchoolCourseInfoData/ SubjectAreaList | O | SubjectAreaList | ||
| CourseHistory/Term/Courses/ Course/SchoolCourseInfoData/ CourseTitle | O | CourseTitle | ||
| CourseHistory/Term/Courses/ Course/SchoolCourseInfoData/ Description | O | xs:string | ||
| CourseHistory/Term/Courses/ Course/SchoolCourseInfoData/ InstructionalLevel | O | InstructionalLevel | ||
| CourseHistory/Term/Courses/ Course/SchoolCourseInfoData/ CoreAcademicCourse | O | xs:boolean | ||
| CourseHistory/Term/Courses/ Course/SchoolCourseInfoData/ GraduationRequirement | O | GraduationRequirement | ||
| CourseHistory/Term/Courses/ Course/SchoolCourseInfoData/ Department | O | xs:normalizedString | ||
| CourseHistory/Term/Courses/ Course/StartDate | O | Date course section started. | PartialDateType | |
| CourseHistory/Term/Courses/ Course/EndDate | O | Date course section ended. | PartialDateType | |
| CourseHistory/Term/Courses/ Course/MarkingPeriods | M | Student performance/attendance data for each marking period. | List | |
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod | MR | Student performance/attendance data for a marking period. | ||
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ SchoolAttendedRefId | C | Reference to the school where student took the course during the marking period, if different from schools above. | IdRefType | |
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ TermInfoData | O | Information related to the span of time associated with the marking period. | ||
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ TermInfoData/StartDate | O | PartialDateType | ||
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ TermInfoData/EndDate | O | PartialDateType | ||
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ TermInfoData/Description | O | xs:string | ||
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ TermInfoData/TermCode | O | xs:normalizedString | ||
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ TermInfoData/Track | O | xs:normalizedString | ||
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ TermInfoData/TermSpan | O | TermSpan | ||
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ GradeLevelWhenTaken | O | Student's grade level at time of course. | GradeLevel | |
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ MarkData | C | Note: Mandatory if mid-term mark exists. Mid-term mark. | ||
| @ | MarkValueInfoDataRefId | M | Reference to marking system at school of record. | IdRefType |
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ MarkData/Percentage | C | The percent score for this mark (0.00 - 100.00). | xs:decimal | |
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ MarkData/Numeric | C | The raw numeric score for this mark. | xs:unsignedInt | |
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ MarkData/Letter | C | The letter grade for this mark. | xs:normalizedString | |
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ MarkData/Narrative | C | The free form text narrative for this mark. | xs:string | |
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ CourseCreditsAttempted | O | Number of course credits attempted. | xs:decimal | |
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ CourseCreditsEarned | O | Number of course credits earned. | xs:decimal | |
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ CreditType | O | Type of credit. | NCES0108CreditTypeEarnedType | |
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ ExcessiveAbsenceIndicator | O | Flag indicating that the student was excessively absent from the class. | xs:boolean | |
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ DaysAbsent | O | Number of days absent. | xs:decimal | |
| CourseHistory/Term/Courses/ Course/MarkingPeriods/MarkingPeriod/ DaysPresent | O | Number of days present. | xs:decimal | |
| AcademicPerformanceHistory | O | Provides a summary of a student's academic performance by reporting period. | List | |
| AcademicPerformanceHistory/ TermPerformance | OR | Individual term performance. | ||
| AcademicPerformanceHistory/ TermPerformance/TermInfoData | O | Collects elements of interest from TermInfo. | ||
| AcademicPerformanceHistory/ TermPerformance/TermInfoData/ SchoolYear | O | SchoolYear | ||
| AcademicPerformanceHistory/ TermPerformance/TermInfoData/ StartDate | O | PartialDateType | ||
| AcademicPerformanceHistory/ TermPerformance/TermInfoData/ EndDate | O | PartialDateType | ||
| AcademicPerformanceHistory/ TermPerformance/TermInfoData/ Description | O | xs:string | ||
| AcademicPerformanceHistory/ TermPerformance/TermInfoData/ TermCode | O | xs:normalizedString | ||
| AcademicPerformanceHistory/ TermPerformance/TermInfoData/ Track | O | xs:normalizedString | ||
| AcademicPerformanceHistory/ TermPerformance/TermInfoData/ TermSpan | O | TermSpan | ||
| AcademicPerformanceHistory/ TermPerformance/GradeLevelWhenTaken | O | Student's grade level at time. | GradeLevel | |
| AcademicPerformanceHistory/ TermPerformance/CreditsAttempted | O | Number of credits attempted. | xs:decimal | |
| AcademicPerformanceHistory/ TermPerformance/CreditsEarned | O | Number of credits earned. | xs:decimal | |
| AcademicPerformanceHistory/ TermPerformance/GPACreditsAttempted | O | Number of GPA credits attempted. | xs:decimal | |
| AcademicPerformanceHistory/ TermPerformance/GPACreditsEarned | O | Number of GPA credits earned. | xs:decimal | |
| AcademicPerformanceHistory/ TermPerformance/GPAGradePoints | O | Number of GPA points received. | xs:decimal | |
| AcademicPerformanceHistory/ TermPerformance/GPA | O | Grade point average for term. | xs:decimal | |
| AcademicPerformanceHistory/ TermPerformance/WeightedGPA | O | Weighted grade point average for term. | xs:decimal | |
| AcademicPerformanceHistory/ TermPerformance/DaysAbsent | O | Number of days absent. | xs:decimal | |
| AcademicPerformanceHistory/ TermPerformance/DaysPresent | O | Number of days present. | xs:decimal | |
| AcademicPerformanceSummary | M | Conveys a cumulative summary of a student's entire academic performance at the time the transcript was generated. | ||
| AcademicPerformanceSummary/ TotalCreditsAttempted | O | Total credits attempted during academic career. | xs:decimal | |
| AcademicPerformanceSummary/ TotalCreditsEarned | O | Total credits earned during academic career. | xs:decimal | |
| AcademicPerformanceSummary/ CumulativeGPACreditsEarned | O | Cumulative number of GPA credits earned during academic career. | xs:decimal | |
| AcademicPerformanceSummary/ CumulativeGradePoints | O | Cumulative number of grade points earned during academic career. | xs:decimal | |
| AcademicPerformanceSummary/ CumulativeGPA | O | Cumulative grade point average for academic career. | xs:decimal | |
| AcademicPerformanceSummary/ GPAType | O | Brief name/description of type of GPA. | xs:normalizedString | |
| AcademicPerformanceSummary/ ClassRank | O | Student's rank in graduating class. | xs:unsignedInt | |
| AcademicPerformanceSummary/ ClassTotalNumber | O | Total number of students in student's graduating class. | xs:unsignedInt | |
| AcademicPerformanceSummary/ ClassRankingDate | O | Date class ranking was determined. | PartialDateType | |
| AcademicPerformanceSummary/ ProjectedGraduationDate | O | Projected graduation date. | PartialDateType | |
| AcademicPerformanceSummary/ GraduationDate | C | Note: Mandatory if graduated. Graduation date. | PartialDateType | |
| AcademicPerformanceSummary/ GraduationDiplomaType | C | Note: Mandatory if graduated. Type of diploma earned. | xs:normalizedString | |
| AcademicPerformanceSummary/ AcademicTrack | O | An indication of the general nature and difficulty of instruction provided throughout a course. Note: This element is deprecated, in favor of the two elements below, beginning with Version 2.2. | NCES0106CourseInstructionalLevelType | |
| AcademicPerformanceSummary/ AcademicFoci | O | List | ||
| AcademicPerformanceSummary/ AcademicFoci/AcademicFocus | OR | Indicates the general nature and difficulty of instruction provided throughout a course. | ||
| AcademicPerformanceSummary/ AcademicFoci/AcademicFocus/ Code | M | A code to depict the focus of the educational program (replaces deprecated | NCES0229ProgramTypeType | |
| AcademicPerformanceSummary/ AcademicFoci/AcademicFocus/ OtherCodeList | O | Alternate codes indicating the general nature and difficulty of the educational program. | OtherCodeList | |
| AcademicPerformanceSummary/ AcademicSubjects | O | List | ||
| AcademicPerformanceSummary/ AcademicSubjects/AcademicSubject | OR | Coding to depict an intended subject area. | ||
| AcademicPerformanceSummary/ AcademicSubjects/AcademicSubject/ Code | M | A code to depict an academic or vocational discipline studied by an individual in an educational program (based on NCES CIP 2000). | NCES0373PostsecondarySubjectMatterAreaType | |
| AcademicPerformanceSummary/ AcademicSubjects/AcademicSubject/ OtherCodeList | O | Alternate codes for an academic or vocational discipline studied by an individual in an educational program. | OtherCodeList | |
| AssessmentPerformanceHistory | C | Note: Mandatory if assessments exist. Conveys a history of assessments that the student has taken throughout his/her academic career. | List | |
| AssessmentPerformanceHistory/ Assessment | MR | A record of performance on an individual assessment. | ||
| AssessmentPerformanceHistory/ Assessment/Name | M | Textual description of assessment. | xs:normalizedString | |
| AssessmentPerformanceHistory/ Assessment/AdministrationDate | O | Date the assessment was administered. | PartialDateType | |
| AssessmentPerformanceHistory/ Assessment/Form | O | Form, version or edition of the test. | xs:normalizedString | |
| AssessmentPerformanceHistory/ Assessment/Level | O | Free-form text description of the level of the test. | xs:string | |
| AssessmentPerformanceHistory/ Assessment/StudentGradeLevelWhenAssessed | O | Student's grade level when assessed. | GradeLevel | |
| AssessmentPerformanceHistory/ Assessment/SubtestCategory | O | The subtest or subject category of the assessment. | xs:normalizedString | |
| AssessmentPerformanceHistory/ Assessment/TestScoreType | O | Type of test score. | NCES0056AssessmentReportingMethodType | |
| AssessmentPerformanceHistory/ Assessment/TestScore | O | Test score. | xs:normalizedString | |
| AdditionalGraduationRequirementPerformanceHistory | C | Note: Mandatory if additional graduation requirements exist. Conveys a student's achievements in relation to additional graduation requirements. | List | |
| AdditionalGraduationRequirementPerformanceHistory/ Requirement | MR | A record of performance in an individual graduation requirement. | ||
| AdditionalGraduationRequirementPerformanceHistory/ Requirement/Name | M | Textual description of the requirement. | xs:normalizedString | |
| AdditionalGraduationRequirementPerformanceHistory/ Requirement/Method | O | The method by which the requirement was met. | xs:string | |
| AdditionalGraduationRequirementPerformanceHistory/ Requirement/Status | M | Student's status with regard to the requirement. | values:
| |
| AdditionalGraduationRequirementPerformanceHistory/ Requirement/StatusDeterminationDate | O | Date the student's status was determined. | PartialDateType | |
| ActivityAwardHistory | C | Note: Mandatory if activities/awards exist. Conveys award the student has received and/or activities in which s/he has been involved. | List | |
| ActivityAwardHistory/ActivityAward | MR | A record of an individual award or activity | ||
| ActivityAwardHistory/ActivityAward/ Name | M | The title that identifies a particular co-curricular or extra-curricular activity. | xs:normalizedString | |
| ActivityAwardHistory/ActivityAward/ InvolvementCode | O | The code used to identify the co-curricular or extra-curricular activity in which the individual is involved. | NCES0679ActivityInvolvementCodeType | |
| ActivityAwardHistory/ActivityAward/ InvolvementBeginningDate | O | The month, day, and year on which the individual began to participate in the activity. | PartialDateType | |
| ActivityAwardHistory/ActivityAward/ InvolvementEndingDate | O | The month, day, and year on which the individual ceased to participate in the activity. | PartialDateType | |
| ActivityAwardHistory/ActivityAward/ InvolvementAmount | O | An indication of the degree to which the individual is involved in the activity (e.g., number of hours per week). | xs:normalizedString | |
| ActivityAwardHistory/ActivityAward/ HonorsInformationCode | O | A designation of the type of academic distinctions or other honors earned by or awarded to the student. Note: | NCES0674HonorsTypeType | |
| ActivityAwardHistory/ActivityAward/ HonorsDescription | O | A textual description of the distinction or honor. | xs:normalizedString | |
| ActivityAwardHistory/ActivityAward/ DiplomaCredentialHonorsCode | O | The nature of recognition given the student for the successful completion of work in high school. | NCES0684DiplomaCredentialLevelAndHonorsType | |
| ActivityAwardHistory/ActivityAward/ DiplomaCredentialHonorsDescription | O | A textual description of the recognition. | xs:normalizedString | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
Conveys a student's special education program information for student record exchange.
This object is designed to be a dual-purpose object. It can be linked to a StudentRecordExchange object
for record exchange purposes. There may also be Zones where systems can provide this information for record exchange
systems or general informational purposes, in which case the object can be linked directly to StudentPersonal.
SIF_Events are not reported for this object.
Figure 6.15.4-1: StudentSpecialEducationRecord| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentSpecialEducationRecord | Conveys a student's special education program information for student record exchange.
This object is designed to be a dual-purpose object. It can be linked to a | |||
@![]() | RefId | M | The ID (GUID) of this record. | RefIdType |
| @ | SIF_RefId | M |
The GUID of an associated object, either | RefIdType |
| @ | SIF_RefObject | M | The associated object type. | values:
|
| ReportingDate | M | The date this record was prepared. | xs:date | |
| LEAInfoData | M | Identifies the LEA of the "school of record" for the student's information. | ||
| LEAInfoData/LocalId | O | LocalId | ||
| LEAInfoData/StateProvinceId | O | StateProvinceId | ||
| LEAInfoData/NCESId | O | NCESId | ||
| LEAInfoData/LEAName | M | LEAName | ||
| SchoolInfoData | M | Identifies the "school of record" responsible for maintaining the student's information. | ||
| SchoolInfoData/LocalId | M | LocalId | ||
| SchoolInfoData/StateProvinceId | O | StateProvinceId | ||
| SchoolInfoData/NCESId | O | NCESId | ||
| SchoolInfoData/SchoolName | M | SchoolName | ||
| StudentParticipationData | M | Collects elements of interest from StudentParticipation. | ||
| StudentParticipationData/ ProgramType | M | ProgramType | ||
| StudentParticipationData/ LEAInfoData | O | Collects elements of interest from LEAInfo. Replaces GUID of ManagingPublicAgency to identify the LEA or district to which the ManagingSchool reports. | ||
| StudentParticipationData/ LEAInfoData/LocalId | O | LocalId | ||
| StudentParticipationData/ LEAInfoData/StateProvinceId | O | StateProvinceId | ||
| StudentParticipationData/ LEAInfoData/NCESId | O | NCESId | ||
| StudentParticipationData/ LEAInfoData/LEAName | M | LEAName | ||
| StudentParticipationData/ SchoolInfoData | M | Collects elements of interest from SchoolInfo. Replaces GUID of ManagingSchool which identifies the school responsible for coordinating the student's program participation. | ||
| StudentParticipationData/ SchoolInfoData/LocalId | M | LocalId | ||
| StudentParticipationData/ SchoolInfoData/StateProvinceId | O | StateProvinceId | ||
| StudentParticipationData/ SchoolInfoData/NCESId | O | NCESId | ||
| StudentParticipationData/ SchoolInfoData/SchoolName | M | SchoolName | ||
| StudentParticipationData/ SchoolInfoData/SchoolURL | O | SchoolURL | ||
| StudentParticipationData/ SchoolInfoData/SchoolContactList | O | SchoolContactList | ||
| StudentParticipationData/ SchoolInfoData/AddressList | O | AddressList | ||
| StudentParticipationData/ SchoolInfoData/PhoneNumberList | O | PhoneNumberList | ||
| StudentParticipationData/ ReferralDate | O | PartialDateType | ||
| StudentParticipationData/ ProgramStatus | O | ProgramStatus | ||
| StudentParticipationData/ EvaluationDate | O | PartialDateType | ||
| StudentParticipationData/ ReevaluationDate | O | PartialDateType | ||
| StudentParticipationData/ ExceptionalityCategories | O | ExceptionalityCategories | ||
| StudentParticipationData/ ProgramPlanDate | O | PartialDateType | ||
| StudentParticipationData/ ProgramPlanEffectiveDate | O | PartialDateType | ||
| StudentParticipationData/ PlannedAssessmentParticipation | O | PlannedAssessmentParticipation | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
Wraps content or a record not defined by SIF but that is part of a student's records.
This object is designed to be a dual-purpose object. It can be linked to a StudentRecordExchange object
for record exchange purposes. There may also be Zones where systems can provide this information for record exchange
systems or general informational purposes, in which case the object can be linked directly to StudentPersonal.
SIF_Events are not reported for this object.
Figure 6.15.5-1: StudentRecordPackage| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentRecordPackage | Wraps content or a record not defined by SIF but that is part of a student's records.
This object is designed to be a dual-purpose object. It can be linked to a | AbstractContentPackageType | ||
| @ | SIF_RefId | M |
The GUID of an associated object, either | RefIdType |
| @ | SIF_RefObject | M | The associated object type. | values:
|
The goal of Transportation and Geographic Information Working Group is to provide the wealth of information currently locked in the transportation department to the rest of the school community, including transportation as well as geographic information for students.
This object contains information about a type of equipment that may be on a bus. Examples include wheelchair, car seat, etc.
SIF_Events are reported for this object.
Figure 6.16.1-1: BusEquipment| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| BusEquipment | This object contains information about a type of equipment that may be on a bus. Examples include wheelchair, car seat, etc. | |||
@![]() | RefId | M | GUID that identifies this type of equipment. | RefIdType |
| Description | M | Explanation about the type of equipment. | xs:string | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains all of the information about a bus.
SIF_Events are reported for this object.
Figure 6.16.2-1: BusInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| BusInfo | This object contains all of the information about a bus. | |||
@![]() | RefId | M | GUID that identifies this bus. | RefIdType |
| VehicleNumber | M | Vehicle number of the bus. | xs:normalizedString | |
| SeatingCapacity | O | The number of people who can ride on the bus at the same time. | xs:unsignedInt | |
| Contractor | O | The name of the contractor for this bus. | xs:normalizedString | |
| EquipmentList | O | Describes any special equipment that is on this bus. | List | |
| EquipmentList/Equipment | MR | Inventories each piece of special equipment on the bus. | ||
| EquipmentList/Equipment/BusEquipmentRefId | M | GUID that identifies the type of equipment. | IdRefType | |
| EquipmentList/Equipment/Count | M | The number of pieces of this type of equipment that are on this bus. | xs:unsignedInt | |
| ManufactureYear | O | The manufacture year of the bus (CCYY). | xs:gYear | |
| VehicleIdentificationNumber | O | The Vehicle Identification Number (VIN) of the bus. | xs:normalizedString | |
| LicensePlateNumber | O | The vehicle's license plate number. | xs:normalizedString | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object exposes telematics information to the zone.
SIF_Events are reported for this object.
Figure 6.16.3-1: BusPositionInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| BusPositionInfo | This object exposes telematics information to the zone. | |||
@![]() | BusInfoRefId | M | The GUID that identifies the bus. This object only has meaning as current data for this particular bus. | IdRefType |
| Date | M | The date of the report from the bus. | xs:date | |
| Time | M | The time of the report from the bus. | xs:time | |
| GridLocation | M | The location of the bus. | GridLocation | |
| TelematicsId | O | ID of the hardware unit on the bus that tracks & reports location and status. The interpretation of the content is deployment specific, but the format must be compact. | xs:normalizedString | |
| TelemetryList | O | List | ||
| TelemetryList/Telemetry | OR | Indicators and values provided by the hardware along with this position snapshot. For events, it is safe to assume that one of these items triggered the hardware to issue an update. The following values are suggested for common reports to enhance interoperability, but each deployment will have items dictated by the infrastructure. A format for reporting continuous-value metrics is also suggested. Suggested Values: Panic—panic button pressed Accident—airbag deployed or some other detection Checkpoint—manually triggered per procedures Assistance—non-emergency request Timer—timed report RouteStatus—change to RouteStatus/Status Open—door open Close—door closed ToD—shifted into "Drive" OffD—shifted off "Drive" StpLght—Stop Lights are on WrngLght—Warning lights are on StpArm—Stop arm is out CrsngGt—Crossing gate is extended EcmOp—ECM Oil Pressure is Low EcmOt—ECM Oil Temperature is high EcmTt—ECM transmission temperature is high EcmTp—Transmission Oil Pressure is low EcmFuelPrs—ECM Fuel Pressure is low EcmExtIdle—ECM Extended engine idle period EcmOvrSpeed—ECM engine over Speed EcmVltg—ECM Voltage is low OutBndry—Out of Boundary FuelGauge-34pct—suggested continuous-value syntax, minimal use of special characters | xs:normalizedString | |
| BusDriver | O | Information identifying the driver. | ||
| BusDriver/Name | C | The name of the driver. Condition is that at least one of this and EmployeePersonalRefId must be included. | Name | |
| BusDriver/EmployeePersonalRefId | C | The GUID of the driver's EmployeePersonal object. Condition is that at least one of this and BusDriver/Name must be included. | IdRefType | |
| BusDriver/Status | M | Boarding status of the driver. | values:
| |
| BusStaffList | O | List identifying other staff. This may include aides, nurses, proctors, etc. | List | |
| BusStaffList/BusStaff | OR | Information about an individual staff member on the bus. | ||
| BusStaffList/BusStaff/Name | C | The name of this staff member. Condition is that at least one of this and EmployeePersonalRefId must be included. | Name | |
| BusStaffList/BusStaff/EmployeePersonalRefId | C | The GUID of the employee's EmployeePersonal object. Condition is that at least one of this and BusStaff/Name must be included. | IdRefType | |
| BusStaffList/BusStaff/Status | M | Boarding status of this staff member. | values:
| |
| RouteStatus | C | If the bus is running a route, this element must be included in the object. Absence means the bus is not operating a route. | ||
| RouteStatus/BusRouteInfoRefId | M | The GUID that identifies the route. | IdRefType | |
| RouteStatus/Status | M | Status of the route. | values:
| |
| @ | BusRouteDetailRefId | O | If the bus is currently at a stop in this route, identify the stop's SIF object. | IdRefType |
| OtherStatus | C | If the bus is not running a regularly scheduled route but is transporting (or positioning to transport) passengers as approved and directed by the school district, this element describes the activity. It's also used for maintenance, repair, and other authorized movements. This element is mutually exclusive with RouteStatus. Absence of both RouteStatus and OtherStatus is acceptable, but may indicate unauthorized operation. The following values are suggested to enhance interoperability, but the field is free-form. Suggested Values: Field Trip Sporting Event Support Services Maintenance Repair | xs:normalizedString | |
| Odometer | O | Current odometer reading. | xs:decimal | |
| @ | Unit | M | Units used in the odometer reading. | values:
|
| Speedometer | O | Current speedometer reading. | xs:decimal | |
| @ | Unit | M | Units used in the speedometer reading. | values:
|
| Students | O | A list of students and their statuses. The complete list may be sent with some events (e.g. change in RouteStatus) per district policy, but it is more typical of responses. | List | |
| Students/Student | OR | Each student's status. | ||
| Students/Student/StudentPersonalRefId | M | GUID that identifies the student that this element refers to. | IdRefType | |
| Students/Student/Status | M |
Boarding status of this student. Note: Values | values:
| |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains the schedule for the bus route.
SIF_Events are reported for this object.
Figure 6.16.4-1: BusRouteDetail| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| BusRouteDetail | This object contains the schedule for the bus route. | |||
@![]() | RefId | M | GUID that identifies this object. | RefIdType |
| @ | BusRouteInfoRefId | M | GUID that identifies the bus route. | IdRefType |
| BusStopInfoRefId | M | GUID that identifies a bus stop on the route. | IdRefType | |
| ArrivalTime | M | The time that the bus associated with this route will stop at this bus stop. | xs:time | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains all of the information about a bus route.
SIF_Events are reported for this object.
Figure 6.16.5-1: BusRouteInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| BusRouteInfo | This object contains all of the information about a bus route. | |||
@![]() | RefId | M | GUID that identifies this bus route. | RefIdType |
| BusInfoRefId | M | GUID that identifies the bus that is associated with this route. | IdRefType | |
| RouteNumber | M | A unique identifier for the route. It may contain any printable ASCII character. F or instance, you may have route 16AM in the morning and a 16PM in the afternoon. | xs:normalizedString | |
| RouteType | M | The type of route. | values:
| |
| MaximumLoad | O | The maximum number of students who are on the bus at any point along this route. | xs:unsignedInt | |
| Description | O | Short explanation of the route. It may be used to designate an area, or used to color-code bus routes (the "orange" route). | xs:string | |
| Name | O | Name of the driver who drives this route. | Name | |
| RouteDurationLoaded | O | Refers to the amount of time that at least one student is riding the bus. | xs:duration | |
| RouteDurationTotal | O | Includes time when no student is on the bus, including time driving to and from the garage, etc. | xs:duration | |
| RouteDistanceLoaded | O | Refers to the distance the bus drives when at least one student is riding the bus. | xs:decimal | |
| @ | Unit | M | Distance unit used. | values:
|
| RouteDistanceTotal | O | Includes the total distance driven for this route including to and from garage. | xs:decimal | |
| @ | Unit | M | Distance unit used. | values:
|
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains information about a bus stop.
SIF_Events are reported for this object.
Figure 6.16.6-1: BusStopInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| BusStopInfo | This object contains information about a bus stop. | |||
@![]() | RefId | M | GUID that identifies this location. | RefIdType |
| Description | M | An explanation of this location. | xs:string | |
| GridLocation | O | The location of the bus stop. | GridLocation | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object contains transportation information about a student. Students should have at least two StudentTransportInfo objects associated with them: one for inbound information (getting to school) and one for outbound information (leaving school). If their transportation changes based on the day of the week, then a student will have more than two StudentTransportInfo objects.
SIF_Events are reported for this object.
Figure 6.16.7-1: StudentTransportInfo| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| StudentTransportInfo | This object contains transportation information about a student. Students should have at least two StudentTransportInfo objects associated with them: one for inbound information (getting to school) and one for outbound information (leaving school). If their transportation changes based on the day of the week, then a student will have more than two StudentTransportInfo objects. | |||||
@![]() | RefId | M | GUID that identifies this object. | RefIdType | ||
| @ | StudentPersonalRefId | M | GUID that identifies the student that this object refers to. | IdRefType | ||
| @ | Type | M | The direction of transportation that this object refers to. | values:
| ||
| @ | DayOfWeek | M | This attribute indicates the day(s) of the week to which this object refers. | xs:token
| ||
| @ | SchoolInfoRefId | M | GUID referring to the school that the student attends on these day(s) of the week. | IdRefType | ||
| Eligibility | O | Eligibility status of student for district transportation for this trip. Note: this element has been deprecated—use | values:
| |||
| HomeToSchoolDistance | O | Distance between the student’s home address and the school. | xs:decimal | |||
| @ | Unit | M | Units used in distance reporting. | values:
| ||
| WalkToStopDistance | O | Distance between the student’s address and the bus stop where they are picked up or dropped off. | xs:decimal | |||
| @ | Unit | M | Units used in distance reporting. | values:
| ||
| StopToSchoolDistance | O | Distance between the bus stop where a student is picked up or dropped off and the school. | xs:decimal | |||
| @ | Unit | M | Units used in distance reporting. | values:
| ||
| OriginPoint | O | |||||
| @ | BusRouteDetailRefId | M | GUID that identifies the bus stop/route where the student gets on the bus. | IdRefType | ||
| OriginPoint/ArrivalTime | O | The time that the bus associated with this route will stop at this bus stop. | xs:time | |||
| OriginPoint/RouteNumber | O | A unique identifier for the route. For instance, you may have route 16AM in the morning and a 16PM in the afternoon. | xs:normalizedString | |||
| OriginPoint/RouteDescription | O | Short explanation of the route. | xs:string | |||
| OriginPoint/VehicleNumber | O | Vehicle number of the bus. | xs:normalizedString | |||
| OriginPoint/BusStopDescription | O | An explanation of this location. | xs:string | |||
| HomeBusRouteDetail | O | GUID referring to a BusRouteDetail object that identifies the origin bus stop for an inbound route or the destination bus stop for an outbound route. If the HomeBusRouteDetail element does not exist, then the student does not ride a bus to/from school. Note: this element has been deprecated—use | IdRefType | |||
| @ | SIF_RefObject | M | values:
| |||
| TransferPoints | O | List | ||||
| TransferPoints/TransferPoint | OR | There should be one TransferPoint element for each intermediate point on a trip. The "embark" and "disembark" bus stops for a single transfer point must be at the same location. To order multiple TransferPoint elements, use the Time element of the BusStopInfo objects referenced by the attributes. | ||||
| TransferPoints/TransferPoint/ EmbarkBusRouteDetail | M | GUID that identifies the bus stop/route where the student gets on the bus. | IdRefType | |||
| @ | SIF_RefObject | M | values:
| |||
| TransferPoints/TransferPoint/ DisembarkBusRouteDetail | M | GUID that identifies the bus stop/route where the student gets off the bus. | IdRefType | |||
| @ | SIF_RefObject | M | values:
| |||
| SchoolBusRouteDetail | O | GUID referring to a BusRouteDetail object that identifies the origin bus stop for an outbound route or the destination bus stop for an inbound route. If the SchoolBusRouteDetail does not exist, then the student does not ride a bus to/from school. Note: this element has been deprecated—use | IdRefType | |||
| @ | SIF_RefObject | M | values:
| |||
| DestinationPoint | O | |||||
| @ | BusRouteDetailRefId | M | GUID that identifies the bus stop/route where the student gets off the bus. | IdRefType | ||
| DestinationPoint/ArrivalTime | O | The time that the bus associated with this route will stop at this bus stop. | xs:time | |||
| DestinationPoint/RouteNumber | O | A unique identifier for the route. F or instance, you may have route 16AM in the morning and a 16PM in the afternoon. | xs:normalizedString | |||
| DestinationPoint/RouteDescription | O | Short explanation of the route. It may be used to designate an area, or used to color-code bus routes (the "orange" route). | xs:string | |||
| DestinationPoint/VehicleNumber | O | Vehicle number of the bus. | ||||
| DestinationPoint/BusStopDescription | O | An explanation of this location. | xs:string | |||
| StateAidQualification | O | The qualification status of a student entitling local education agency to receive state transportation aid. | NCES0720StateTransportationAidQualificationType | |||
| TransportationStatus | O | Information about whether or not a student is transported to and/or from school or receives services, aid, or payment in lieu of transportation. | NCES0719TransportationStatusType | |||
| PublicExpense | O | The eligibility of a student for transportation between home and school at local public expense because of distance, disability, or other reasons. | NCES0721TransportationAtPublicExpenseEligibilityType | |||
| SIF_Metadata | O | SIF_Metadata | ||||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
The Vertical Reporting Task Force has the following responsibilities:
Click here for non-normative background/supplementary documentation from this group.
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.
Figure 6.17.1-1: ReportAuthorityInfo| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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. | |||
@![]() | RefId | M | The unique identifier for this agency/report authority. | RefIdType |
| AuthorityName | M | Name of the agency/report authority. | xs:normalizedString | |
| AuthorityId | M | 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 | |
| AuthorityDepartment | O | Department, office, or subdivision of the agency/report authority. | xs:normalizedString | |
| AuthorityLevel | M | Level of the authority. | values:
| |
| ContactInfo | O | Information on the contact person in this agency. | ContactInfo | |
| Address | O | Address | ||
| PhoneNumber | O | PhoneNumber | ||
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
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.
Figure 6.17.2-1: ReportManifest| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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. | |||
@![]() | RefId | M | The unique identifier for this report manifest. | RefIdType |
| @ | ReportAuthorityInfoRefId | M | ID (GUID) of the authority providing this manifest. | IdRefType |
| SIF_Version | M |
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 | VersionWithWildcardsType | |
| SIF_MaxBufferSize | M | Specifies the maximum size of a packet to be returned to the report authority. | xs:unsignedInt | |
| ReceivingAuthority | O | The GUID of the authority for whom the report is intended, usually the same authority that defines this manifest. | IdRefType | |
| @ | SIF_RefObject | M | The name of the object referenced. | values:
|
| ReportName | M | The authority's accepted name for the report. | xs:normalizedString | |
| Description | O | The description for the report. | xs:string | |
| ReportingPeriod | O | 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/DueDate | O | The official due date of the report. | xs:date | |
| ReportDefinitionSource | M |
Indicates where the report definition can be found.
If Type is | xs:string | |
| @ | Type | M | This attribute indicates the source of the report definition. | values:
|
| @ | QueryLanguage | M |
The vendor-defined query language used in the report definition (e.g. | xs:token |
| ReportFormatList | O | 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 | |
| @ | Type | M | This attribute indicates the encoding of the format reference. | values:
|
| @ | ContentType | M |
The vendor-defined content type (e.g. | xs:normalizedString |
| SIF_QueryGroup | C |
Parent element containing the querying criteria for extracting the report information if | List | |
| SIF_QueryGroup/SIF_Query | MR | SIF_Query | ||
| SIF_ExtendedQuery | C |
Query criteria for extracting the report information if | SIF_ExtendedQuery | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
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.
Figure 6.17.3-1: SIF_ReportObject| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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. | |||
@![]() | RefId | M | The ID (GUID) that uniquely identifies this instance of a report. | RefIdType |
| ReportInfo | C | 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. | ||
| @ | ReportManifestRefId | M | 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:
| |
| 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_RefObject | M | The name of a SIF data object. When used in the context of ReportSubmitterInfo, this attribute must have one of the following values. | values:
|
| 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/Description | O | xs:string | ||
| ReportData | C |
Container element for the report content; one valid SIF object can occur as a child here. This element is conditional.
This element or | ReportDataObjectType | |
| SIF_ExtendedQueryResults | C |
The report content resulting from a | SIF_ExtendedQueryResults | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
This object provides a mechanism for requesting and updating state student identifiers. While communicated using SIF's request/response
model, this object is an exception case in terms of how it interacts especially with SIF's query mechanisms (e.g. one wouldn't request
certain elements be returned from StudentLocator).
The use of this object is dictated by external use cases and best practices.
SIF_Events are not reported for this object.
Click here for non-normative background/supplementary documentation on this object.
Figure 6.17.4-1: StudentLocator| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| StudentLocator | This object provides a mechanism for requesting and updating state student identifiers. While communicated using SIF's request/response
model, this object is an exception case in terms of how it interacts especially with SIF's query mechanisms (e.g. one wouldn't request
certain elements be returned from | |||
| @ | IdStatus | M | Communicates the orchestration status for the object.
Because the | values:
|
| @ | TransactionId | M | GUID that allows requesters and responders to refer to the same logical StudentLocator "transaction" over more than one SIF_Request/SIF_Response exchange. | GUIDType |
| StateProvinceId | M | This is the student's state-assigned ID. May be empty in a response where IdStatus is "Ambiguous." NOTE: Although used in the context of a Request query, this field conveys information to (and from) the state and typically does not participate in the matching logic. | StateProvinceId | |
| Confidence | O | 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. States may also choose to use this element for the district to indicate in the query what score threshold it wants associated with the request. *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 | |
| LocalId | O | This is the requesting agency's unique ID for the student. NOTE: Although used in the context of a Request query, this field conveys information to (and from) the state and typically does not participate in the matching logic. | LocalId | |
| StudentPersonalRefId | O | Requesting agency's local zone GUID of the student's StudentPersonal object. NOTE: Although used in the context of a Request query, this field conveys information to (and from) the State and typically does not participate in the matching logic. | IdRefType | |
| RequestingAgencyId | OR | Identification of the agency and/or location requesting the state ID. Optional because the SIF Zone infrastructure may provide adequate information for the state to ascertain the origin of the request. NOTE: Although used in the context of a Request query, this field conveys information to the state and typically does not participate in the matching logic. | xs:normalizedString | |
| @ | Type | M | The functional level of the requesting agency. | values:
|
| GradeLevel | O | The student's current grade level. | GradeLevel | |
| SSN | O | Social security number of the student. | xs:normalizedString | |
| Name | OR | The name(s) of the student. | Name | |
| Address | OR | The address(es) of the student. | Address | |
| Demographics | O | Demographic information about the student. This will typically be the core matching information. Privacy considerations may mean that it is filled differently here than it might be in a local StudentPersonal, but it must include enough to drive the state's matching algorithms. | Demographics | |
| Contact | OR | Typically used to provide the state information about a student's parents and legal guardians. | ||
| Contact/Relationship | M | Relationship to the student. | Relationship | |
| Contact/Name | OR | The name(s) of the contact. | Name | |
| Contact/OtherId | O | An other ID associated with the contact. | OtherId | |
| Contact/EducationalLevel | O | Highest level of education completed by the contact. | EducationalLevel | |
| EffectiveDate | O | For Requests, this should match StudentSchoolEnrollment/EntryDate. For Releases, StudentSchoolEnrollment/ExitDate. NOTE: Although used in the context of a Request query, this field conveys information to the state and typically does not participate in the matching logic. | xs:date | |
| StartDate | O | Begin date for a range that is being requested. Note: In most cases this will correspond to the school entry date. | xs:date | |
| EndDate | O | End date for a range that is being requested. Note: In most cases this will correspond to the school exit date. | xs:date | |
| GraduationDate | O | Indicates the date the student graduated—Year, Year and Month, or Year, Month and Day may be specified. Intended to facilitate locating students that may not be currently enrolled in a school or district, particularly in the context of locating student identifiers for initiating a request for a student's academic record. Supplied date values may often be approximations made by the entity endeavoring to request a student's academic record. | GraduationDate | |
| SchoolAttendedName | O | The name of the school last attended by the student. | xs:normalizedString | |
| SchoolAttendedLocation | O | The location of the school last attended by the student (e.g. city or county name, district name, etc.). | xs:normalizedString | |
| OtherId | O | Additional student identifier not represented elsewhere in StudentLocator (e.g. the driver's license number of the student). | OtherId | |
| SIF_Error | C |
When IdStatus is set to | SIF_Error | |
| SIF_Metadata | O | SIF_Metadata/TimeElement may be specified as metadata of a StudentLocator SIF_Request to indicate a time duration to which the request parameters apply (as opposed to adding new elements to the StudentLocator object). This metadata may be supplied by systems that know a student existed in a district during a certain time period (e.g. a system initiating a student record exchange). If the responder is able to make use of the metadata, it may do so to narrow down the student look-up; otherwise the metadata can be ignored or logged. | SIF_Metadata | |
| SIF_ExtendedElements | O | SIF_ExtendedElements |
Common and supporting types referenced in this specification are included here as a reference.
AbstractContentPackageType used as an element rather than an object, omitting RefId, SIF_Metadata and SIF_ExtendedElements.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| AbstractContentElementType |
| |||
| XMLData | C | Contains an arbitary XML element, encoded in UTF-8. | <xs:any processContents="lax" /> | |
| @ | Description | O | 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 | xs:token |
| TextData | C | Contains arbitrary text, encoded in UTF-8. | xs:string | |
| @ | MIMEType | O | Optional MIME type to specifically indicate the text type. Otherwise | xs:token |
| @ | FileName | O | 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 |
| @ | Description | O |
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 | xs:token |
| BinaryData | C | Contains the base64Binary encoding of binary or text data not encoded in UTF-8. | xs:base64Binary | |
| @ | MIMEType | M | MIME type to indicate the content type. | xs:token |
| @ | FileName | O | 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 |
| @ | Description | O |
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 | xs:token |
| Reference | C | References external content via a URL. | ||
| @ | MIMEType | M | MIME type to indicate the content type to be expected when retrieving the external content. | xs:token |
| @ | Description | O |
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 | xs:token |
| Reference/URL | M | Location of external content. | xs:anyURI |
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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 | |||
@![]() | RefId | M | The GUID that uniquely identifies an instance of the package. | RefIdType |
| XMLData | C | Contains an arbitary XML element, encoded in UTF-8. | <xs:any processContents="lax" /> | |
| @ | Description | O | 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 | xs:token |
| TextData | C | Contains arbitrary text, encoded in UTF-8. | xs:string | |
| @ | MIMEType | O | Optional MIME type to specifically indicate the text type. Otherwise | xs:token |
| @ | FileName | O | 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 |
| @ | Description | O |
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 | xs:token |
| BinaryData | C | Contains the base64Binary encoding of binary or text data not encoded in UTF-8. | xs:base64Binary | |
| @ | MIMEType | M | MIME type to indicate the content type. | xs:token |
| @ | FileName | O | 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 |
| @ | Description | O |
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 | xs:token |
| Reference | C | References external content via a URL. | ||
| @ | MIMEType | M | MIME type to indicate the content type to be expected when retrieving the external content. | xs:token |
| @ | Description | O |
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 | xs:token |
| Reference/URL | M | Location of external content. | xs:anyURI | |
| SIF_Metadata | O | SIF_Metadata | ||
| SIF_ExtendedElements | O | SIF_ExtendedElements |
Base type, without attributes, for Name elements, primarily to allow structure to be leveraged with different Type attribute values.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| BaseNameType |
Base type, without attributes, for | |||
| Prefix | O | A prefix associated with the name like Mr., Ms., etc. | xs:normalizedString | |
| LastName | M | The last name. | LastName | |
| FirstName | M | The first name. | FirstName | |
| MiddleName | O | The middle name or initial. | MiddleName | |
| Suffix | O | Generation of suffix like II, Jr., etc. | xs:normalizedString | |
| PreferredName | O | This is a name that the person prefers to be called by. | xs:normalizedString | |
| SortName | O | This is the name to be used for sorting purposes. | xs:normalizedString | |
| FullName | O | A free text field for the complete name. | xs:normalizedString |
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| DefinedProtocolsType | The transport protocols defined in SIF. | values:
|
This provides information about the value of a food service transaction amount. When credits are specified the value is the total cash value of all the credits.
Figure A.6-1: FSAmountType| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FSAmountType | MonetaryAmountType | |||
| @ | Type | Type of amount. Note that when this common element is used not all of the following values apply. There are notes to indicate values that are applicable.
The type | values:
| |
| @ | Credits |
Number of credits. This attribute does not apply to | xs:decimal |
Reports aggregate counts and, optionally, received funds for individual combinations of student or staff meal status and meal type.
Figure A.7-1: FSCountType| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| FSCountType | Reports aggregate counts and, optionally, received funds for individual combinations of student or staff meal status and meal type. | |||
| MealStatus | C | Student meal status. If a meal status applies, either MealStatus (for students), or EarnedStatus (for staff) is specified. | MealStatus | |
| EarnedStatus | C | Staff meal status. | EarnedStatus | |
| MealType | O | MealType | ||
| Amount | O | FSAmountType | ||
| Tax | O | Value of tax collected. | MonetaryAmountType | |
| Value | M | The value of the count. | xs:decimal |
| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| GUIDType | SIF format for a GUID. | xs:token
|
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| IdRefType | A reference to a RefId. | RefIdType |
A monetary amount.
Figure A.10-1: MonetaryAmountType| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| MonetaryAmountType | A monetary amount. | xs:decimal | ||
| @ | Currency | O | Currency code. Where omitted, defaults to implementation-defined local currency, typically USD in the United States. | ISO4217CurrencyNamesAndCodeElementsType |
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| MsgIdType | A message identifier. | GUIDType |
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.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| NameOfRecordType |
Extends | BaseNameType | ||
| @ | Type | M | Code that specifies what type of name this is. | values:
|
An unenumerated SIF object name.
Figure A.13-1: ObjectNameType| Element/@Attribute | Char | Description | Type | |||
|---|---|---|---|---|---|---|
| ObjectNameType | An unenumerated SIF object name. | xs:NCName
|
Provides information about a student's relationship to an organization.
Figure A.14-1: OrganizationRelationshipType| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| OrganizationRelationshipType | Provides information about a student's relationship to an organization. | |||
| ResidencyStatus | M | |||
| ResidencyStatus/Code | M | Location of an individual's legal residence relative to (within or outside) the boundaries of the organization. | NCES0598PublicSchoolResidenceStatusType | |
| ResidencyStatus/OtherCodeList | O | OtherCodeList | ||
| ProvidingInstruction | M | Flag that indicates if the reporting organization is providing instruction to the student. | xs:boolean | |
| ProvidingServices | M | Flag that indicates if the reporting organization is providing services that are not related to instruction to the student. An example of a non-instructional service is transportation. | xs:boolean | |
| FinanciallyResponsible | M | Flag that indicates if the reporting organization is financially responsible for the student. | xs:boolean |
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 like StudentPersonal.
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| OtherNameType |
Extends | BaseNameType | ||
| @ | Type | M | Code that specifies what type of name this is, excluding "name of record." | values:
|
A year, with an optional month/day, or an optional month by itself.
Figure A.16-1: PartialDateType| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| PartialDateType | A year, with an optional month/day, or an optional month by itself. | union of: xs:date xs:gYearMonth xs:gYear |
| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| RefIdType | An object or element identifier. | GUIDType |
SIF_ReportObject/ReportData, plus ReportPackage.Figure A.18-1: ReportDataObjectTypeTable A.18-1: ReportDataObjectTypeAbstractContentPackageType. 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.
Figure A.19-1: ReportPackageType| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| 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 |
SIF_Event message.Figure A.21-1: SIF_EventObjectTypeTable A.21-1: SIF_EventObjectTypeSIF_Query/SIF_Example.Figure A.22-1: SIF_ExampleObjectType| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| SIF_ExampleObjectType | The SIF objects that can be included in SIF_Query/SIF_Example. | choice of: StudentLocator |
SIF_Provide message.Figure A.23-1: SIF_ProvideObjectNamesTypeTable A.23-1: SIF_ProvideObjectNamesTypeSIF_Request message, or every SIF object name.Figure A.24-1: SIF_RequestObjectNamesTypeTable A.24-1: SIF_RequestObjectNamesTypeSIF_Response message.Figure A.25-1: SIF_ResponseObjectsTypeTable A.25-1: SIF_ResponseObjectsTypeSIF_Response message, or every SIF object.Figure A.26-1: SIF_ResponseObjectTypeTable A.26-1: SIF_ResponseObjectTypeSIF_Subscribe message.Figure A.27-1: SIF_SubscribeObjectNamesTypeTable A.27-1: SIF_SubscribeObjectNamesType| Element/@Attribute | Char | Description | Type | |
|---|---|---|---|---|
| URIOrBinaryType | Allows for a URL or a Base-64 encoding. | union of: xs:anyURI xs:base64Binary |
| Element/@Attribute | Char | Description | Type | |||||
|---|---|---|---|---|---|---|---|---|
| VersionType | A SIF version number. | xs:token
|
| Element/@Attribute | Char | Description | Type | |||||
|---|---|---|---|---|---|---|---|---|
| VersionWithWildcardsType | A SIF version number, with wildcards for matching multiple versions. | xs:token
|
Select shared and named code sets defined in SIF are included here for reference.
0 | Success (ZIS ONLY). SIF_Status/SIF_Data may contain additional data. |
1 | Immediate SIF_Ack (AGENT ONLY). Message is persisted or processing is complete. Discard the referenced message. |
2 | Intermediate 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. |
3 | Final 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. |
7 | Already have a message with this SIF_MsgId from you. |
8 | Receiver is sleeping. |
9 | No messages available. This is returned when an agent is trying to pull messages from a ZIS and there are no messages available. |
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.
0 | Unknown (This should NEVER be used if possible) |
1 | XML Validation |
2 | Encryption |
3 | Authentication |
4 | Access and Permissions |
5 | Registration |
6 | Provision |
7 | Subscription |
8 | Request and Response |
9 | Event Reporting and Processing |
10 | Transport |
11 | System (OS, Database, Vendor localized, etc.) |
12 | Generic Message Handling |
13 | SMB Handling |
1 | Generic error |
2 | Message is not well-formed |
3 | Generic validation error |
4 | Invalid value for element/attribute |
6 | Missing mandatory element/attribute |
1 | Generic error |
1 | Generic error |
2 | Generic authentication error (with signature) |
3 | Missing sender's certificate |
4 | Invalid certificate |
5 | Sender's certificate is not trusted |
6 | Expired certificate |
7 | Invalid signature |
8 | Invalid encryption algorithm (only accepts MD4) |
9 | Missing public key of the receiver (when decrypting message) |
10 | Missing receiver's private key (when decrypting message) |
1 | Generic error |
2 | No permission to register |
3 | No permission to provide this object |
4 | No permission to subscribe to this SIF_Event |
5 | No permission to request this object |
6 | No permission to respond to this object request |
7 | No permission to publish SIF_Event |
8 | No permission to administer policies |
9 | SIF_SourceId is not registered |
10 | No permission to publish SIF_Event Add |
11 | No permission to publish SIF_Event Change |
12 | No permission to publish SIF_Event Delete |
1 | Generic error |
2 | The SIF_SourceId is invalid |
3 | Requested transport protocol is unsupported |
4 | Requested SIF_Version(s) not supported. |
6 | Requested SIF_MaxBufferSize is too small |
7 | ZIS requires a secure transport |
9 | Agent is registered for push mode (returned when a push-mode agent sends a SIF_GetMessage). |
10 | ZIS does not support the requested Accept-Encoding value. |
1 | Generic error |
3 | Invalid object |
4 | Object already has a provider (SIF_Provide message) |
1 | Generic error |
3 | Invalid object |
1 | Generic error |
3 | Invalid object |
4 | No provider |
7 | Responder does not support requested SIF_Version |
8 | Responder does not support requested SIF_MaxBufferSize |
9 | Unsupported query in request |
10 | Invalid SIF_RequestMsgId specified in SIF_Response |
11 | SIF_Response is larger than requested SIF_MaxBufferSize |
12 | SIF_PacketNumber is invalid in SIF_Response |
13 | SIF_Response does not match any SIF_Version from SIF_Request |
14 | SIF_DestinationId does not match SIF_SourceId from SIF_Request |
15 | No support for SIF_ExtendedQuery |
16 | SIF_RequestMsgId deleted from cache due to timeout |
17 | SIF_RequestMsgId deleted from cache by administrator |
18 | SIF_Request cancelled by requesting agent |
1 | Generic error |
3 | Invalid event |
1 | Generic error |
2 | Requested protocol is not supported |
3 | Secure channel requested and no secure path exists |
4 | Unable to establish connection |
1 | Generic error |
1 | Generic error |
2 | Message not supported |
3 | Version not supported |
4 | Context not supported |
5 | Protocol error |
6 | No such message (as identified by SIF_OriginalMsgId) |
7 | Multiple contexts not supported |
1 | Generic error |
2 | SMB can only be invoked during a SIF_Event acknowledgement |
3 | Final SIF_Ack expected from Push-Mode Agent |
4 | Incorrect SIF_MsgId in final SIF_Ack |
Content | A link to another state or school content standard |
Other | Any other type of relationship between the current standard and the target standard item. |
PD | |
State | A link to a standard from another state. The purpose of this is to express relationships between state standards. |
1 | An exception has occurred in the agent (generic error) |
1 | Insufficient information in message |
2 | Cannot process change due to business rule |
3 | Related information unavailable |
1 | Data was changed to complete request successfully |
2 | Data was added to complete request successfully |
1 | Success |
1 | An exception has occurred in the ZIS (generic error) |
2 | Message could not be delivered due to buffer size limitations |
3 | Message could not be delivered due to minimum security requirements |
4 | Message could not be delivered due to destination agent not supporting SIF_Version |
5 | Message could not be delivered due to SIF_Response validation |
S200 | Specialized instruction |
S101 | Homeless transportation |
S102 | Choice transportation |
S001 | Reading / language program |
S002 | Mathematics program |
S003 | Science program |
S004 | Social studies program |
S005 | Economics program |
S006 | Computers program |
S007 | Vocational / career program |
S008 | Support guidance / advocacy program |
S009 | Study skills program |
S010 | After-school tutoring program |
S011 | Summer school program |
S012 | 4-year-old program |
S013 | 3-year-old program |
S014 | Extended kindergarten program (beyond half day) |
S015 | Health / dental / eye care service |
S016 | Extended instruction time program |
S017 | Supplemental outside provider instructional services |
S182 | Additional supervised test breaks for English Learners within testing day or following each section provided that test section is completed within a testing day |
S183 | Frequent breaks |
S184 | Multi-day administration |
S185 | Multiple test sessions |
S186 | Scheduled extended time |
S187 | Student-requested extended time |
S188 | Supervised test breaks |
S189 | Terminate session when student indicates they have completed all items they can |
S190 | Test administered at best time of day for student |
S191 | Untimed |
S192 | Carrel |
S193 | Facing examiner / proctor |
S194 | Front of room near examiner / proctor |
S195 | Hospital / home testing |
S196 | Individual |
S197 | Resource room |
S198 | Separate room |
S199 | Separate room with other English Learners under supervision of district employee |
S200 | Small group |
S201 | Small group in separate room |
S202 | Special ed classroom |
S203 | Special furniture |
S204 | Special lighting |
S205 | Specialized setting |
S135 | Adjustable swivel arm |
S136 | Adjustable table height |
S137 | Audio cassette player / tape recorder |
S138 | Colored lenses |
S139 | Enlarged keyboard |
S140 | Enlarged monitor view / screen display |
S141 | Laptop / computer |
S142 | Magnification device |
S143 | Physical supports |
S144 | Technological aid |
S145 | Track ball |
S146 | Video cassette player |
S105 | Amplification equipment |
S106 | Audiotape or CD |
S107 | Braille Reader |
S108 | Clarify directions |
S109 | Computer administration |
S110 | Cueing |
S111 | Examiner familiar with / to student |
S112 | Examiner fluent in sign language |
S113 | Font enlarged beyond large print version requirements |
S114 | Foreign language interpreter |
S115 | Foreign language interpreter for instructions, ask questions |
S116 | Format |
S117 | Graph paper |
S118 | Manipulatives for math items |
S119 | Mask portion of answer booklet |
S120 | Mask portion of test booklet |
S121 | Paraphrasing |
S122 | Provide reading windows |
S123 | Provide written directions on separate sheet / transparency |
S124 | Repeat / reword / clarify directions |
S125 | Sign language / cued speech interpreter |
S126 | Simplified language |
S127 | Student reads aloud |
S128 | Tactile cues |
S129 | Test administrator reads test directions aloud |
S130 | Test administrator reads test questions aloud |
S131 | Unlisted accommodation or modification |
S132 | Video cassette |
S133 | Visual cues |
S134 | Word processor |
S101 | Braille |
S102 | Foreign Language |
S103 | Large print booklet |
S104 | Manually coded English or American sign Language to present test questions |
S147 | Access to translation glossaries / word lists (english-to-primary language). Shall not include definitions of formulas |
S148 | Arithmetic table (math or science) |
S149 | Assistive device that does interfere with independent work of the student |
S150 | Assistive device that does not interfere with independent work of the student |
S151 | Augmentative communication device |
S152 | Braille writer |
S153 | Braille writer, no thesaurus, spell-or grammar-checker |
S154 | Brailler ruler |
S155 | Calculator (math or science) |
S156 | Cassette player / tape recorder |
S157 | Computer administration |
S158 | Cranmer abacus |
S159 | Dictated oral response to proctor / transcriber |
S160 | Dictionary |
S161 | Essay responses dictated to a scribe orally, in manually coded English or in American Sign Language; and scribe provides spelling, grammar and language conventions |
S162 | Grammar checker |
S163 | Large face calculator |
S164 | Larger diameter pencil |
S165 | Mask portion of answer folder |
S166 | Math manipulatives (math or science) |
S167 | Modified specil grip pencil |
S168 | Qualified foreign language interpreter for LEP student |
S169 | Response dictated in American Sign Language / Manually coded English |
S170 | Separate additional continuation pages for writing tasks |
S171 | Sign responses to sign language interpreter |
S172 | Speech recognition system |
S173 | Spell-checker |
S174 | Student marked in test booklet |
S175 | Talking calculator |
S176 | Test administrator marked / wrote test at student's direction due to student handwriting issues |
S177 | Thesaurus |
S178 | Translation dictionary for LEP student |
S179 | Verbalized problem-solving |
S180 | Word processor / typewriter / computer with thesaurus / spell-checker / grammar-checker enabled on essay responses writing portion of test |
S181 | Word processor / typewriter / computer with thesaurus / spell-checker / grammar-checker turned off |
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.
AB | Alberta |
BC | British Columbia |
MB | Manitoba |
NB | New Brunswick |
NL | Newfoundland and Labrador |
NS | Nova Scotia |
NT | North West Territories |
NU | Nunavut |
ON | Ontario |
PE | Prince Edward Island |
QC | Quebec |
SK | Saskatchewan |
YT | Yukon |
Note that the maintenance agency for these codes is [ISO 3166/MA].
AD | ANDORRA |
AE | UNITED ARAB EMIRATES |
AF | AFGHANISTAN |
AG | ANTIGUA AND BARBUDA |
AI | ANGUILLA |
AL | ALBANIA |
AM | ARMENIA |
AN | NETHERLANDS ANTILLES |
AO | ANGOLA |
AQ | ANTARCTICA |
AR | ARGENTINA |
AS | AMERICAN SAMOA |
AT | AUSTRIA |
AU | AUSTRALIA |
AW | ARUBA |
AX | ÅLAND ISLANDS |
AZ | AZERBAIJAN |
BA | BOSNIA AND HERZEGOVINA |
BB | BARBADOS |
BD | BANGLADESH |
BE | BELGIUM |
BF | BURKINA FASO |
BG | BULGARIA |
BH | BAHRAIN |
BI | BURUNDI |
BJ | BENIN |
BM | BERMUDA |
BN | BRUNEI DARUSSALAM |
BO | BOLIVIA |
BR | BRAZIL |
BS | BAHAMAS |
BT | BHUTAN |
BV | BOUVET ISLAND |
BW | BOTSWANA |
BY | BELARUS |
BZ | BELIZE |
CA | CANADA |
CC | COCOS (KEELING) ISLANDS |
CD | CONGO, THE DEMOCRATIC REPUBLIC OF THE |
CD | CONGO, THE DEMOCRATIC REPUBLIC OF THE |
CF | CENTRAL AFRICAN REPUBLIC |
CG | CONGO |
CH | SWITZERLAND |
CI | CÔTE D'IVOIRE |
CK | COOK ISLANDS |
CL | CHILE |
CM | CAMEROON |
CN | CHINA |
CO | COLOMBIA |
CR | COSTA RICA |
CS | SERBIA AND MONTENEGRO |
CU | CUBA |
CV | CAPE VERDE |
CX | CHRISTMAS ISLAND |
CY | CYPRUS |
CZ | CZECH REPUBLIC |
DE | GERMANY |
DJ | DJIBOUTI |
DK | DENMARK |
DM | DOMINICA |
DO | DOMINICAN REPUBLIC |
DZ | ALGERIA |
EC | ECUADOR |
EE | ESTONIA |
EG | EGYPT |
EH | WESTERN SAHARA |
ER | ERITREA |
ES | SPAIN |
ET | ETHIOPIA |
FI | FINLAND |
FJ | FIJI |
FK | FALKLAND ISLANDS (MALVINAS) |
FM | MICRONESIA, FEDERATED STATES OF |
FO | FAROE ISLANDS |
FR | FRANCE |
GA | GABON |
GB | UNITED KINGDOM |
GD | GRENADA |
GE | GEORGIA |
GF | FRENCH GUIANA |
GG | GUERNSEY |
GH | GHANA |
GI | GIBRALTAR |
GL | GREENLAND |
GM | GAMBIA |
GN | GUINEA |
GP | GUADELOUPE |
GQ | EQUATORIAL GUINEA |
GR | GREECE |
GS | SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS |
GT | GUATEMALA |
GU | GUAM |
GW | GUINEA-BISSAU |
GY | GUYANA |
HK | HONG KONG |
HM | HEARD ISLAND AND MCDONALD ISLANDS |
HN | HONDURAS |
HR | CROATIA |
HT | HAITI |
HU | HUNGARY |
ID | INDONESIA |
IE | IRELAND |
IL | ISRAEL |
IM | ISLE OF MAN |
IN | INDIA |
IO | BRITISH INDIAN OCEAN TERRITORY |
IQ | IRAQ |
IR | IRAN, ISLAMIC REPUBLIC OF |
IS | ICELAND |
IT | ITALY |
JE | JERSEY |
JM | JAMAICA |
JO | JORDAN |
JP | JAPAN |
KE | KENYA |
KG | KYRGYZSTAN |
KH | CAMBODIA |
KI | KIRIBATI |
KM | COMOROS |
KN | SAINT KITTS AND NEVIS |
KP | KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF |
KR | KOREA, REPUBLIC OF |
KW | KUWAIT |
KY | CAYMAN ISLANDS |
KZ | KAZAKHSTAN |
LA | LAO PEOPLE'S DEMOCRATIC REPUBLIC |
LB | LEBANON |
LC | SAINT LUCIA |
LI | LIECHTENSTEIN |
LK | SRI LANKA |
LR | LIBERIA |
LS | LESOTHO |
LT | LITHUANIA |
LU | LUXEMBOURG |
LV | LATVIA |
LY | LIBYAN ARAB JAMAHIRIYA |
MA | MOROCCO |
MC | MONACO |
MD | MOLDOVA, REPUBLIC OF |
MG | MADAGASCAR |
MH | MARSHALL ISLANDS |
MK | MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF |
ML | MALI |
MM | MYANMAR |
MN | MONGOLIA |
MO | MACAO |
MP | NORTHERN MARIANA ISLANDS |
MQ | MARTINIQUE |
MR | MAURITANIA |
MS | MONTSERRAT |
MT | MALTA |
MU | MAURITIUS |
MV | MALDIVES |
MW | MALAWI |
MX | MEXICO |
MY | MALAYSIA |
MZ | MOZAMBIQUE |
NA | NAMIBIA |
NC | NEW CALEDONIA |
NE | NIGER |
NF | NORFOLK ISLAND |
NG | NIGERIA |
NI | NICARAGUA |
NL | NETHERLANDS |
NO | NORWAY |
NP | NEPAL |
NR | NAURU |
NU | NIUE |
NZ | NEW ZEALAND |
OM | OMAN |
PA | PANAMA |
PE | PERU |
PF | FRENCH POLYNESIA |
PG | PAPUA NEW GUINEA |
PH | PHILIPPINES |
PK | PAKISTAN |
PL | POLAND |
PM | SAINT PIERRE AND MIQUELON |
PN | PITCAIRN |
PR | PUERTO RICO |
PS | PALESTINIAN TERRITORY, OCCUPIED |
PT | PORTUGAL |
PW | PALAU |
PY | PARAGUAY |
QA | QATAR |
RE | RÉUNION |
RO | ROMANIA |
RU | RUSSIAN FEDERATION |
RW | RWANDA |
SA | SAUDI ARABIA |
SB | SOLOMON ISLANDS |
SC | SEYCHELLES |
SD | SUDAN |
SE | SWEDEN |
SG | SINGAPORE |
SH | SAINT HELENA |
SI | SLOVENIA |
SJ | SVALBARD AND JAN MAYEN |
SK | SLOVAKIA |
SL | SIERRA LEONE |
SM | SAN MARINO |
SN | SENEGAL |
SO | SOMALIA |
SR | SURINAME |
ST | SAO TOME AND PRINCIPE |
SV | EL SALVADOR |
SY | SYRIAN ARAB REPUBLIC |
SZ | SWAZILAND |
TC | TURKS AND CAICOS ISLANDS |
TD | CHAD |
TF | FRENCH SOUTHERN TERRITORIES |
TG | TOGO |
TH | THAILAND |
TJ | TAJIKISTAN |
TK | TOKELAU |
TL | TIMOR-LESTE |
TM | TURKMENISTAN |
TN | TUNISIA |
TO | TONGA |
TR | TURKEY |
TT | TRINIDAD AND TOBAGO |
TV | TUVALU |
TW | TAIWAN, PROVINCE OF CHINA |
TZ | TANZANIA, UNITED REPUBLIC OF |
UA | UKRAINE |
UG | UGANDA |
UM | UNITED STATES MINOR OUTLYING ISLANDS |
US | UNITED STATES |
UY | URUGUAY |
UZ | UZBEKISTAN |
VA | HOLY SEE (VATICAN CITY STATE) |
VA | HOLY SEE (VATICAN CITY STATE) |
VC | SAINT VINCENT AND THE GRENADINES |
VE | VENEZUELA |
VG | VIRGIN ISLANDS, BRITISH |
VI | VIRGIN ISLANDS, U.S. |
VN | VIET NAM |
VU | VANUATU |
WF | WALLIS AND FUTUNA |
WS | SAMOA |
YE | YEMEN |
YT | MAYOTTE |
ZA | SOUTH AFRICA |
ZM | ZAMBIA |
ZW | ZIMBABWE |
Note that the maintenance agency for these codes is [ISO 3166/MA].
AIDJ | French Territory of the Afars and the Issas |
BQAQ | British Antarctic Territory |
BUMM | Burma |
CSHH | Czechoslovakia |
CTKI | Canton and Enderbury Islands |
DDDE | East Germany |
DYBJ | Dahomey |
FQHH | French Southern and Antarctic Territories |
FXFR | Metropolitan France |
GEHH | Gilbert and Ellice Islands |
HVBF | Upper Volta (Haute-Volta) |
JTUM | Johnston Island |
MIUM | Midway Atoll |
NHVU | New Hebrides |
NQAQ | Queen Maud Land |
NTHH | Neutral Zone |
PCHH | Trust Territory of the Pacific Islands |
PUUM | U.S. Miscellaneous Pacific Islands |
PZPA | Panama Canal Zone |
RHZW | Rhodesia |
SKIN | Sikkim |
SUHH | Soviet Union |
TPTL | East Timor |
VDVN | Democratic Republic of Vietnam |
WKUM | Wake Island |
YDYE | South Yemen |
YUCS | Yugoslavia |
ZRCD | Zaire |
AED | UAE Dirham |
AFN | Afghani |
ALL | Lek |
AMD | Armenian Dram |
ANG | Netherlands Antillian Guikder |
AOA | Kwanza |
ARS | Argentine Peso |
AUD | Australian Dollar |
AWG | Aruban Guilder |
AZN | Azerbaijanian Manat |
BAM | Convertible Marks |
BBD | Barbados Dollar |
BDT | Taka |
BGN | Bulgarian Lev |
BHD | Bahraini Dinar |
BIF | Burundi Franc |
BMD | Bermudian Dollar (customarily known as Bermuda Dollar) |
BND | Brunei Dollar |
BOB | Boliviano |
BOV | Mvdol |
BRL | Brazilian Real |
BSD | Bahamian Dollar |
BTN | Ngultrum |
BWP | Pula |
BYR | Belarussian Ruble |
BZD | Belize Dollar |
CAD | Canadian Dollar |
CDF | Franc Congolais |
CHE | WIR Euro |
CHF | Swiss Franc |
CHW | WIR Franc |
CLF | Unidades de formento |
CLP | Chilean Peso |
CNY | Yuan Renminbi |
COP | Colombian Peso |
COU | Unidad de Valor Real |
CRC | Costa Rican Colon |
CSD | Serbian Dinar |
CUP | Cuban Peso |
CVE | Cape Verde Escudo |
CYP | Cyprus Pound |
CZK | Czech Koruna |
DJF | Djibouti Franc |
DKK | Danish Krone |
DOP | Dominican Peso |
DZD | Algerian Dinar |
EEK | Kroon |
EGP | Egyptian Pound |
ERN | Nakfa |
ETB | Ethiopian Birr |
EUR | Euro |
FJD | Fiji Dollar |
FKP | Falkland Islands Pound |
GBP | Pound Sterling |
GEL | Lari |
GHC | Cedi |
GIP | Gibraltar Pound |
GMD | Dalasi |
GNF | Guinea Franc |
GTQ | Quetzal |
GWP | Guinea-Bissau Peso |
GYD | Guyana Dollar |
HKD | Hong Kong Dollar |
HNL | Lempira |
HRK | Croatian Kuna |
HTG | Gourde |
HUF | Forint |
IDR | Rupiah |
ILS | New Israeli Sheqel |
INR | Indian Rupee |
IQD | Iraqi Dinar |
IRR | Iranian Rial |
ISK | Iceland Krona |
JMD | Jamaican Dollar |
JOD | Jordanian Dinar |
JPY | Yen |
KES | Kenyan Shilling |
KGS | Som |
KHR | Riel |
KMF | Comoro Franc |
KPW | North Korean Won |
KRW | Won |
KWD | Kuwaiti Dinar |
KYD | Cayman Islands Dollar |
KZT | Tenge |
LAK | Kip |
LBP | Lebanese Pound |
LKR | Sri Lanka Rupee |
LRD | Liberian Dollar |
LSL | Loti |
LTL | Lithuanian Litas |
LVL | Latvian Lats |
LYD | Libyan Dinar |
MAD | Moroccan Dirham |
MDL | Moldovan Leu |
MGA | Malagascy Ariary |
MKD | Denar |
MMK | Kyat |
MNT | Tugrik |
MOP | Pataca |
MRO | Ouguiya |
MTL | Maltese Lira |
MUR | Mauritius Rupee |
MVR | Rufiyaa |
MWK | Kwacha |
MXN | Mexican Peso |
MXV | Mexican Unidad de Inversion (UID) |
MYR | Malaysian Ringgit |
MZN | Metical |
NAD | Namibian Dollar |
NGN | Naira |
NIO | Cordoba Oro |
NOK | Norwegian Krone |
NPR | Nepalese Rupee |
NZD | New Zealand Dollar |
OMR | Rial Omani |
PAB | Balboa |
PEN | Nuevo Sol |
PGK | Kina |
PHP | Philippine Peso |
PKR | Pakistan Rupee |
PLN | Zloty |
PYG | Guarani |
QAR | Qatari Rial |
ROL | Old Leu |
RON | New Leu |
RUB | Russian Ruble |
RWF | Rwanda Franc |
SAR | Saudi Riyal |
SBD | Solomon Islands Dollar |
SCR | Seychelles Rupee |
SDD | Sudanese Dinar |
SEK | Swedish Krona |
SGD | Singapore Dollar |
SHP | Saint Helena Pound |
SIT | Tolar |
SKK | Slovak Koruna |
SLL | Leone |
SOS | Somali Shilling |
SRD | Surinam Dollar |
STD | Dobra |
SVC | El Salvador Colon |
SYP | Syrian Pound |
SZL | Lilangeni |
THB | Baht |
TJS | Somoni |
TMM | Manat |
TND | Tunisian Dinar |
TOP | Pa'anga |
TRY | New Turkish Lira |
TTD | Trinidad and Tobago Dollar |
TWD | New Taiwan Dollar |
TZS | Tanzanian Shilling |
UAH | Hryvnia |
UGX | Uganda Shilling |
USD | US Dollar |
USN | US Dollar (Next day) |
USS | US Dollar (Same day) |
UYU | Peso Uruguayo |
UZS | Uzbekistan Sum |
VEB | Bolivar |
VND | Dong |
VUV | Vatu |
WST | Tala |
XAF | CFA Franc BEAC |
XAG | Silver |
XAU | Gold |
XBA | Bond Markets Units European Composite Unit (EURCO) |
XBB | European Monetary Unit (E.M.U.-6) |
XBC | European Unit of Account 9 (E.U.A.-9) |
XBD | European Unit of Account 17 (E.U.A.-17) |
XCD | East Caribbean Dollar |
XDR | SDR |
XFO | Gold-Franc |
XFU | UIC-Franc |
XOF | CFA Franc BCEAO |
XPD | Palladium |
XPF | CFP Franc |
XPT | Platinum |
XTS | Code specifically reserved for testing purposes |
XXX | Code assigned for transactions where no currency is involved |
YER | Yemeni Rial |
ZAR | Rand |
ZMK | Kwacha |
ZWN | Zimbabwe Dollar |
0750 | Co-curricular activity |
0751 | Extra-curricular Activity |
0123 | Mailing address |
0124 | Shipping address |
0765 | Physical location address |
1073 | Other home address |
1074 | Employer's address |
1075 | Employment address |
2382 | Other organization address |
0013 | Adult |
0787 | Infant/toddler |
0789 | Pre-kindergarten |
1302 | All levels |
1304 | Elementary |
1981 | Preschool/early childhood |
2397 | Primary |
2399 | Intermediate |
2400 | Middle |
2402 | High school |
2403 | Secondary |
2602 | Junior high school |
0106 | Agency open |
0107 | Agency closed |
0108 | New agency |
0109 | Changed boundary |
0110 | Inactive agency |
0111 | Future aAgency |
0144 | Letter grade/mark |
0490 | Age score |
0491 | C-scaled scores |
0492 | College Board examination scores |
0493 | Grade equivalent or grade-level indicator |
0494 | ACT score |
0497 | Normal curve equivalent |
0498 | Normalized standard score |
0499 | Number score |
0500 | Pass-fail |
0502 | Percentile rank |
0503 | Proficiency level |
0504 | Ranking |
0505 | Ratio IQ's |
0506 | Standard age score |
0508 | Stanine score |
0509 | Sten score |
0510 | T-score |
0511 | Z-score |
0512 | Achievement/proficiency level |
0513 | Mastery level |
3473 | Graduation score |
3474 | Growth/value-added/indexing |
3475 | International Baccalaureate score |
3476 | Percentile |
3478 | Raw score |
3479 | Scale score |
3480 | Workplace readiness score |
9999 | Other |
0075 | Achievement test |
0076 | Advanced placement test |
0077 | Alternate assessment/grade-level standards |
0079 | Attitudinal test |
0081 | Cognitive and perceptual skills test |
0082 | Developmental observation |
0083 | Interest inventory |
0084 | Language proficiency test |
0087 | Manual dexterity test |
0088 | Mental ability (intelligence) test |
0089 | Performance assessment |
0090 | Personality test |
0092 | Portfolio assessment |
0093 | Psychological test |
0094 | Psychomotor test |
0095 | Reading readiness test |
3461 | Alternatve assessment/modified standards |
3462 | Alternate assessment/ELL |
3463 | Aptitude test |
9999 | Other |
0845 | Teacher only day |
0846 | Holiday |
0848 | Student late arrival/early dismissal |
0849 | Emergency day |
3421 | Strike |
9999 | Other |
0568 | Remedial |
0569 | Special education course |
0570 | Basic |
0571 | General |
0572 | Honors level |
0573 | Gifted and talented level |
0574 | International Baccalaureate program |
0575 | Advanced placement |
0576 | College level |
0577 | Untracked |
0578 | English Language Learner (ELL) |
0579 | Accepted as a high school equivalent |
9999 | Other |
0585 | Carnegie unit |
0586 | Semester hour credit |
0587 | Trimester hour credit |
0588 | Quarter hour credit |
0589 | Quinmester hour credit |
0590 | Mini-term hour credit |
0591 | Summer term hour credit |
0592 | Intersession hour credit |
0595 | Long session hour credit |
0596 | Twelve month hour credit |
0597 | Vocational credit |
0598 | Adult education credit |
0599 | Credit by examination |
0600 | Correspondence credit |
0601 | Converted occupational experience credit |
9998 | None |
9999 | Other |
0004 | Social Security Administration number |
0113 | US government Visa number |
0154 | Personal identification number |
0164 | Family unit number |
0175 | College Board/ACT code set of PK-grade 12 institutions |
0186 | LEA number for school |
0197 | SEA number for school |
0208 | NCES number for school |
0216 | NCES number for LEA |
0222 | Other agency number |
0233 | Integrated Postsecondary Education Data System (IPEDS) number |
0243 | College Board Admission Testing Program (ATP) number |
0254 | American College Testing (ACT) Program number |
0264 | Federal identification number |
0276 | Dun and Bradstreet number (i.e., DUNS number) |
0307 | Test contractor assigned assessment number |
0328 | Driver's license number |
0338 | Medicaid number |
0339 | Health record number |
0399 | Professional certificate or license number |
0495 | School-assigned number |
0593 | District-assigned number |
0686 | State-assigned number |
0763 | SEA number for LEA |
0764 | Other federally assigned number |
0780 | Selective Service number |
0873 | Statute number |
0879 | Migrant number |
0936 | Sub-test number |
5013 | Canadian Social Insurance Number |
9999 | Other |
0340 | In school |
0341 | Other K-12 educational institution |
0342 | Postsecondary facility |
0752 | Community facility |
0754 | Hospital |
0997 | Business |
2192 | Home |
3018 | Library/media center |
3506 | Mobile |
9999 | Other |
0603 | Technology-based instruction in classroom |
0604 | Correspondence instruction |
0605 | Face-to-face instruction |
0608 | Virtual/On-line Distance learning |
0609 | Center-based instruction |
0610 | Independent study |
0611 | Internship |
9999 | Other |
0231 | During school |
0234 | Weekend |
0235 | Before school |
0236 | After school |
0237 | Summer |
0238 | In-school service day |
0239 | Evenings |
9999 | Other |
0218 | Religious organization |
0219 | Fraternal organization |
0617 | State government |
0622 | Local/community government |
0654 | College/University |
0675 | School |
0698 | Community |
0709 | Self in tuition and/or fees |
0720 | Parent/guardian in tuition and/or fees |
0731 | Parent/teacher organizations |
0739 | Individuals (endowments) |
0749 | Foundations and other charitable organizations |
0772 | Unions |
0786 | Insurance |
0797 | Federal government |
0997 | Business |
1899 | Parent/guardian's employer |
9999 | Other |
0100 | Regular education |
0200 | Special Education Services |
0201 | Early identification |
0202 | Early intervention |
0203 | Service for individuals with autism |
0204 | Service for individuals with deaf-blindness |
0205 | Service for individuals with mental retardation |
0206 | Service for individuals with hearing impairment |
0207 | Service for individuals with visual impairment |
0208 | Service for individuals with orthopedic impairment |
0209 | Service for individuals with speech or language impairment |
0210 | Service for individuals with serious emotional disturbance |
0211 | Service for individuals with specific learning disabilities |
0212 | Service for individuals with multiple disabilities |
0213 | Service for individuals with traumatic brain injury |
0214 | Psychological service |
0215 | Cross categorical |
0216 | Service for individuals with developmental delay |
0299 | Other special education services |
0300 | Vocational education |
0301 | Agriculture |
0302 | Consumer and home-making |
0303 | Marketing |
0304 | Health |
0305 | Technology/industrial arts |
0306 | Occupational home economics |
0307 | Business |
0308 | Technical |
0309 | Trade and industrial |
0399 | Other vocational education |
0400 | Technical preparatory |
0500 | Head Start |
0600 | Even Start |
0700 | Migrant education |
0800 | Indian education |
0900 | Compensatory services for disadvantaged students |
1000 | Bilingual education program |
1001 | Curriculum content in native language |
1002 | Developmental bilingual education |
1003 | Native language support |
1004 | Two-way bilingual education |
1100 | English as a second language (ESL) program |
1101 | Content ESL |
1200 | Gifted and talented |
1300 | Cocurricular programs |
1400 | Athletics |
1500 | Adult/continuing education |
1501 | Adult basic education |
1502 | Adult English as a second language |
1503 | Advanced adult basic education |
1504 | Life enrichment |
1505 | Occupational |
1506 | Retraining for new occupation |
1507 | Special interest |
1508 | Upgrading in current occupation |
1509 | General Educational Development (GED) preparation |
1599 | Other adult/continuing education |
1600 | Community/junior college education program |
1700 | Community services program |
1701 | Civic services |
1702 | Community recreation |
1703 | Coordination of casework |
1704 | Custody and child care services |
1705 | Public library services |
1706 | Welfare activities |
1799 | Other community services |
1800 | Substance abuse education/prevention |
1900 | Student retention/Dropout prevention |
2000 | Extended day/child care services |
2100 | Counseling services |
2200 | Immigrant education |
2300 | College preparatory |
2400 | International Baccalaureate |
2500 | Magnet/Special Program Emphasis |
2600 | Alternative education |
2700 | Library/media services |
2800 | Health services |
2900 | Remedial education |
3000 | School-To-Work Opportunities |
3100 | Service learning |
3200 | Section 504 Placement |
3300 | Teacher professional development/Mentoring |
9999 | Other |
0104 | New school |
0105 | Future school |
0118 | Changed agency |
0820 | School open |
0821 | School closed |
0822 | School inactive |
2383 | Added school |
0827 | Full school year |
0828 | Semester |
0829 | Trimester |
0830 | Quarter |
0831 | Quinmester |
0832 | Mini-term |
0833 | Summer term |
0834 | Intersession |
0835 | Long session |
0837 | Twelve month |
9999 | Other |
0290 | Adaptive physical education |
0291 | Art therapy |
0292 | Assistive technology services |
0293 | Audiological services |
0294 | Service coordination (case management services) |
0295 | Children's protective services |
0297 | Early intervention services |
0298 | Educational therapy |
0299 | Family counseling |
0300 | Free school meals programs |
0302 | Guidance counseling |
0303 | Health care |
0304 | Interpretation for the hearing impaired |
0305 | Mental health counseling |
0306 | Music therapy |
0308 | Note-taking assistance |
0309 | Occupational therapy |
0310 | Orientation and mobility services |
0311 | Parenting skills assistance |
0312 | Peer services |
0313 | Physical therapy |
0314 | Reader service |
0315 | Recreation service |
0316 | Reduced price school meals programs |
0318 | Rehabilitation counseling services |
0319 | School clothing |
0320 | School health nursing services |
0321 | Special transportation |
0322 | Speech-language therapy |
0323 | Study skills assistance |
0324 | Substance abuse education/prevention |
0325 | Teen/adolescent family planning |
0326 | Test assistance |
0327 | Translating/interpreting |
0329 | Tutoring services |
0330 | Vision services |
0331 | Psychological services |
0332 | Medical services only for diagnostic or evaluation purposes |
0333 | Family training, counseling, and home visits |
0334 | Developmental childcare program |
0335 | Nursing service |
0336 | Nutrition services |
0337 | Social work services |
9999 | Other |
0240 | Regular prekindergarten program |
0241 | Infant and toddlers program |
0242 | Special education services for Birth-Age 2 |
0244 | Special education services for preschoolers |
0245 | Migrant early childhood program |
0246 | Head Start |
0247 | Day care |
0248 | After school child care |
0249 | Alternative education program |
0250 | Before school child care |
0251 | Bilingual education |
0252 | Community service projects |
0253 | Compensatory education |
0255 | Counseling |
0256 | English as a second language |
0257 | Free and reduced price school meals programs |
0260 | Hearing or vision screening |
0261 | Higher order thinking skills |
0262 | Medical services |
0263 | Programs for migrants during the school year |
0265 | Programs for migrants during the summer |
0267 | Reading/literacy |
0268 | School supplies |
0269 | Services for out-of-school youth |
0270 | Special education program |
0271 | Special (one-time) events |
0272 | Student assistance programs such as counseling, mentoring, identification and referral |
0273 | Summer child care |
0277 | Transportation |
0278 | Tutoring/remedial instruction |
0279 | Academic/instructional program in regular education |
0280 | Adult basic education/remedial instruction |
0281 | Child care so that parents can attend school meetings |
0282 | Continuing professional education |
0283 | Health or social services |
0284 | Literacy |
0285 | Occupational education |
0286 | Orientation to school setting for new families |
0287 | Parent training/involvement |
0288 | Parenting education |
0289 | Recreational/advocational program |
0342 | Technology |
0875 | After school enrichment |
0876 | Before school enrichment |
2381 | Gifted and talented |
2389 | Even Start |
2393 | Magnet program |
9999 | Other |
0096 | Main telephone number |
0350 | Alternate telephone number |
0359 | Answering service |
0370 | Beeper number |
0400 | Appointment telephone number |
0426 | Telex number |
0437 | Telemail |
0448 | Voice mail |
0478 | Instant messaging number |
0486 | Media conferencing number |
2364 | Facsimile number |
0878 | Case management services |
0881 | Communication services |
0882 | Community recreational services |
0883 | Independent living |
0884 | Mental health services |
0885 | Residential services |
0886 | Supported employment services |
0887 | Technological aids |
0888 | Transportation services |
0889 | Vocational rehabilitation training and job placement |
9999 | Other |
0127 | Early intervention classroom/center |
0128 | Homebound placement instruction |
0129 | Hospital placement instruction |
0130 | Regular school campus/regular class placement |
0132 | Private residential placement |
0134 | Public residential placement |
0135 | Public separate day school placement |
0136 | Resource room placement (pullout program) |
0137 | Separate class placement |
0140 | Itinerant services outside the home |
0143 | Reverse mainstream setting |
0356 | Outpatient service facility |
0358 | Private separate day school placement |
0364 | Short-term detention facility |
0365 | Regular nursery school/child care center |
0367 | Respite care |
0756 | Residential facility |
1003 | Baptismal or church certificate |
1004 | Birth certificate |
1005 | Entry in family Bible |
1006 | Hospital certificate |
1007 | Parent's affidavit |
1008 | Passport |
1009 | Physician's certificate |
1010 | Previously verified school records |
1011 | State-issued ID |
1012 | Driver's license |
1013 | Immigration document/visa |
2382 | Life insurance policy |
3423 | Other official document |
3424 | Other non-official document |
9999 | Other |
1014 | Dual national |
1015 | Non-resident alien |
1016 | Resident alien |
1017 | United States Citizen |
9999 | Other |
1035 | Correspondence language |
1036 | Dominant language |
1037 | Home language |
1038 | Native language |
1039 | Other language proficiency |
9999 | Other |
1040 | Legally separated |
1041 | Married |
1042 | Not married |
0788 | Preschool/Prekindergarten |
0790 | First grade |
0791 | Second grade |
0792 | Third grade |
0793 | Fourth grade |
0794 | Fifth grade |
0795 | Sixth grade |
0796 | Seventh grade |
0798 | Eighth grade |
0799 | Ninth grade |
0800 | Tenth grade |
0801 | Eleventh Grade |
0805 | Kindergarten |
0819 | Vocational certificate |
1043 | No school completed |
1044 | High school diploma |
1046 | Adult basic education diploma |
1047 | Formal award, certificate or diploma (less than one year) |
1048 | Formal award, certificate or diploma (more than or equal to one year) |
1049 | Some college but no degree |
1050 | Associate's degree (two years or more) |
1051 | Bachelor's (Baccalaureate) degree |
1052 | Graduate certificate |
1053 | First-professional degree |
1054 | Master's degree (e.g., M.A., M.S., M. Eng., M.Ed., M.S.W., M.B.A., M.L.S.) |
1055 | Specialist's degree (e.g., Ed.S.) |
1056 | Post-professional degree |
1057 | Doctoral (Doctor's) degree |
1809 | 12th grade, no diploma |
2408 | High school completers (e.g., certificate of attendance) |
2409 | High school equivalency (e.g., GED) |
9999 | Other |
0551 | Home economics |
0558 | Multi/Interdisciplinary studies |
1146 | Agricultural business and production |
1147 | Agricultural sciences |
1148 | Conservation and renewable natural resources |
1149 | Architecture and related programs |
1150 | Area, ethnic and cultural studies |
1151 | Marketing operations/marketing and distributing |
1152 | Communications |
1153 | Communications technologies |
1154 | Computer and information sciences |
1155 | Personal and miscellaneous services |
1156 | Education |
1157 | Engineering |
1158 | Engineering-related technologies |
1159 | Vocational home economics |
1160 | Technology education/industrial arts |
1161 | Law and legal studies |
1162 | English language and literature/letters |
1163 | Liberal arts and sciences, general studies and humanities |
1164 | Library science |
1165 | Biological sciences/life sciences |
1166 | Mathematics |
1167 | Reserve Officers' Training Corp (ROTC) |
1168 | Military technologies |
1170 | Basic skills |
1171 | Citizenship activities |
1172 | Health-related knowledge and skills |
1173 | Interpersonal and social skills |
1174 | Leisure and recreational activities |
1175 | Personal awareness and self-improvement |
1176 | Parks, recreation, leisure and fitness studies |
1177 | Philosophy and religion |
1178 | Theological studies and religious vocations |
1179 | Physical sciences |
1180 | Science technologies |
1181 | Psychology |
1182 | Protective services |
1183 | Public administration and services |
1184 | Social sciences and history |
1185 | Construction trades |
1186 | Mechanics and repairers |
1187 | Precision production trades |
1188 | Transportation and materials moving workers |
1189 | Visual and performing arts |
1190 | Health professions and related sciences |
1191 | Business management and administrative services |
2371 | Foreign language and literature |
9999 | Other |
1222 | Regular/standard |
1223 | Probationary/initial |
1224 | Provisional |
1225 | Professional |
1226 | Master |
1227 | Specialist |
1228 | Temporary |
1229 | Emergency |
1230 | Nonrenewable |
1231 | Retired |
1232 | Substitute |
1233 | Teacher assistant |
1234 | Intern |
9999 | Other |
1235 | 4-year bachelor's degree |
1236 | 5-year bachelor's degree |
1237 | Master's degree |
1238 | Doctoral degree |
1239 | Met state testing requirement |
1240 | Special/alternative program completion |
1241 | Relevant experience |
1242 | Credentials based on reciprocation with another state |
1420 | Criminal records |
1421 | Previous employment records |
1422 | Personal references |
1423 | Credentials |
9999 | Other |
0251 | Bilingual education |
0256 | English as a Second Language |
0547 | Geography |
0550 | History |
0556 | Physical education |
0557 | Military science |
0560 | Reading |
0563 | Social studies |
0684 | Dance |
0805 | Kindergarten |
1153 | Communications technologies |
1166 | Mathematics |
1181 | Psychology |
1296 | Early childhood |
1304 | Elementary |
1305 | Accounting |
1306 | Business and management |
1307 | Other business |
1308 | English or language arts |
1309 | Journalism/communications |
1310 | Speech |
1311 | Architecture or environmental design |
1312 | Drama/Teacher |
1313 | Music |
1314 | Visual Arts |
1315 | Chinese |
1316 | French |
1317 | German |
1318 | Italian |
1319 | Japanese |
1320 | Latin |
1321 | Russian |
1322 | Spanish |
1323 | Other languages |
1324 | Computer Science |
1325 | Biology or life science |
1326 | Chemistry |
1327 | Earth/space science/geology |
1328 | General science |
1329 | Health education |
1330 | Physical science |
1331 | Physics |
1332 | Other natural sciences |
1333 | American Indian/Native American studies |
1334 | Anthropology |
1335 | Civics |
1336 | Economics |
1337 | Humanities |
1338 | Law |
1339 | Philosophy |
1340 | Political science and government |
1342 | Religion |
1343 | Sociology |
1344 | Other area or ethnic studies |
1345 | Other social studies/social sciences |
1346 | Basic skills or remedial education |
1348 | Autism |
1349 | Deaf and hard-of-hearing |
1350 | Developmentally delayed |
1351 | Early childhood special education |
1352 | Emotionally disturbed or behavior disorders |
1353 | Learning disabilities |
1354 | Mentally disabled |
1355 | Mildly/moderately disabled |
1356 | Orthopedically impaired |
1358 | Speech/language impaired |
1359 | Traumatically brain-injured |
1360 | Visually impaired |
1361 | Other special education |
1362 | Agriculture or natural resources |
1363 | Business/office |
1364 | Career education |
1366 | Cosmetology |
1367 | Family and consumer science (home economics) |
1368 | Food services |
1369 | Health professions and occupations |
1370 | Trades and industry (e.g., CADD, electronics repair, mechanics, precision production) |
1371 | Other vocational/technical education |
2043 | Special education |
2381 | Gifted and talented |
9999 | Other |
1387 | Employment in education |
1388 | Employment outside of education |
1389 | Retirement |
1390 | Family/personal relocation |
1391 | Change of assignment |
1392 | Formal study or research |
1393 | Illness/disability |
1394 | Homemaking/caring for a family member |
1395 | Layoff due to budgetary reduction |
1396 | Layoff due to organizational restructuring |
1397 | Layoff due to decreased workload |
1398 | Discharge due to unsuitability |
1399 | Discharge due to misconduct |
1400 | Discharge due to continued absence or tardiness |
1401 | Discharge due to a falsified application form |
1402 | Discharge due to credential revoked or suspended |
1403 | Discharge due to unsatisfactory work performance |
1404 | Death |
1405 | Personal reason |
1406 | Lay off due to lack of funding |
1407 | Lost credential |
9997 | Unknown |
9999 | Other |
0251 | Bilingual education |
0256 | English as a Second Language |
0547 | Geography |
0550 | History |
0557 | Military science |
0559 | Physical education |
0560 | Reading |
0563 | Social studies |
0684 | Dance |
0805 | Kindergarten |
1153 | Communications/technologies |
1166 | Mathematics |
1181 | Psychology |
1296 | Early childhood |
1304 | Elementary |
1305 | Accounting |
1306 | Business and management |
1307 | Other business |
1308 | English or language arts |
1309 | Journalism/communications |
1310 | Speech |
1311 | Architecture or environmental design |
1312 | Drama/Theater |
1313 | Music |
1314 | Visual Arts |
1315 | Chinese |
1316 | French |
1317 | German |
1318 | Italian |
1319 | Japanese |
1320 | Latin |
1321 | Russian |
1322 | Spanish |
1323 | Other languages |
1324 | Computer Science |
1325 | Biology or life science |
1326 | Chemistry |
1327 | Earth/space science/geology |
1328 | General science |
1329 | Health education |
1330 | Physical science |
1331 | Physics |
1332 | Other natural sciences |
1333 | American Indian/Native American studies |
1334 | Anthropology |
1335 | Civics |
1336 | Economics |
1337 | Humanities |
1338 | Law |
1339 | Philosophy |
1340 | Political science and government |
1342 | Religion |
1343 | Sociology |
1344 | Other area or ethnic studies |
1345 | Other social studies/social sciences |
1346 | Basic skills or remedial education |
1348 | Autism |
1349 | Deaf and hard-of-hearing |
1350 | Developmentally delayed |
1351 | Early childhood special education |
1352 | Emotionally disturbed or behavior disorders |
1353 | Learning disabilities |
1354 | Mentally disabled |
1355 | Mildly/moderately disabled |
1356 | Orthopedically impaired |
1358 | Speech/language impaired |
1359 | Traumatically brain-injured |
1360 | Visually impaired |
1361 | Other special education |
1362 | Agriculture or natural resources |
1363 | Business/office |
1364 | Career education |
1366 | Cosmetology |
1367 | Family and consumer science (home economics) |
1368 | Food services |
1369 | Health professions and occupations |
1370 | Trades and industry (e.g., CADD, electronics repair, mechanics, precision production) |
1371 | Other vocational/technical education |
2043 | Special education |
2381 | Gifted and talented |
9999 | Other |
0568 | Remedial |
0569 | Special education course |
0570 | Basic |
0571 | General |
0572 | Honors level |
0573 | Gifted and talented level |
0574 | International Baccalaureate program |
0575 | Advanced placement |
0576 | College level |
0577 | Untracked |
0578 | English Language Learner (ELL) |
0579 | Accepted as a high school equivalent |
9999 | Other |
0410 | Annual year |
1439 | Short-term |
1440 | Continuing |
1441 | Renewable |
1442 | Multiyear |
9999 | Other |
0843 | Full-time |
0844 | Part-time |
0100 | Official-administrative |
0101 | Administrative/supervisory/ancillary services officer |
0102 | Board of education/school board/board of trustees member |
0103 | Commandant of cadets |
0104 | Dean/dean of instructions/dean of students/dean of boys/dean of girls/dean of student activities |
0105 | Deputy/associate/vice-/assistant principal |
0106 | Deputy/associate/assistant superintendent/commissioner |
0107 | Executive assistant-Performs professional activities assisting an executive officer in directing and managing the functions of a school or system. |
0108 | Instructional program director/coordinator/consultant |
0109 | Manager |
0110 | Non-instructional program director/coordinator/consultant |
0111 | Ombudsperson |
0112 | Principal/headmaster/headmistress/head of school |
0113 | School president |
0114 | School site council member |
0115 | Superintendent/commissioner |
0200 | Professional-educational |
0201 | Athletic coach |
0202 | Behavioral management specialist |
0203 | Counselor |
0204 | Curriculum specialist |
0205 | Education diagnostician |
0206 | Librarian/media consultant |
0207 | Remedial specialist |
0208 | Student activity advisor/non-athletic coach |
0209 | Student teacher |
0210 | Teacher |
0211 | Teacher trainer |
0212 | Teaching intern |
0213 | Resource teacher |
0300 | Professional-other |
0301 | Accountant |
0302 | Accreditation officer |
0303 | Administrative intern |
0304 | Admissions officer |
0305 | Analyst |
0306 | Architect |
0307 | Athletic trainer |
0308 | Attendance officer |
0309 | Audiologist |
0310 | Auditor |
0311 | Benefits specialist |
0312 | Campus minister/chaplain (clergy or layperson) |
0313 | Caseworker |
0314 | Computer programmer |
0315 | Computer systems analyst |
0316 | Curator and archivist |
0317 | Dental hygienist |
0318 | Dentist |
0319 | Dietitian/nutritionist |
0320 | Engineer |
0321 | Evaluator |
0322 | Family/community support coordinator |
0323 | Financial aid officer |
0324 | Functional application support specialist |
0325 | Grant developer |
0326 | Historian |
0327 | Internal auditor |
0328 | Interpreter |
0329 | Lawyer |
0330 | Legislative liaison |
0331 | Negotiator |
0332 | Network administrator |
0333 | Nurse Practitioner |
0334 | Occupational therapist |
0335 | Ophthalmologist |
0336 | Optometrist |
0337 | Personnel officer/specialist |
0338 | Physical therapist |
0339 | Physician |
0340 | Physician assistant |
0341 | Planning specialist |
0342 | Psychiatrist |
0343 | Psychologist |
0344 | Public relations/informational services officer |
0345 | Recreational therapist |
0346 | Recreation worker |
0347 | Registered nurse |
0348 | Registrar |
0349 | Rehabilitation counselor |
0350 | Research and development specialist |
0351 | Respiratory therapist |
0352 | Social worker |
0353 | Speech pathologist/therapist |
0354 | Staff developer/teacher trainer |
0355 | Statistician |
0356 | Student personnel officer |
0357 | Tax assessor/collector |
0358 | Transition coordinator |
0359 | Translator |
0360 | Volunteer coordinator |
0361 | Work study coordinator |
0362 | Writer/editor |
0363 | Mediator/intervention specialist |
0400 | Paraprofessionals |
0401 | Assistant counselor |
0402 | Bilingual aide |
0403 | Bilingual special education aide |
0404 | Career aide |
0405 | Child care giver |
0406 | Computer aide |
0407 | Extra-curricular activity aide |
0408 | Financial aid specialist |
0409 | Monitor/prefect |
0410 | Library aide |
0411 | Media center aide |
0412 | Psychologist assistant |
0413 | Teaching/classroom aide |
0414 | Teaching assistant |
0415 | Tutor |
0500 | Technical |
0501 | Audiometrist |
0502 | Computer technician |
0503 | Drafter |
0504 | Engineering aide |
0505 | Graphic artist |
0506 | Inspector |
0507 | Licensed practical nurse |
0508 | Media technologist |
0509 | Photographer |
0510 | Psychometrist |
0511 | Purchasing agent |
0512 | Speech language technician |
0513 | Supervisor |
0600 | Office/clerical/administrative support |
0601 | Bookkeeping/accounting/auditing clerk |
0602 | Cashier |
0603 | Computer operator |
0604 | Data entry clerk |
0605 | Dispatcher |
0606 | Duplicating/photocopying assistant |
0607 | Electrical and electronic repairers |
0608 | File clerk |
0609 | General office clerk |
0610 | Mail clerk |
0611 | Messenger |
0612 | Office manager |
0613 | Receptionist |
0614 | Records clerk |
0615 | Secretary |
0616 | Stenographer |
0617 | Stores/supplies handler |
0618 | Switchboard/PBX operator |
0619 | Typist and wordprocessor |
0700 | Crafts and trades |
0701 | Brick mason |
0702 | Carpenter |
0703 | Cement mason |
0704 | Electrician |
0705 | HVAC mechanic |
0706 | Locksmith |
0707 | Maintenance repairers/general utility |
0708 | Painter and paperhanger |
0709 | Plasterer |
0710 | Plumber |
0711 | Printer |
0712 | Vehicle mechanic |
0800 | Operative |
0801 | Bus driver |
0802 | Other vehicle operator |
0900 | Laborer |
0901 | Construction laborer |
0902 | Freight, stock, and materials handlers |
0903 | Garbage collector |
0904 | Gardener |
0905 | Groundskeeper |
0906 | Garage/parking-lot attendant |
0907 | Vehicle washer/equipment cleaner |
1000 | Service work |
1001 | Bus monitor/crossing guard |
1002 | Child care worker |
1003 | Cook/food preparer |
1004 | Custodian |
1005 | Dietary technician |
1006 | Elevator operator |
1007 | Facilities maintenance worker |
1008 | Food service assistant |
1009 | Police officer |
1010 | Resident/dormitory supervisor |
1011 | Security guard |
1012 | Extended day-care provider |
9999 | Other |
1000 | Instruction |
2000 | Support Services |
2100 | Support Services |
2110 | Attendance and Social Work Services |
2120 | Guidance Services |
2130 | Health Services |
2140 | Psychological Services |
2150 | Speech Pathology and Audiology Services |
2160 | Occupational Therapy-Related Services |
2190 | Other Support Services-Student |
2200 | Support Services-Instruction |
2210 | Improvement of Instruction |
2212 | Instruction and Curriculum Development |
2213 | Instructional Staff Training |
2219 | Other Improvement of Instruction Services |
2220 | Library/Media Services |
2230 | Instruction-Related Technology |
2240 | Academic Student Assessment |
2290 | Other Support Services |
2300 | Support Services-General Administration |
2310 | Board of Education |
2320 | Executive Administration |
2400 | Support Services-School Administration |
2410 | Office of the Principal |
2490 | Other Support Services-School Administration |
2500 | Central Services |
2510 | Fiscal Services |
2520 | Purchasing, Warehousing, and Distributing Services |
2530 | Printing, Publishing, and Duplicating Services |
2540 | Planning, Research, Development, and Evaluation Services |
2560 | Public Information Services |
2570 | Personnel Services |
2580 | Administrative Technology Services |
2590 | Other Support Services-Central Services |
2600 | Operation and Maintenance of Plant |
2610 | Operation of Buildings |
2620 | Maintenance of Buildings |
2630 | Care and Upkeep of Grounds |
2640 | Care and Upkeep of Equipment |
2650 | Vehicle Operation and Maintenance (Other Than Student Transportation Vehicles) |
2660 | Security |
2670 | Safety |
2680 | Other Operation and Maintenance of Plant |
2700 | Student Transportation |
2710 | Vehicle Operation |
2720 | Monitoring services |
2730 | Vehicle Servicing and Maintenance |
2790 | Other Student Transportation Services |
2900 | Other Support Services |
3000 | Operation of Non-Instructional Services |
3100 | Food Services Operations |
3200 | Enterprise Operations |
3300 | Community Services Operation |
4000 | Facilities Acquisition and Construction |
4100 | Land Acquisition |
4200 | Land Improvement |
4300 | Architecture and Engineering |
4400 | Educational Specifications Development |
4500 | Building Acquisition and Construction |
4600 | Site Improvement |
4700 | Building Improvements |
4900 | Other Facilities Acquisition and Construction |
9999 | Other |
1633 | Native English speaker |
1634 | Fluent English speaker |
1635 | Non-English speaking |
1636 | Redesignated as fluent English proficient |
2349 | Limited English proficient/English language learner |
9997 | Unknown |
1652 | Resident of administrative unit and usual school attendance area |
1653 | Resident of administrative unit, but of other school attendance area |
1654 | Resident of this state, but not of this administrative unit |
1655 | Resident of an administrative unit that crosses state boundaries |
1656 | Resident of another state |
1657 | Attending an area alternative school |
1658 | Attending an area magnet program |
1659 | Attending an area special education school |
1660 | Attending an area vocational/technical school |
1661 | Attending a private school |
1662 | Court-mandated juvenile system assignment |
1663 | Home schooling |
1664 | Local education agency (LEA) assignment |
1665 | Migrant education program participation |
1666 | Open school enrollment |
1667 | Voucher |
1668 | Charter school |
1669 | Boarding house |
1670 | Cooperative house |
1671 | Crisis shelter |
1672 | Disaster shelter |
1673 | Residential school/dormitory |
1674 | Family residence |
1675 | Foster home |
1676 | Institution |
1677 | Prison or juvenile detention center |
1678 | Rooming house |
1679 | Transient shelter |
1680 | No home |
1681 | Other dormitory |
3425 | Group home/halfway house |
9999 | Other |
1552 | Employer |
1720 | Aunt |
1721 | Brother, half |
1722 | Brother, natural/adoptive |
1723 | Brother, step |
1724 | Cousin |
1725 | Daughter |
1726 | Father, foster |
1727 | Father, natural/adoptive |
1728 | Father, step |
1729 | Friend |
1730 | Grandfather |
1731 | Grandmother |
1732 | Husband |
1734 | Mother, foster |
1735 | Mother, natural/adoptive |
1736 | Mother, step |
1737 | Nephew |
1738 | Niece |
1739 | Significant other |
1740 | Sister, half |
1741 | Sister, natural/adoptive |
1742 | Sister, step |
1743 | Son |
1744 | Uncle |
1745 | Ward |
1746 | Wife |
1747 | Adopted son |
1749 | Adoptive parents |
1750 | Advisor |
1751 | Agency representative |
1752 | Brother-in-law |
1753 | Court appointed guardian |
1754 | Daughter-in-law |
1755 | Dependent |
1757 | Former husband |
1758 | Former wife |
1759 | Family member |
1760 | Father's significant other |
1761 | Father-in-law |
1762 | Fiancé |
1763 | Fiancée |
1764 | Foster daughter |
1765 | Foster parent |
1766 | Foster son |
1767 | Granddaughter |
1769 | Grandson |
1770 | Great aunt |
1771 | Great uncle |
1772 | Life partner |
1773 | Life partner of parent |
1774 | Minister or priest |
1775 | Mother's significant other |
1776 | Mother-in-law |
1777 | Partner |
1778 | Partner of parent |
1779 | Probation officer |
1780 | Sister-in-law |
1781 | Son-in-law |
1782 | Stepson |
4987 | Stepdaughter |
5006 | Adopted Daughter |
9998 | None |
9999 | Other |
1378 | Probationary |
1379 | Contractual |
1380 | Substitute/temporary |
1381 | Tenured or permanent |
1382 | Volunteer |
1383 | Employed or affiliated with outside organization |
1384 | Contingent upon funding |
1385 | Non-contractual |
9999 | Other |
1803 | Government |
1804 | Military |
1805 | Private organization |
1806 | Self-employed |
1807 | Military/Department of Defense |
1808 | Agricultural/fishery seasonal employer |
9999 | Other |
1821 | Transfer from a public school in the same local education agency |
1822 | Transfer from a public school in a different local education agency in the same state |
1823 | Transfer from a public school in a different state |
1824 | Transfer from a private, non-religiously-affiliated school in the same local education agency |
1825 | Transfer from a private, non-religiously-affiliated school in a different local education agency in the same state |
1826 | Transfer from a private, non-religiously-affiliated school in a different state |
1827 | Transfer from a private, religiously-affiliated school in the same local education agency |
1828 | Transfer from a private, religiously-affiliated school in a different local education agency in the same state |
1829 | Transfer from a private, religiously-affiliated school in a different state |
1830 | Transfer from a school outside of the country |
1831 | Transfer from an institution |
1832 | Transfer from a charter school |
1833 | Transfer from home schooling |
1835 | Re-entry from the same school with no interruption of schooling |
1836 | Re-entry after a voluntary withdrawal |
1837 | Re-entry after an involuntary withdrawal |
1838 | Original entry into a United States school |
1839 | Original entry into a United States school from a foreign country with no interruption in schooling |
1840 | Original entry into a United States school from a foreign country with an interruption in schooling |
9999 | Other |
1905 | Permanent exit/withdrawal |
1906 | Temporary exit/withdrawal |
1907 | Student is in a different public school in the same local education agency |
1908 | Transferred to a public school in a different local education agency in the same state |
1909 | Transferred to a public school in a different state |
1910 | Transferred to a private, non-religiously-affiliated school in the same local education agency |
1911 | Transferred to a private, non-religiously-affiliated school in a different local education agency in the same state |
1912 | Transferred to a private, non-religiously-affiliated school in a different state |
1913 | Transferred to a private, religiously-affiliated school in the same local education agency |
1914 | Transferred to a private, religiously-affiliated school in a different local education agency in the same state |
1915 | Transferred to a private, religiously-affiliated school in a different state |
1916 | Transferred to a school outside of the country |
1917 | Transferred to an institution |
1918 | Transferred to home schooling |
1919 | Transferred to a charter school |
1921 | Graduated with regular, advanced, International Baccalaureate, or other type of diploma |
1922 | Completed school with other credentials |
1923 | Died or is permanently incapacitated |
1924 | Withdrawn due to illness |
1925 | Expelled or involuntarily withdrawn |
1926 | Reached maximum age for services |
1927 | Discontinued schooling |
1928 | Completed grade 12, but did not meet all graduation requirements |
1930 | Enrolled in a postsecondary early admission program, eligible to return |
1931 | Not enrolled, unknown status |
3499 | Student is in the same local education agency and receiving education services, but is not assigned to a particular school |
3500 | Enrolled in an adult education or training program |
3501 | Completed a state-recognized vocational education program |
3502 | Not enrolled, eligible to return |
3503 | Enrolled in a foreign exchange program, eligible to return |
3504 | Withdrawn from school, under the age for compulsory attendance; eligible to return |
3505 | Exited |
3508 | Student is in a charter school managed by the same local education agency |
3509 | Completed with a state-recognized equivalency certificate |
9999 | Other |
1973 | Regular promotion |
1974 | Accelerated promotion |
1975 | Continuous promotion |
1976 | Probationary promotion |
1977 | Social promotion |
1978 | Variable progress |
9999 | Other |
1979 | Failed to meet testing requirements |
1980 | Illness |
1981 | Immaturity |
1982 | Inadequate performance |
1983 | Insufficient credits |
1984 | Prolonged absence |
9999 | Other |
0737 | Athletic awards |
0738 | Awarding of units of value |
0740 | Citizenship award/recognition |
0741 | Completion of requirement, but no units of value awarded |
0742 | Certificate |
0744 | Letter of student commendation |
0745 | Medals |
0746 | Monogram/letter |
0747 | Points |
0748 | Promotion or advancement |
1985 | Honor roll |
1986 | Honor society |
1987 | Honorable mention |
1988 | Honors program |
1989 | Prize awards |
1990 | Ranks |
1991 | Scholarships |
2047 | Honor award |
9999 | Other |
0628 | Archery |
0629 | Badminton |
0630 | Baseball |
0631 | Basketball |
0633 | Bowling |
0634 | Boxing |
0635 | Crew |
0636 | Cross country |
0637 | Diving |
0638 | Field hockey |
0639 | Fencing |
0640 | Football |
0641 | Golf |
0642 | Gymnastics |
0644 | Ice hockey |
0645 | Lacrosse |
0646 | Martial arts |
0647 | Polo |
0648 | Racquetball |
0649 | Rugby |
0650 | Sailing |
0651 | Skiing |
0652 | Soccer |
0653 | Softball |
0655 | Squash |
0656 | Swimming |
0657 | Synchronized swimming |
0658 | Team handball |
0659 | Tennis |
0660 | Track and field |
0661 | Volleyball |
0662 | Water polo |
0663 | Wrestling |
0664 | Rodeo |
0665 | Scuba diving |
0666 | Team manager |
0667 | Cheerleading |
0668 | Other sport |
0669 | Student body president |
0670 | Class president |
0671 | Class officer |
0672 | Other student leadership and government |
0673 | Music - vocal |
0674 | Music - instrumental |
0676 | Music - theory and composition |
0677 | Band |
0678 | Orchestra |
0679 | Jazz ensemble |
0680 | Chorus |
0681 | Other music |
0682 | Theater/drama |
0683 | Art and graphic design |
0684 | Dance |
0685 | Dance team |
0688 | Drill team |
0689 | Other performing arts |
0690 | Journalism |
0691 | Broadcasting |
0692 | Year book |
0693 | Literary magazine |
0694 | Family consumer science |
0695 | Speech/debate |
0696 | Drama club |
0697 | Language club |
0699 | Science club |
0700 | Art club |
0701 | Computer club |
0702 | Future Business Leaders of America - Phi Beta Lambda (FBLA - PBL) |
0703 | Future Teachers of America |
0704 | National Future Farmers of America (FFA) |
0705 | Family, Career and Community Leaders of America |
0706 | Health Occupations Students of America |
0707 | Distributive Education Clubs of America (DECA) |
0708 | Technology Student Association (TSA) |
0712 | Vocational Industrial Clubs of America |
0713 | Business Professionals of America |
0714 | Peer counseling |
0715 | Tutoring |
0716 | Students Against Drunk Driving (SADD) |
0717 | Key Club |
0718 | Boy Scouts |
0719 | Girl Scouts |
0721 | 4 H |
0722 | Chess club |
0723 | Sorority |
0724 | Fraternity |
0725 | Other club or organization |
0726 | National Forensic League |
0727 | National Honor Society |
0728 | State Honor Society |
0729 | Academic team/knowledge bowl |
0730 | National Beta Club |
0732 | Mu alpha theta |
0733 | Psi Eta (Science Honorary) |
0734 | Thespian Society |
0735 | Other honor society |
0932 | Student body officer |
9999 | Other |
1995 | Cum laude |
1996 | Magna cum laude |
1997 | Summa cum laude |
1998 | Scholar award with honor |
1999 | Scholar award with distinction |
2000 | Local scholar award |
2001 | State scholar award |
2002 | National scholar award |
2003 | Class valedictorian |
2004 | Class salutatorian |
2005 | Prize awards (not limited to subject matter awards) |
2006 | Locally-sponsored scholarships |
2007 | State-sponsored scholarships |
2008 | Nationally-sponsored scholarships |
2009 | Other monetary award |
2357 | Rank |
9999 | Other |
2060 | Transported at public expense |
2061 | Transported at reduced public expense |
2062 | Transported, but not at public expense |
2063 | Provided room, board, or payment in lieu of transportation |
2064 | Not transported |
9999 | Other |
2065 | Qualifies for regular aid |
2066 | Qualifies for special education aid |
2067 | Does not qualify |
9999 | Other |
2068 | Eligible because of distance |
2069 | Eligible because of disability |
2070 | Eligible because of disability and distance |
2071 | Eligible because of hazardous conditions |
2072 | Eligible because of program for desegregation or integration |
2073 | Eligible because of special instruction |
2074 | Not eligible |
9999 | Other |
2121 | Autistic/Autism |
2122 | Deaf-blindness |
2123 | Hearing impairment |
2124 | Mental retardation |
2125 | Multiple disabilities |
2126 | Orthopedic impairment |
2127 | Emotional Disturbance |
2128 | Specific learning disability |
2129 | Speech or language impairment |
2130 | Traumatic brain injury |
2131 | Visual impairment |
2132 | Other health impairment |
2133 | Deafness |
2134 | Developmental delay |
2135 | Infants and Toddlers with Disabilities |
2147 | Education assessment |
2148 | Health assessment/screening |
2149 | Parent/guardian referral |
2151 | Self-report/survey |
2152 | Special education assessment/evaluation |
2153 | Teacher referral |
9999 | Other |
0776 | Private school |
2164 | Child's home |
2165 | Home other than the child's |
2166 | Public school facility |
2167 | Childcare facility |
2168 | Head Start center (no matter where offered) |
2169 | Religion-affiliated institution |
2170 | Business/workplace |
2172 | University/postsecondary institution |
2174 | Shelter or orphanage |
2184 | Special education classroom in child care facility |
2187 | Hospital facility |
2188 | Other community-based setting |
2190 | Facility sponsored by a state agency |
2191 | Other childcare facility |
3496 | Special education classroom in a public school facility |
3497 | Special education classroom in a private school |
9999 | Other |
0776 | Private school |
2164 | Child's home |
2165 | Home other than the child's |
2166 | Public school facility |
2167 | Childcare facility |
2168 | Head Start center (no matter where offered) |
2169 | Religion-affiliated institution |
2170 | Business/workplace |
2172 | University/postsecondary institution |
2174 | Shelter or orphanage |
2184 | Special education classroom in child care facility |
2187 | Hospital facility |
2188 | Other community-based setting |
2190 | Facility sponsored by a state agency |
2191 | Other childcare facility |
3496 | Special education classroom in a public school facility |
3497 | Special education classroom in a private school |
9999 | Other |
2196 | Individualized education program (IEP) |
2197 | Individualized learning program (ILP) |
2198 | Individualized family service plan (IFSP) |
9999 | Other |
2212 | Graduated with a high school diploma |
2213 | Received certificate of completion, modified diploma, or finished IEP requirements |
2214 | Program completion |
2215 | Reached maximum age |
2216 | No longer receiving special education |
2217 | Refused services |
2218 | Transferred to another district or school, known to be continuing in program/service |
2219 | Transferred to another district or school, not known to be continuing in program/service |
2220 | Suspended from school |
2221 | Discontinued schooling, special education only |
2222 | Discontinued schooling, not special education |
2223 | Died |
2224 | Expulsion |
2225 | Program discontinued |
2226 | Completion of IFSP prior to reaching maximum age for Part C |
2227 | Eligible for IDEA, Part B |
2228 | Not eligible for Part B, exit with referrals to other programs |
2230 | Part B eligibility not determined |
2231 | Moved out of state |
2232 | Withdrawal by a parent (or guardian) |
2233 | Unknown reason |
2406 | Transferred to another district or school, known not to be continuing in program/service |
9999 | Other |
0998 | American Indian or Alaska Native |
0999 | Asian |
1000 | Black or African American |
1001 | Native Hawaiian or Other Pacific Islander |
1002 | White |
3011 | On campus |
3012 | Administrative offices area |
3013 | Cafeteria area |
3014 | Classroom |
3015 | Hallway or stairs |
3016 | Locker room or gym areas |
3017 | Restroom |
3018 | Library/media center |
3019 | Computer lab |
3020 | Auditorium |
3021 | On-campus other inside area |
3022 | Athletic field or playground |
3023 | Stadium |
3024 | Parking lot |
3025 | On-campus other outside area |
3026 | Off campus |
3027 | Bus stop |
3028 | School bus |
3029 | Walking to or from school |
3030 | Off-campus at other school |
3031 | Off-campus at other school district facility |
3413 | Online |
9997 | Unknown |
0126 | Student |
0850 | Parent/guardian |
3054 | Law enforcement officer |
3059 | Nonschool personnel |
3060 | Representative of visiting school |
3061 | Other adult |
3062 | Other nonstudent youth |
3168 | Former student |
3422 | Staff member |
9997 | Unknown |
0010 | Firearm |
0011 | Handgun |
0012 | Shotgun/rifle |
0013 | Other type of firearm |
0020 | Knife |
0021 | Knife with blade less than 2.5 inches |
0023 | Knife with blade greater than or equal to 2.5 inches |
0029 | Other knife |
0030 | Other Sharp Objects |
0040 | Other Object |
0050 | Substance Used as Weapon |
0097 | Other |
0098 | No Weapon |
0099 | Unknown Weapon |
3063 | Minor injury |
3064 | Major injury |
3065 | No injury |
3579 | Serious bodily injury |
3066 | Alcohol-related |
3067 | Drug-related |
3068 | Gang-related |
3069 | Hate-related |
3070 | Weapon-related |
1000 | Alcohol (liquor law violations: possession, use, sale) |
1010 | Sale of alcohol |
1020 | Distribution of alcohol |
1030 | Drinking alcohol |
1040 | Possession of alcohol |
1050 | Suspicion of alcohol use |
1097 | Other alcohol |
1100 | Arson (Setting a Fire) |
1200 | Attendance Policy Violation (Not Attending School or Classes as Required) |
1210 | Forging absence excuse |
1220 | Skipping class |
1230 | Tardiness |
1240 | Truancy |
1297 | Other attendance policy violation |
1300 | Battery (Physical Attack/Harm) |
1400 | Burglary/Breaking and Entering (Stealing Property/Unlawful Entry) |
1500 | Disorderly Conduct (Disruptive Behavior) |
1600 | Drugs Excluding Alcohol and Tobacco (Illegal Drug Possession, Sale, Use/Under the Influence) |
1610 | Sale of illegal drug |
1620 | Sale of substance represented as an illegal drug |
1630 | Distribution of illegal drug |
1640 | Distribution of substance represented as an illegal drug |
1650 | Use of illegal drug |
1660 | Possession of illegal drug |
1670 | Possession of drug paraphernalia |
1680 | Suspicion of use |
1697 | Other drug offense |
1700 | Fighting (Mutual Altercation) |
1800 | Harassment, Nonsexual (Physical, Verbal, or Psychological) |
1810 | Bullying |
1820 | Hazing |
1897 | Other nonsexual harassment |
1900 | Harassment, Sexual (Unwelcome Sexual Contact) |
2000 | Homicide (Murder or Manslaughter) |
2100 | Inappropriate Use of Medication (Prescription or over-the-counter) |
2110 | Sale of medication |
2120 | Distribution of medication |
2130 | Use of medication in violation of school rules |
2140 | Possession of medication in violation of school rules |
2150 | Suspicion of use of medication in violation of school rules |
2197 | Other inappropriate use of medication |
2200 | Insubordination (Disobedience) |
2300 | Kidnapping (Abduction) |
2400 | Obscene Behavior |
2410 | Displays of affection in violation of school policy |
2420 | Obscene written messages |
2430 | Drawing obscene pictures |
2440 | Obscene electronic communication |
2450 | Obscene gestures |
2460 | Obscene language/profanity |
2497 | Other obscene behavior |
2500 | Physical Altercation, Minor (Pushing, Shoving) |
2600 | Robbery (Taking of Things by Force) |
2700 | School Threat (Threat of Destruction or Harm) |
2710 | Bomb threat |
2720 | Fire alarm |
2730 | Chemical/biological threat |
2740 | Terroristic threat |
2797 | Other school threat |
2800 | Sexual Battery (Sexual Assault) |
2900 | Sexual Offenses, Other (Lewd Behavior, Indecent Exposure) |
3000 | Suicide |
3010 | Suicide |
3020 | Attempted suicide |
3097 | Other suicide offense |
3100 | Theft (Stealing Personal or Other Property) |
3110 | General theft, Person |
3120 | General theft, Other entity |
3197 | Other theft |
3200 | Threat/Intimidation (Causing Fear of Harm) |
3210 | Physical threat |
3220 | Verbal threat |
3230 | Written threat |
3240 | Electronic threat |
3297 | Other threat |
3300 | Tobacco (Possession or Use) |
3310 | Sale of tobacco |
3320 | Distribution of tobacco |
3330 | Use of tobacco |
3340 | Possession of tobacco |
3350 | Suspicion of use of tobacco |
3397 | Other tobacco offense |
3400 | Trespassing (Unlawful or Unauthorized Presence) |
3500 | Vandalism (Damage to School or Personal Property) |
3510 | Vandalism of school property |
3520 | Vandalism of personal property |
3597 | Other vandalism |
3600 | Violation of School Rules (Disobeying School Policy) |
3700 | Weapons Possession (Firearms and Other Weapons) |
9000 | Other Offenses (e.g., Forgery, Extortion) |
0126 | Student |
0850 | Parent/guardian |
3054 | Law enforcement officer |
3059 | Nonschool personnel |
3060 | Representative of visiting school |
3061 | Other adult |
3062 | Other nonstudent youth |
3168 | Former student |
3422 | Staff member |
9997 | Unknown |
0126 | Student |
0850 | Parent/guardian |
3054 | Law enforcement officer |
3059 | Nonschool personnel |
3060 | Representative of visiting school |
3061 | Other adult |
3062 | Other nonstudent youth |
3168 | Former student |
3422 | Staff member |
9997 | Unknown |
3071 | Bus suspension |
3072 | Change of placement (long-term) |
3073 | Change of placement (reassignment), pending an expulsion hearing |
3074 | Change of placement (reassignment), resulting from an expulsion hearing |
3075 | Change of placement (reassignment), temporary |
3076 | Community service |
3077 | Conference with and warning to student |
3078 | Conference with and warning to student and parent/guardian |
3079 | Confiscation of contraband |
3080 | Conflict resolution or anger management services mandated |
3081 | Corporal punishment |
3082 | Counseling mandated |
3083 | Demerit |
3084 | Detention |
3085 | Expulsion recommendation |
3086 | Expulsion with services |
3087 | Expulsion without services |
3088 | Juvenile justice referral |
3089 | Law enforcement referral |
3090 | Letter of apology |
3091 | Loss of privileges |
3092 | Physical activity |
3093 | Reprimand |
3094 | Restitution |
3095 | Saturday school |
3096 | School probation |
3097 | Substance abuse counseling mandated |
3098 | Substance abuse treatment mandated |
3099 | Suspension after school |
3100 | Suspension, in-school |
3101 | Suspension, out-of-school, with services |
3102 | Suspension, out-of-school, without services |
3103 | Unsatisfactory behavior grade |
3104 | Work detail |
3105 | No action |
3154 | Suspension, out of school, greater than 10 consecutive school days |
3155 | Suspension, out of school, separate days cumulating to more than 10 school days |
3156 | Unilateral removal - weapon incident |
3157 | Unilateral removal - drug incident |
3158 | Removal by a hearing officer |
9997 | Unknown |
9998 | None |
9999 | Other |
3486 | Regular school district |
3487 | School district that is a component of a supervisory union |
3488 | Supervisory Union |
3489 | Regional education service agency (RESA) |
3490 | State school district |
3491 | Federal school district |
9999 | Other |
Note that the maintenance agency for these codes is [Z39.53/MA].
aar | Afar |
abk | Abkhaz |
ace | Achinese |
ach | Acoli |
ada | Adangme |
ady | Adygei |
afa | Afroasiatic (Other) |
afh | Afrihili (Artificial language) |
afr | Afrikaans |
ajm | Aljamía (Discontinued) |
aka | Akan |
akk | Akkadian |
alb | Albanian |
ale | Aleut |
alg | Algonquian (Other) |
amh | Amharic |
ang | English, Old (ca. 450-1100) |
apa | Apache languages |
ara | Arabic |
arc | Aramaic |
arg | Aragonese Spanish |
arm | Armenian |
arn | Mapuche |
arp | Arapaho |
art | Artificial (Other) |
arw | Arawak |
asm | Assamese |
ast | Bable |
ath | Athapascan (Other) |
aus | Australian languages |
ava | Avaric |
ave | Avestan |
awa | Awadhi |
aym | Aymara |
aze | Azerbaijani |
bad | Banda |
bai | Bamileke languages |
bak | Bashkir |
bal | Baluchi |
bam | Bambara |
ban | Balinese |
baq | Basque |
bas | Basa |
bat | Baltic (Other) |
bej | Beja |
bel | Belarusian |
bem | Bemba |
ben | Bengali |
ber | Berber (Other) |
bho | Bhojpuri |
bih | Bihari |
bik | Bikol |
bin | Edo |
bis | Bislama |
bla | Siksika |
bnt | Bantu (Other) |
bos | Bosnian |
bra | Braj |
bre | Breton |
btk | Batak |
bua | Buriat |
bug | Bugis |
bul | Bulgarian |
bur | Burmese |
cad | Caddo |
cai | Central American Indian (Other) |
cam | Khmer (Discontinued) |
car | Carib |
cat | Catalan |
cau | Caucasian (Other) |
ceb | Cebuano |
cel | Celtic (Other) |
cha | Chamorro |
chb | Chibcha |
che | Chechen |
chg | Chagatai |
chi | Chinese |
chk | Truk |
chm | Mari |
chn | Chinook jargon |
cho | Choctaw |
chp | Chipewyan |
chr | Cherokee |
chu | Church Slavic |
chv | Chuvash |
chy | Cheyenne |
cmc | Chamic languages |
cop | Coptic |
cor | Cornish |
cos | Corsican |
cpe | Creoles and Pidgins, English-based (Other) |
cpf | Creoles and Pidgins, French-based (Other) |
cpp | Creoles and Pidgins, Portuguese-based (Other) |
cre | Cree |
crh | Crimean Tatar |
crp | Creoles and Pidgins (Other) |
cus | Cushitic (Other) |
cze | Czech |
dak | Dakota |
dan | Danish |
dar | Dargwa |
day | Dayak |
del | Delaware |
den | Slave |
dgr | Dogrib |
din | Dinka |
div | Divehi |
doi | Dogri |
dra | Dravidian (Other) |
dua | Duala |
dum | Dutch, Middle (ca. 1050-1350) |
dut | Dutch |
dyu | Dyula |
dzo | Dzongkha |
efi | Efik |
egy | Egyptian |
eka | Ekajuk |
elx | Elamite |
eng | English |
enm | English, Middle (1100-1500) |
epo | Esperanto |
esk | Eskimo languages (Discontinued) |
esp | Esperanto (Discontinued) |
est | Estonian |
eth | Ethiopic (Discontinued) |
ewe | Ewe |
ewo | Ewondo |
fan | Fang |
fao | Faroese |
far | Faroese (Discontinued) |
fat | Fanti |
fij | Fijian |
fin | Finnish |
fiu | Finno-Ugrian (Other) |
fon | Fon |
fre | French |
fri | Frisian (Discontinued) |
frm | French, Middle (ca. 1400-1600) |
fro | French, Old (ca. 842-1400) |
fry | Frisian |
ful | Fula |
fur | Friulian |
gaa | Gã |
gae | Scottish Gaelic (Discontinued) |
gag | Galician (Discontinued) |
gal | Oromo |
gay | Gayo |
gba | Gbaya |
gem | Germanic (Other) |
geo | Georgian |
ger | German |
gez | Ethiopic |
gil | Gilbertese |
gla | Scottish Gaelic |
gle | Irish |
glg | Galician |
glv | Manx |
gmh | German, Middle High (ca. 1050-1500) |
goh | German, Old High (ca. 750-1050) |
gon | Gondi |
gor | Gorontalo |
got | Gothic |
grb | Grebo |
grc | Greek, Ancient (to 1453) |
gre | Greek, Modern (1453- ) |
grn | Guarani |
gua | Guarani (Discontinued) |
guj | Gujarati |
gwi | Gwich'in |
hai | Haida |
hat | Haitian French Creole |
hau | Hausa |
haw | Hawaiian |
heb | Hebrew |
her | Herero |
hil | Hiligaynon |
him | Himachali |
hin | Hindi |
hit | Hittite |
hmn | Hmong |
hmo | Hiri Motu |
hun | Hungarian |
hup | Hupa |
iba | Iban |
ibo | Igbo |
ice | Icelandic |
ido | Ido |
iii | Sichuan Yi |
ijo | Ijo |
iku | Inuktitut |
ile | Interlingue |
ilo | Iloko |
ina | Interlingua (International Auxiliary Language Association) |
inc | Indic (Other) |
ind | Indonesian |
ine | Indo-European (Other) |
inh | Ingush |
int | Interlingua (International Auxiliary Language Association) (Discontinued) |
ipk | Inupiaq |
ira | Iranian (Other) |
iri | Irish (Discontinued) |
iro | Iroquoian (Other) |
ita | Italian |
jav | Javanese |
jpn | Japanese |
jpr | Judeo-Persian |
jrb | Judeo-Arabic |
kaa | Kara-Kalpak |
kab | Kabyle |
kac | Kachin |
kal | Kalâtdlisut |
kam | Kamba |
kan | Kannada |
kar | Karen |
kas | Kashmiri |
kau | Kanuri |
kaw | Kawi |
kaz | Kazakh |
kbd | Kabardian |
kha | Khasi |
khi | Khoisan (Other) |
khm | Khmer |
kho | Khotanese |
kik | Kikuyu |
kin | Kinyarwanda |
kir | Kyrgyz |
kmb | Kimbundu |
kok | Konkani |
kom | Komi |
kon | Kongo |
kor | Korean |
kos | Kusaie |
kpe | Kpelle |
kro | Kru |
kru | Kurukh |
kua | Kuanyama |
kum | Kumyk |
kur | Kurdish |
kus | Kusaie (Discontinued) |
kut | Kutenai |
lad | Ladino |
lah | Lahnda |
lam | Lamba |
lan | Occitan (post-1500) (Discontinued) |
lao | Lao |
lap | Sami (Discontinued) |
lat | Latin |
lav | Latvian |
lez | Lezgian |
lim | Limburgish |
lin | Lingala |
lit | Lithuanian |
lol | Mongo-Nkundu |
loz | Lozi |
ltz | Letzeburgesch |
lua | Luba-Lulua |
lub | Luba-Katanga |
lug | Ganda |
lui | Luiseño |
lun | Lunda |
luo | Luo (Kenya and Tanzania) |
lus | Lushai |
mac | Macedonian |
mad | Madurese |
mag | Magahi |
mah | Marshallese |
mai | Maithili |
mak | Makasar |
mal | Malayalam |
man | Mandingo |
mao | Maori |
map | Austronesian (Other) |
mar | Marathi |
mas | Masai |
max | Manx (Discontinued) |
may | Malay |
mdr | Mandar |
men | Mende |
mga | Irish, Middle (ca. 1100-1550) |
mic | Micmac |
min | Minangkabau |
mis | Miscellaneous languages |
mkh | Mon-Khmer (Other) |
mla | Malagasy (Discontinued) |
mlg | Malagasy |
mlt | Maltese |
mnc | Manchu |
mni | Manipuri |
mno | Manobo languages |
moh | Mohawk |
mol | Moldavian |
mon | Mongolian |
mos | Mooré |
mul | Multiple languages |
mun | Munda (Other) |
mus | Creek |
mwr | Marwari |
myn | Mayan languages |
nah | Nahuatl |
nai | North American Indian (Other) |
nap | Neapolitan Italian |
nau | Nauru |
nav | Navajo |
nbl | Ndebele (South Africa) |
nde | Ndebele (Zimbabwe) |
ndo | Ndonga |
nds | Low German |
nep | Nepali |
new | Newari |
nia | Nias |
nic | Niger-Kordofanian (Other) |
niu | Niuean |
nno | Norwegian (Nynorsk) |
nob | Norwegian (Bokmål) |
nog | Nogai |
non | Old Norse |
nor | Norwegian |
nso | Northern Sotho |
nub | Nubian languages |
nya | Nyanja |
nym | Nyamwezi |
nyn | Nyankole |
nyo | Nyoro |
nzi | Nzima |
oci | Occitan (post-1500) |
oji | Ojibwa |
ori | Oriya |
orm | Oromo |
osa | Osage |
oss | Ossetic |
ota | Turkish, Ottoman |
oto | Otomian languages |
paa | Papuan (Other) |
pag | Pangasinan |
pal | Pahlavi |
pam | Pampanga |
pan | Panjabi |
pap | Papiamento |
pau | Palauan |
peo | Old Persian (ca. 600-400 B.C.) |
per | Persian |
phi | Philippine (Other) |
phn | Phoenician |
pli | Pali |
pol | Polish |
pon | Ponape |
por | Portuguese |
pra | Prakrit languages |
pro | Provençal (to 1500) |
pus | Pushto |
que | Quechua |
raj | Rajasthani |
rap | Rapanui |
rar | Rarotongan |
roa | Romance (Other) |
roh | Raeto-Romance |
rom | Romani |
rum | Romanian |
run | Rundi |
rus | Russian |
sad | Sandawe |
sag | Sango (Ubangi Creole) |
sah | Yakut |
sai | South American Indian (Other) |
sal | Salishan languages |
sam | Samaritan Aramaic |
san | Sanskrit |
sao | Samoan (Discontinued) |
sas | Sasak |
sat | Santali |
scc | Serbian |
sco | Scots |
scr | Croatian |
sel | Selkup |
sem | Semitic (Other) |
sga | Irish, Old (to 1100) |
sgn | Sign languages |
shn | Shan |
sho | Shona (Discontinued) |
sid | Sidamo |
sin | Sinhalese |
sio | Siouan (Other) |
sit | Sino-Tibetan (Other) |
sla | Slavic (Other) |
slo | Slovak |
slv | Slovenian |
sma | Southern Sami |
sme | Northern Sami |
smi | Sami |
smj | Lule Sami |
smn | Inari Sami |
smo | Samoan |
sms | Skolt Sami |
sna | Shona |
snd | Sindhi |
snh | Sinhalese (Discontinued) |
snk | Soninke |
sog | Sogdian |
som | Somali |
son | Songhai |
sot | Sotho |
spa | Spanish |
srd | Sardinian |
srr | Serer |
ssa | Nilo-Saharan (Other) |
sso | Sotho (Discontinued) |
ssw | Swazi |
suk | Sukuma |
sun | Sundanese |
sus | Susu |
sux | Sumerian |
swa | Swahili |
swe | Swedish |
swz | Swazi (Discontinued) |
syr | Syriac |
tag | Tagalog (Discontinued) |
tah | Tahitian |
tai | Tai (Other) |
taj | Tajik (Discontinued) |
tam | Tamil |
tar | Tatar (Discontinued) |
tat | Tatar |
tel | Telugu |
tem | Temne |
ter | Terena |
tet | Tetum |
tgk | Tajik |
tgl | Tagalog |
tha | Thai |
tib | Tibetan |
tig | Tigré |
tir | Tigrinya |
tiv | Tiv |
tkl | Tokelauan |
tli | Tlingit |
tmh | Tamashek |
tog | Tonga (Nyasa) |
ton | Tongan |
tpi | Tok Pisin |
tru | Truk (Discontinued) |
tsi | Tsimshian |
tsn | Tswana |
tso | Tsonga |
tsw | Tswana (Discontinued) |
tuk | Turkmen |
tum | Tumbuka |
tup | Tupi languages |
tur | Turkish |
tut | Altaic (Other) |
tvl | Tuvaluan |
twi | Twi |
tyv | Tuvinian |
udm | Udmurt |
uga | Ugaritic |
uig | Uighur |
ukr | Ukrainian |
umb | Umbundu |
und | Undetermined |
urd | Urdu |
uzb | Uzbek |
vai | Vai |
ven | Venda |
vie | Vietnamese |
vol | Volapük |
vot | Votic |
wak | Wakashan languages |
wal | Walamo |
war | Waray |
was | Washo |
wel | Welsh |
wen | Sorbian languages |
wln | Walloon |
wol | Wolof |
xal | Kalmyk |
xho | Xhosa |
yao | Yao (Africa) |
yap | Yapese |
yid | Yiddish |
yor | Yoruba |
ypk | Yupik languages |
zap | Zapotec |
zen | Zenaga |
zha | Zhuang |
znd | Zande |
zul | Zulu |
zun | Zuni |
ASST | Assistance with participation in school programs |
BASSUM | Before-school, after-school, mentoring, summer programs |
CLOTH | Clothing to meet a school requirement |
COORD | Coordinator between schools and agencies |
COUNS | Counseling |
DOMV | Addressing needs related to domestic violence |
ECPGM | Early Childhood Programs |
EE | Expedited evaluations |
EMER | Emergency assistance related to school attendance |
MEDREF | Referrals for medical, dental, and other health services |
MISSING | |
NOTAPPLIC | Not Applicable, when no McKinney Vento Program |
NOTCOLLECT | Not Collected |
OTHER | Other services or activities |
OTHREF | Referral to other programs and services |
PARENT | Parent education related to rights and resources for children |
PD | Staff professional development and awareness |
RECS | Obtaining or transferring records necessary for enrollment |
SUPPLY | School supplies |
TRANS | Transportation |
TUT | Tutoring or other instructional support |
BILING | Bilingual (including native language support) |
CONTENTESL | Content-based ESL |
DEVBIL | Developmental bilingual |
DUALLANG | Dual language |
HERITAGE | Heritage language preservation programs |
MISSING | |
NOTCOLLECT | Not Collected |
OTHER | Other |
PULLESL | Pull-out ESL |
SDAIE | Specially designed academic instruction delivered in English |
SHELENGL | Sheltered English Instruction |
STRUCIMM | Structured English Immersion |
TRANSBIL | Transitional bilingual |
TWOIMM | Two-way bilingual immersion |
AIS | Any Instructional Service |
ANYSS | Any Support Service |
ARS | Any Referred Service |
COS | Continuation of Service |
CS | Counseling Service |
HSCA | High School Credit Accrual (Grades 9-12 only) |
MI | Mathematics Instruction |
MISSING | |
NOTCOLLECT | Not Collected |
RI | Reading Instruction |
AS | Academic Support |
ASC | Accrued School Credits |
DP | Dropout Prevention |
JT | Job Training |
MISSING | |
NOTCOLLECT | Not Collected |
TS | Transition Support |
100 | During School Hours |
110 | Before classes |
120 | During class |
130 | During passing |
140 | During lunch/recess |
150 | After classes |
197 | Other time during school hours |
200 | In Transit |
210 | On the way to school |
220 | On the way from school |
300 | Outside School Hours |
310 | School-sponsored activity |
320 | Nonschool-sponsored activity |
397 | Other |
999 | Unknown |
01001 | English/Language Arts I (9th grade) |
01002 | English/Language Arts II (10th grade) |
01003 | English/Language Arts III (11th grade) |
01004 | English/Language Arts IV (12th grade) |
01005 | AP English Language and Composition |
01006 | AP English Literature and Composition |
01007 | IB Language A (English) |
01008 | English as a Second Language |
01009 | Language Arts Laboratory |
01051 | English/Literature (freshmen and sophomores) |
01052 | English/Literature (juniors and seniors) |
01053 | Literature |
01054 | American Literature |
01055 | American Literature/History |
01056 | British Literature |
01057 | British Literature/History |
01058 | World Literature |
01059 | Biblical Literature |
01060 | Literature of an Author |
01061 | Literature of a Genre |
01062 | Literature of a Period |
01063 | Literature of a Place |
01064 | Literature of a People |
01065 | Literature of a Theme |
01066 | Strategic Reading |
01067 | Assisted Reading |
01068 | Corrective Reading |
01097 | Literature—Independent Study |
01098 | Literature—Workplace Experience |
01099 | Literature—Other |
01101 | English/Composition (freshmen and sophomores) |
01102 | English/Composition (juniors and seniors) |
01103 | Composition |
01104 | Creative Writing |
01105 | Research/Technical Writing |
01147 | Composition—Independent Study |
01148 | Composition—Workplace Experience |
01149 | Composition—Other |
01151 | Public Speaking |
01152 | Forensic Speech—Inclusive |
01153 | Forensic Speech—Debate |
01154 | Forensic Speech—Individual Event |
01155 | Communications |
01156 | Applied English and Communications |
01197 | Speech—Independent Study |
01198 | Speech—Workplace Experience |
01199 | Speech—Other |
01201 | English Morphology and Grammar |
01202 | History of the English Language |
01203 | English—Test Preparation |
01992 | English Proficiency Development |
01995 | English Language and Literature—Aide |
01997 | English Language and Literature—Independent Study |
01998 | English Language and Literature—Workplace Experience |
01999 | English Language and Literature—Other |
02001 | Informal Mathematics |
02002 | General Math |
02003 | Particular Topics in Foundation Math |
02047 | Foundation Math—Independent Study |
02049 | Foundation Math—Other |
02051 | Pre-Algebra |
02052 | Algebra I |
02053 | Algebra I—Part 1 |
02054 | Algebra I—Part 2 |
02055 | Transition Algebra |
02056 | Algebra II |
02057 | Algebra III |
02058 | Particular Topics in Algebra |
02061 | Integrated Math—multi-year equivalent |
02069 | Algebra—Other |
02071 | Informal Geometry |
02072 | Geometry |
02073 | Analytic Geometry |
02074 | Principles of Algebra and Geometry |
02075 | Particular Topics in Geometry |
02079 | Geometry—Other |
02101 | Number Theory |
02102 | Discrete Mathematics |
02103 | Trigonometry |
02104 | Math Analysis |
02105 | Trigonometry/Math Analysis |
02106 | Trigonometry/Algebra |
02107 | Trigonometry/Analytic Geometry |
02108 | Math Analysis/Analytic Geometry |
02109 | Elementary Functions |
02110 | Pre-Calculus |
02111 | Linear Algebra |
02112 | Linear Programming |
02113 | Abstract Algebra |
02121 | Calculus |
02122 | Multivariate Calculus |
02123 | Differential Calculus |
02124 | AP Calculus AB |
02125 | AP Calculus BC |
02126 | Particular Topics in Calculus |
02131 | IB Mathematical Studies |
02132 | IB Mathematics |
02133 | IB Mathematics and Computing—SL |
02134 | IB Further Mathematics—SL |
02141 | Particular Topics in Analytic Mathematics |
02149 | Analytic Mathematics—Other |
02151 | General Applied Math |
02152 | Occupationally Applied Math |
02153 | Technical Math |
02154 | Business Math |
02155 | Business Math with Algebra |
02156 | Computer Math with Algebra |
02157 | Consumer Math |
02201 | Probability and Statistics |
02202 | Inferential Probability and Statistics |
02203 | AP Statistics |
02204 | Particular Topics in Probability and Statistics |
02207 | Probability and Statistics—Independent Study |
02209 | Probability and Statistics—Other |
02991 | History of Math |
02993 | Mathematics—Test Preparation |
02994 | Mathematics Proficiency Development |
02995 | Mathematics—Aide |
02997 | Mathematics—Independent Study |
02998 | Mathematics—Workplace Experience |
02999 | Mathematics—Other |
03001 | Earth Science |
03002 | Geology |
03003 | Environmental Science |
03004 | Astronomy |
03005 | Marine Science |
03006 | Meteorology |
03007 | Physical Geography |
03008 | Earth and Space Science |
03047 | Earth Science—Independent Study |
03048 | Earth Science—Workplace Experience |
03049 | Earth Science—Other |
03051 | Biology |
03052 | Biology—Advanced Studies |
03053 | Anatomy and Physiology |
03054 | Anatomy |
03055 | Physiology |
03056 | AP Biology |
03057 | IB Biology |
03058 | Botany |
03059 | Genetics |
03060 | Microbiology |
03061 | Zoology |
03062 | Conceptual Biology |
03063 | Particular Topics in Biology |
03097 | Biology—Independent Study |
03098 | Biology—Workplace Experience |
03099 | Biology—Other |
03101 | Chemistry |
03102 | Chemistry—Advanced Studies |
03103 | Organic Chemistry |
03104 | Physical Chemistry |
03105 | Conceptual Chemistry |
03106 | AP Chemistry |
03107 | IB Chemistry |
03108 | Particular Topics in Chemistry |
03147 | Chemistry—Independent Study |
03148 | Chemistry—Workplace Experience |
03149 | Chemistry—Other |
03151 | Physics |
03152 | Physics—Advanced Studies |
03153 | Principles of Technology |
03155 | AP Physics B |
03156 | AP Physics C |
03157 | IB Physics |
03159 | Physical Science |
03160 | IB Physical Science |
03161 | Conceptual Physics |
03162 | Particular Topics in Physics |
03197 | Physics—Independent Study |
03198 | Physics—Workplace Experience |
03199 | Physics—Other |
03201 | Integrated Science |
03202 | Unified Science |
03203 | Applied Biology/Chemistry |
03204 | Technological Inquiry |
03205 | Origins of Science |
03206 | IB Design Technology |
03207 | AP Environmental Science |
03208 | IB Environmental Science |
03209 | Aerospace |
03210 | Science, Technology and Society |
03211 | Technical Science |
03212 | Scientific Research and Design |
03994 | Life and Physical Sciences—Proficiency Development |
03995 | Life and Physical Sciences—Aide |
03997 | Life and Physical Sciences—Independent Study |
03998 | Life and Physical Sciences—Workplace Experience |
03999 | Life and Physical Sciences—Other |
04001 | World Geography |
04002 | Particular Topics in Geography |
04003 | IB Geography |
04004 | AP Human Geography |
04047 | Geography—Independent Study |
04048 | Geography—Workplace Experience |
04049 | Geography—Other |
04051 | World History—Overview |
04052 | World History and Geography |
04053 | Modern World History |
04054 | IB History |
04055 | Modern European History |
04056 | AP European History |
04057 | AP World History |
04058 | Ancient Civilizations |
04059 | Medieval European History |
04060 | Ancient and Medieval History |
04061 | World Area Studies |
04062 | World People Studies |
04063 | Western Civilization |
04064 | Contemporary World Issues |
04065 | Particular Topics in World History |
04066 | IB Islamic History |
04097 | World History—Independent Study |
04098 | World History—Workplace Experience |
04099 | World History—Other |
04101 | U.S. History—Comprehensive |
04102 | Early U.S. History |
04103 | Modern U.S. History |
04104 | AP U.S. History |
04105 | State-Specific Studies |
04106 | Contemporary U.S. Issues |
04107 | U.S. Ethnic Studies |
04108 | U.S. Gender Studies |
04109 | Particular Topics in U.S. History |
04147 | U.S. History—Independent Study |
04148 | U.S. History—Workplace Experience |
04149 | U.S. History—Other |
04151 | U.S. Government—Comprehensive |
04152 | Particular Topics in U.S. Government |
04153 | Political Science |
04154 | Comparative Government |
04155 | International Relations |
04156 | United States and World Affairs |
04157 | AP U.S. Government and Politics |
04158 | AP Comparative Government and Politics |
04159 | AP Government |
04160 | Principles of Democracy |
04161 | Civics |
04162 | Law Studies |
04163 | Consumer Law |
04164 | Business Law |
04165 | Legal System |
04166 | Particular Topics in Law |
04197 | Government, Politics and Law—Independent Study |
04198 | Government, Politics and Law—Workplace Experience |
04199 | Government, Politics and Law—Other |
04201 | Economics |
04202 | Comparative Economics |
04203 | AP Microeconomics |
04204 | AP Macroeconomics |
04205 | AP Economics |
04206 | IB Economics |
04207 | Particular Topics in Economics |
04247 | Economics—Independent Study |
04248 | Economics—Workplace Experience |
04249 | Economics—Other |
04251 | Anthropology |
04252 | Particular Topics in Anthropology |
04253 | IB Social Anthropology |
04254 | Psychology |
04255 | Particular Topics in Psychology |
04256 | AP Psychology |
04257 | IB Psychology |
04258 | Sociology |
04259 | Particular Topics in Sociology |
04260 | Social Science |
04261 | Social Science Research |
04262 | IB Organization Studies |
04297 | Social Sciences—Independent Study |
04298 | Social Sciences—Workplace Experience |
04299 | Social Sciences—Other |
04301 | Humanities Survey |
04302 | Humanities |
04303 | Issues of Western Humanities |
04304 | IB Theory of Knowledge |
04305 | Social Studies |
04306 | Philosophy |
04307 | Particular Topics in Philosophy |
04308 | Modern Intellectual History |
04309 | IB Philosophy |
04310 | Particular Topics in Humanities |
04347 | Humanities—Independent Study |
04348 | Humanities—Workplace Experience |
04349 | Humanities—Other |
04994 | Social Sciences and History—Proficiency Development |
04995 | Social Sciences and History—Aide |
04997 | Social Sciences and History—Independent Study |
04998 | Social Sciences and History—Workplace Experience |
04999 | Social Sciences and History—Other |
05001 | Dance Technique |
05002 | Dance Repertory |
05003 | Expressive Movement |
05004 | Dance Appreciation |
05005 | Choreography |
05047 | Dance—Independent Study |
05048 | Dance—Workplace Experience |
05049 | Dance—Other |
05051 | Introduction to the Theater |
05052 | Theatre Arts |
05053 | Drama—Comprehensive |
05054 | Exploration in Drama |
05055 | Drama—Acting/Performance |
05056 | Drama—Stagecraft |
05057 | Directing |
05058 | Playwriting |
05059 | History and Literature of the Theater |
05097 | Drama—Independent Study |
05098 | Drama—Workplace Experience |
05099 | Drama—Other |
05101 | General Band |
05102 | Concert Band |
05103 | Marching Band |
05104 | Orchestra |
05105 | Contemporary Band |
05106 | Instrumental Ensembles |
05107 | Piano |
05108 | Guitar |
05109 | Individual Technique—Instrumental Music |
05110 | Chorus |
05111 | Vocal Ensembles |
05112 | Individual Technique—Vocal Music |
05113 | Music Theory |
05114 | AP Music Theory |
05115 | IB Music |
05116 | Music History/Appreciation |
05117 | Music History |
05118 | Music Appreciation |
05119 | Composition/Songwriting |
05147 | Music—Independent Study |
05148 | Music—Workplace Experience |
05149 | Music—Other |
05151 | Art Appreciation |
05152 | Art History |
05153 | AP Art—History of Art |
05154 | Creative Art—Comprehensive |
05155 | Creative Art—Drawing/Painting |
05156 | Creative Art—Drawing |
05157 | Creative Art—Painting |
05158 | Creative Art—Sculpture |
05159 | Ceramics/Pottery |
05160 | Printmaking/Graphics |
05161 | Printmaking |
05162 | Graphic Design |
05163 | Advertising Design |
05164 | Textiles |
05165 | Crafts |
05166 | Jewelry |
05167 | Photography |
05168 | Film/Videotape |
05169 | Computer-Assisted Art |
05170 | Art Portfolio |
05171 | AP Studio Art—General Portfolio |
05172 | AP Studio Art—Drawing Portfolio |
05173 | IB Art/Design |
05197 | Visual Arts—Independent Study |
05198 | Visual Arts—Workplace Experience |
05199 | Visual Arts—Other |
05201 | Integrated Fine Arts |
05995 | Fine and Performing Art—Aide |
05997 | Fine and Performing Art—Independent Study |
05998 | Fine and Performing Art—Workplace Experience |
05999 | Fine and Performing Art—Other |
06101 | Spanish I |
06102 | Spanish II |
06103 | Spanish III |
06104 | Spanish IV |
06105 | Spanish V |
06106 | Spanish for Native Speakers |
06107 | Spanish Field Experience |
06108 | Spanish Conversation and Culture |
06109 | Spanish Literature |
06110 | IB Language A (non-English)—Spanish |
06111 | IB Language B—Spanish |
06112 | AP Spanish Language |
06113 | AP Spanish Literature |
06121 | French I |
06122 | French II |
06123 | French III |
06124 | French IV |
06125 | French V |
06126 | French for Native Speakers |
06127 | French Field Experience |
06128 | French Conversation and Culture |
06129 | French Literature |
06130 | IB Language A (non-English)—French |
06131 | IB Language B—French |
06132 | AP French Language |
06133 | AP French Literature |
06141 | Italian I |
06142 | Italian II |
06143 | Italian III |
06144 | Italian IV |
06145 | Italian V |
06146 | Italian for Native Speakers |
06147 | Italian Field Experience |
06148 | Italian Conversation and Culture |
06149 | Italian Literature |
06150 | IB Language A (non-English)—Italian |
06151 | IB Language B—Italian |
06161 | Portuguese I |
06162 | Portuguese II |
06163 | Portuguese III |
06164 | Portuguese IV |
06165 | Portuguese V |
06166 | Portuguese for Native Speakers |
06167 | Portuguese Field Experience |
06168 | Portuguese Conversation and Culture |
06169 | Portuguese Literature |
06170 | IB Language A (non-English)—Portuguese |
06171 | IB Language B—Portuguese |
06181 | Romance/Italic Language I |
06182 | Romance/Italic Language II |
06183 | Romance/Italic Language III |
06184 | Romance/Italic Language IV |
06185 | Romance/Italic Language V |
06186 | Romance/Italic Language for Native Speakers |
06187 | Romance/Italic Language Field Experience |
06188 | Romance/Italic Language Conversation and Culture |
06189 | Romance/Italic Literature |
06190 | IB Language A (non-English)—Romance/Italic Language |
06191 | IB Language B—Romance/Italic Language |
06199 | Romance/Italic Language—Other |
06201 | German I |
06202 | German II |
06203 | German III |
06204 | German IV |
06205 | German V |
06206 | German for Native Speakers |
06207 | German Field Experience |
06208 | German Conversation and Culture |
06209 | German Literature |
06210 | IB Language A (non-English)—German |
06211 | IB Language B—German |
06212 | AP German Language |
06241 | Germanic Language I |
06242 | Germanic Language II |
06243 | Germanic Language III |
06244 | Germanic Language IV |
06245 | Germanic Language V |
06246 | Germanic Language for Native Speakers |
06247 | Germanic Language Field Experience |
06248 | Germanic Language Conversation and Culture |
06249 | Germanic Literature |
06250 | IB Language A (non-English)—Germanic Language |
06251 | IB Language B—Germanic Language |
06259 | Germanic Language—Other |
06261 | Celtic Language I |
06262 | Celtic Language II |
06263 | Celtic Language III |
06264 | Celtic Language IV |
06265 | Celtic Language V |
06266 | Celtic Language for Native Speakers |
06267 | Celtic Language Field Experience |
06268 | Celtic Language Conversation and Culture |
06269 | Celtic Literature |
06270 | IB Language A (non-English)—Celtic Language |
06271 | IB Language B—Celtic Language |
06279 | Celtic Language—Other |
06281 | Greek I |
06282 | Greek II |
06283 | Greek III |
06284 | Greek IV |
06285 | Greek V |
06286 | Greek for Native Speakers |
06287 | Greek Field Experience |
06288 | Greek Conversation and Culture |
06289 | Greek Literature |
06290 | IB Language A (non-English)—Greek |
06291 | IB Language B—Greek |
06299 | Greek—Other |
06301 | Latin I |
06302 | Latin II |
06303 | Latin III |
06304 | Latin IV |
06305 | Latin V |
06311 | IB Classical Languages—Latin |
06313 | AP Latin (Virgil, Catullus and Horace) |
06321 | Classical Greek I |
06322 | Classical Greek II |
06323 | Classical Greek III |
06324 | Classical Greek IV |
06325 | Classical Greek V |
06331 | IB Classical Languages—Greek |
06359 | Classical Languages—Other |
06401 | Chinese I |
06402 | Chinese II |
06403 | Chinese III |
06404 | Chinese IV |
06405 | Chinese V |
06406 | Chinese for Native Speakers |
06407 | Chinese Field Experience |
06408 | Chinese Conversation and Culture |
06409 | Chinese Literature |
06410 | IB Language A (non-English)—Chinese |
06411 | IB Language B—Chinese |
06421 | Japanese I |
06422 | Japanese II |
06423 | Japanese III |
06424 | Japanese IV |
06425 | Japanese V |
06426 | Japanese for Native Speakers |
06427 | Japanese Field Experience |
06428 | Japanese Conversation and Culture |
06429 | Japanese Literature |
06430 | IB Language A (non-English)—Japanese |
06431 | IB Language B—Japanese |
06441 | Korean I |
06442 | Korean II |
06443 | Korean III |
06444 | Korean IV |
06445 | Korean V |
06446 | Korean for Native Speakers |
06447 | Korean Field Experience |
06448 | Korean Conversation and Culture |
06449 | Korean Literature |
06450 | IB Language A (non-English)—Korean |
06451 | IB Language B—Korean |
06481 | East Asian Language I |
06482 | East Asian Language II |
06483 | East Asian Language III |
06484 | East Asian Language IV |
06485 | East Asian Language V |
06486 | East Asian Language for Native Speakers |
06487 | East Asian Language Field Experience |
06488 | East Asian Language Conversation and Culture |
06489 | East Asian Literature |
06490 | IB Language A (non-English)—East Asian Language |
06491 | IB Language B—East Asian Language |
06499 | East Asian Language—Other |
06501 | Vietnamese I |
06502 | Vietnamese II |
06503 | Vietnamese III |
06504 | Vietnamese IV |
06505 | Vietnamese V |
06506 | Vietnamese for Native Speakers |
06507 | Vietnamese Field Experience |
06508 | Vietnamese Conversation and Culture |
06509 | Vietnamese Literature |
06510 | IB Language A (non-English)—Vietnamese |
06511 | IB Language B—Vietnamese |
06521 | Filipino I |
06522 | Filipino II |
06523 | Filipino III |
06524 | Filipino IV |
06525 | Filipino V |
06526 | Filipino for Native Speakers |
06527 | Filipino Field Experience |
06528 | Filipino Conversation and Culture |
06529 | Filipino Literature |
06530 | IB Language A (non-English)—Filipino |
06531 | IB Language B—Filipino |
06581 | Southeast Asian Language I |
06582 | Southeast Asian Language II |
06583 | Southeast Asian Language III |
06584 | Southeast Asian Language IV |
06585 | Southeast Asian Language V |
06586 | Southeast Asian Language for Native Speakers |
06587 | Southeast Asian Language Field Experience |
06588 | Southeast Asian Language Conversation and Culture |
06589 | Southeast Asian Literature |
06590 | IB Language A (non-English)—Southeast Asian Language |
06591 | IB Language B—Southeast Asian Language |
06599 | Southeast Asian Language—Other |
06601 | Russian I |
06602 | Russian II |
06603 | Russian III |
06604 | Russian IV |
06605 | Russian V |
06606 | Russian for Native Speakers |
06607 | Russian Field Experience |
06608 | Russian Conversation and Culture |
06609 | Russian Literature |
06610 | IB Language A (non-English)—Russian |
06611 | IB Language—Russian |
06641 | Balto-Slavic Language I |
06642 | Balto-Slavic Language II |
06643 | Balto-Slavic Language III |
06644 | Balto-Slavic Language IV |
06645 | Balto-Slavic Language V |
06646 | Balto-Slavic Language for Native Speakers |
06647 | Balto-Slavic Language Field Experience |
06648 | Balto-Slavic Language Conversation and Culture |
06649 | Balto-Slavic Literature |
06650 | IB Language A (non-English)—Balto-Slavic Language |
06651 | IB Language B—Balto-Slavic Language |
06659 | Balto-Slavic Language—Other |
06661 | Turkic/Ural-Altaic Language I |
06662 | Turkic/Ural-Altaic Language II |
06663 | Turkic/Ural-Altaic Language III |
06664 | Turkic/Ural-Altaic Language IV |
06665 | Turkic/Ural-Altaic Language V |
06666 | Turkic/Ural-Altaic Language for Native Speakers |
06667 | Turkic/Ural-Altaic Language Field Experience |
06668 | Turkic/Ural-Altaic Language Conversation and Culture |
06669 | Turkic/Ural-Altaic Literature |
06670 | IB Language A (non-English)—Turkic/Ural-Altaic Language |
06671 | IB Language B—Turkic/Ural-Altaic Language |
06679 | Turkic/Ural-Altaic Language—Other |
06681 | Iranian/Persian Language I |
06682 | Iranian/Persian Language II |
06683 | Iranian/Persian Language III |
06684 | Iranian/Persian Language IV |
06685 | Iranian/Persian Language V |
06686 | Iranian/Persian Language for Native Speakers |
06687 | Iranian/Persian Language Field Experience |
06688 | Iranian/Persian Language Conversation and Culture |
06689 | Iranian/Persian Literature |
06690 | IB Language A (non-English)—Iranian/Persian Language |
06691 | IB Language B—Iranian/Persian Language |
06699 | Iranian/Persian Language—Other |
06701 | Hebrew I |
06702 | Hebrew II |
06703 | Hebrew III |
06704 | Hebrew IV |
06705 | Hebrew V |
06706 | Hebrew for Native Speakers |
06707 | Hebrew Field Experience |
06708 | Hebrew Conversation and Culture |
06709 | Hebrew Literature |
06710 | IB Language A (non-English)—Hebrew |
06711 | IB Language B—Hebrew |
06712 | IB Classical Languages—Hebrew |
06721 | Arabic I |
06722 | Arabic II |
06723 | Arabic III |
06724 | Arabic IV |
06725 | Arabic V |
06726 | Arabic for Native Speakers |
06727 | Arabic Field Experience |
06728 | Arabic Conversation and Culture |
06729 | Arabic Literature |
06730 | IB Language A (non-English)—Arabic |
06731 | IB Language—Arabic |
06732 | IB Classical Languages—Arabic |
06759 | Semitic and Near/Middle Eastern Languages—Other |
06761 | Swahili I |
06762 | Swahili II |
06763 | Swahili III |
06764 | Swahili IV |
06765 | Swahili V |
06766 | Swahili for Native Speakers |
06767 | Swahili Field Experience |
06768 | Swahili Conversation and Culture |
06769 | Swahili Literature |
06770 | IB Language A (non-English)—Swahili |
06771 | IB Language B—Swahili |
06781 | Non-Semitic African Language I |
06782 | Non-Semitic African Language II |
06783 | Non-Semitic African Language III |
06784 | Non-Semitic African Language IV |
06785 | Non-Semitic African Language V |
06786 | Non-Semitic African Language for Native Speakers |
06787 | Non-Semitic African Language Field Experience |
06788 | Non-Semitic African Language Conversation and Culture |
06789 | Non-Semitic African Literature |
06790 | IB Language A (non-English)—Non-Semitic African Language |
06791 | IB Language B—Non-Semitic African Language |
06799 | Non-Semitic African Language—Other |
06801 | American Sign Language I |
06802 | American Sign Language II |
06803 | American Sign Language III |
06804 | American Sign Language IV |
06805 | American Sign Language V |
06819 | American Sign Language—Other |
06821 | American Indian Language I |
06822 | American Indian Language II |
06823 | American Indian Language III |
06824 | American Indian Language IV |
06825 | American Indian Language V |
06826 | American Indian Language for Native Speakers |
06827 | American Indian Language Field Experience |
06828 | American Indian Language Conversation and Culture |
06829 | American Indian Literature |
06830 | IB Language A (non-English)—American Indian Language |
06831 | IB Language B—American Indian Language |
06839 | American Indian Language—Other |
06841 | Indic Language I |
06842 | Indic Language II |
06843 | Indic Language III |
06844 | Indic Language IV |
06845 | Indic Language V |
06846 | Indic Language for Native Speakers |
06847 | Indic Language Field Experience |
06848 | Indic Language Conversation and Culture |
06849 | Indic Literature |
06850 | IB Language A (non-English)—Indic Language |
06851 | IB Language B—Indic Language |
06859 | Indic Language—Other |
06861 | Malayo-Polynesian Language I |
06862 | Malayo-Polynesian Language II |
06863 | Malayo-Polynesian Language III |
06864 | Malayo-Polynesian Language IV |
06865 | Malayo-Polynesian Language V |
06866 | Malayo-Polynesian Language for Native Speakers |
06867 | Malayo-Polynesian Language Field Experience |
06868 | Malayo-Polynesian Language Conversation and Culture |
06869 | Malayo-Polynesian Literature |
06870 | IB Language A (non-English)—Malayo-Polynesian Language |
06871 | IB Language B—Malayo-Polynesian Language |
06879 | Malayo-Polynesian Language—Other |
06995 | Foreign Language and Literature—Aide |
06997 | Foreign Language and Literature—Independent Study |
06998 | Foreign Language and Literature—Workplace Experience |
06999 | Foreign Language and Literature—Other |
07001 | Religious Foundations |
07002 | Comparative Religion |
07003 | Eastern Religions |
07004 | Western Religions |
07005 | Scriptures |
07006 | Old Testament |
07007 | New Testament |
07008 | Bible History |
07009 | Christology |
07010 | Religious Figures |
07011 | Liturgy and Prayer |
07012 | Prayer and Spirituality |
07013 | Religious Ethics and Morality |
07014 | Justice, Peace, and Faith |
07015 | Faith and Lifestyle |
07016 | Ministry |
07995 | Religious Education and Theology—Aide |
07997 | Religious Education and Theology—Independent Study |
07998 | Religious Education and Theology—Workplace Experience |
07999 | Religious Education and Theology—Other |
08001 | Physical Education |
08002 | Team Sports |
08003 | Individual/Dual Sports |
08004 | Recreation Sports |
08005 | Fitness/Conditioning Activities |
08006 | Corps Movement |
08007 | Adapted Physical Education |
08008 | Gymnastics |
08009 | Weight Training |
08010 | Aquatics/Water Sports |
08011 | Tennis |
08012 | Self-defense |
08013 | Specific Sports Activities |
08014 | Physical Education Equivalent |
08015 | Off-Campus Sports |
08016 | Lifetime Fitness Education |
08017 | Sports Physiology |
08047 | Physical Education—Independent Study |
08048 | Physical Education—Workplace Experience |
08049 | Physical Education—Other |
08051 | Health Education |
08052 | Health and Fitness |
08053 | Community Health |
08054 | Special Needs Health Education |
08055 | Safety and First Aid |
08056 | Health for Parenting Teens |
08057 | Health and Life Management |
08058 | Substance Abuse Prevention |
08097 | Health Education—Independent Study |
08098 | Health Education—Workplace Experience |
08099 | Health Education—Other |
08151 | Drivers’ Education—Classroom Only |
08152 | Drivers’ Education—Classroom and Laboratory |
08197 | Drivers’ Education—Independent Study |
08198 | Drivers’ Education—Workplace Experience |
08199 | Drivers’ Education—Other |
08201 | Physical Education/Health/Drivers’ Education |
08995 | Physical, Health, and Safety Education—Aide |
08997 | Physical, Health, and Safety Education—Independent Study |
08998 | Physical, Health, and Safety Education—Workplace Experience |
08999 | Physical, Health, and Safety Education—Other |
09001 | Introduction to Jr. ROTC |
09002 | Military Jr. ROTC—unspecified branch |
09003 | ROTC Drill |
09004 | Military Leadership |
09051 | Army Junior ROTC I |
09052 | Army Junior ROTC II |
09053 | Army Junior ROTC III |
09054 | Army Junior ROTC IV |
09101 | Naval Junior ROTC I |
09102 | Naval Junior ROTC II |
09103 | Naval Junior ROTC III |
09104 | Naval Junior ROTC IV |
09151 | Air Force Junior ROTC I |
09152 | Air Force Junior ROTC II |
09153 | Air Force Junior ROTC III |
09154 | Air Force Junior ROTC IV |
09201 | Marine Corps Junior ROTC I |
09202 | Marine Corps Junior ROTC II |
09203 | Marine Corps Junior ROTC III |
09204 | Marine Corps Junior ROTC IV |
09995 | Military Science—Aide |
09997 | Military Science—Independent Study |
09998 | Military Science—Workplace Experience |
09999 | Military Science—Other |
10001 | Introduction to Computers |
10002 | Computing Systems |
10003 | Computer and Information Technology |
10004 | Computer Applications |
10005 | Business Computer Applications |
10006 | Telecommunications |
10007 | IB Information Technology in a Global Society |
10008 | Particular Topics in Computer Literacy |
10047 | Computer Literacy—Independent Study |
10048 | Computer Literacy—Workplace Experience |
10049 | Computer Literacy—Other |
10051 | Information Management |
10052 | Database Management and Data Warehousing |
10053 | Database Applications |
10054 | Data Systems/Processing |
10055 | Particular Topics in Management Information Systems |
10097 | Management Information Systems—Independent Study |
10098 | Management Information Systems—Workplace Experience |
10099 | Management Information Systems—Other |
10101 | Network Technology |
10102 | Networking Systems |
10103 | Area Network Design and Protocols |
10104 | Router Basics |
10105 | NetWare Routing |
10106 | Wide Area Telecommunications and Networking |
10107 | Wireless Networks |
10108 | Network Security |
10109 | Essentials of Network Operating Systems |
10110 | Microsoft Certified Professional (MCP) |
10111 | Particular Topics in Networking Systems |
10147 | Networking Systems—Independent Study |
10148 | Networking Systems—Workplace Experience |
10149 | Networking Systems—Other |
10151 | Business Programming |
10152 | Computer Programming |
10153 | Visual Basic (VB) Programming |
10154 | C++ Programming |
10155 | Java Programming |
10156 | Computer Programming—Other Language |
10157 | AP Computer Science A |
10158 | AP Computer Science AB |
10159 | IB Computing Studies |
10160 | Particular Topics in Computer Programming |
10197 | Computer Programming—Independent Study |
10198 | Computer Programming—Workplace Experience |
10199 | Computer Programming—Other |
10201 | Web Page Design |
10202 | Computer Graphics |
10203 | Interactive Media |
10204 | Particular Topics in Media Technology |
10247 | Media Technology—Independent Study |
10248 | Media Technology—Workplace Experience |
10249 | Media Technology—Other |
10251 | Computer Technology |
10252 | Computer Maintenance |
10253 | Information Support and Services |
10254 | IT Essentials: PC Hardware and Software |
10255 | CISCO—The Panduit Network Infrastructure Essentials (PNIE) |
10256 | Particular Topics in Information Support and Services |
10297 | Information Support and Services—Independent Study |
10298 | Information Support and Services—Workplace Experience |
10299 | Information Support and Services—Other |
10995 | Computer and Information Sciences—Aide |
10997 | Computer and Information Sciences—Independent Study |
10998 | Computer and Information Sciences—Workplace Experience |
10999 | Computer and Information Sciences—Other |
11001 | Introduction to Communication |
11002 | Communication Technology |
11003 | Particular Topics in Communication |
11047 | Communication—Independent Study |
11048 | Communication—Workplace Experience |
11049 | Communication—Other |
11051 | Audio/Visual Production |
11052 | Commercial Photography |
11053 | Photographic Laboratory and Darkroom |
11054 | Photo Imaging |
11055 | Video |
11056 | Particular Topics in Audio/Video Technology and Film |
11097 | Audio/Video Technology and Film—Independent Study |
11098 | Audio/Video Technology and Film—Workplace Experience |
11099 | Audio/Video Technology and Film—Other |
11101 | Journalism |
11102 | Photojournalism |
11103 | Broadcasting Technology |
11104 | Publication Production |
11105 | Particular Topics in Journalism and Broadcasting |
11147 | Journalism and Broadcasting—Independent Study |
11148 | Journalism and Broadcasting—Workplace Experience |
11149 | Journalism and Broadcasting—Other |
11151 | Digital Media Technology |
11152 | Desktop Publishing |
11153 | Digital Media Design and Production |
11154 | Commercial Graphic Design |
11155 | Graphic Technology |
11156 | Photography and Printing Technology |
11157 | Photoengraving |
11158 | Print Press Operations |
11159 | Particular Topics in Printing Technology and Production |
11197 | Printing Technology—Independent Study |
11198 | Printing Technology—Workplace Experience |
11199 | Printing Technology—Other |
11995 | Communication and Audio/Video Technology—Aide |
11997 | Communication and Audio/Video Technology—Independent Study |
11998 | Communication and Audio/Video Technology—Workplace Experience |
11999 | Communication and Audio/Video Technology—Other |
12001 | Business/Office Career Exploration |
12002 | Office Procedures—Comprehensive |
12003 | Office and Administrative Technologies |
12004 | Office Services |
12005 | Keyboarding |
12006 | Word Processing |
12007 | Recordkeeping |
12008 | Particular Topics in Administration |
12009 | Business Communications |
12047 | Administration—Independent Study |
12048 | Administration—Workplace Experience |
12049 | Administration—Other |
12051 | Introductory Business |
12052 | Business Management |
12053 | Entrepreneurship |
12054 | Business Law |
12055 | Business Principles and Management |
12056 | International Business and Marketing |
12057 | Human Resources and Labor Relations |
12058 | Human Resources Management |
12059 | IB Business and Management |
12097 | Management—Independent Study |
12098 | Management—Workplace Experience |
12099 | Management—Other |
12101 | Banking and Finance |
12102 | Banking |
12103 | Finance |
12104 | Accounting |
12105 | Business Economics |
12106 | Risk Management and Insurance |
12107 | Investing |
12147 | Finance—Independent Study |
12148 | Finance—Workplace Experience |
12149 | Finance—Other |
12151 | Marketing Career Exploration |
12152 | Marketing—Comprehensive |
12153 | Marketing—Fashion |
12154 | Marketing—Real Estate |
12155 | Marketing—Transportation |
12156 | Marketing—Food/Beverage Industry |
12157 | Marketing—Insurance |
12158 | Marketing—Floristry |
12159 | Marketing—Hospitality/Tourism |
12160 | Marketing—Merchandising |
12161 | Retail Marketing |
12162 | Internet Marketing |
12163 | Sports and Entertainment Marketing |
12164 | Principles of Marketing |
12165 | Principles of Advertising |
12166 | Marketing Management |
12167 | Marketing—Other Specialization |
12197 | Marketing—Independent Study |
12198 | Marketing—Workplace Experience |
12199 | Marketing—Other |
12201 | Cashier/Checker Operations |
12202 | Principles of Selling |
12247 | Sales—Independent Study |
12248 | Sales—Workplace Experience |
12249 | Sales—Other |
12995 | Business and Marketing—Aide |
12997 | Business and Marketing—Independent Study |
12998 | Business and Marketing—Workplace Experience |
12999 | Business and Marketing—Other |
13001 | Exploration of Manufacturing Occupations |
13002 | Manufacturing—Comprehensive |
13003 | Industrial Arts |
13004 | Industrial Safety/First Aid |
13052 | Material and Processes |
13053 | Metal and Wood Processing/Production |
13054 | Wood Processing/Production |
13055 | Metal Processing/Production |
13056 | Plastics Processing/Production |
13057 | Ceramic Processing/Production |
13058 | Particular Topics in Processing and Production |
13097 | Processing/Production—Independent Study |
13098 | Processing/Production—Workplace Experience |
13099 | Processing/Production—Other |
13101 | Production Systems |
13102 | Electro-Mechanical Systems |
13103 | Product Development |
13147 | Production Systems—Independent Study |
13148 | Production Systems—Workplace Experience |
13149 | Production Systems—Other |
13201 | Metalwork Occupations |
13202 | Metalworking |
13203 | Machining |
13204 | Particular Topics in Machining |
13205 | Sheet Metal |
13206 | Particular Topics in Sheet Metal |
13207 | Welding |
13208 | Particular Topics in Welding |
13209 | Particular Topics in Metalwork |
13247 | Metalwork—Independent Study |
13248 | Metalwork—Workplace Experience |
13249 | Metalwork—Other |
13301 | Appliance Repair |
13302 | Equipment Maintenance and Repair |
13347 | Repair—Independent Study |
13348 | Repair—Workplace Experience |
13349 | Repair—Other |
13995 | Manufacturing—Aide |
13997 | Manufacturing—Independent Study |
13998 | Manufacturing—Workplace Experience |
13999 | Manufacturing—Other |
14001 | Exploration of Health Care Occupations |
14002 | Health Care Occupations—Comprehensive |
14051 | Nursing |
14052 | Nursing—LPN |
14053 | Home Health Care |
14054 | Dental Science |
14055 | Emergency Medical Technology |
14056 | Surgical Technology |
14057 | Vision Care |
14058 | Optometrics |
14059 | Gerontology |
14060 | Physical Therapy |
14061 | Respiratory Therapy |
14062 | Care of Athletes |
14063 | Particular Topics in Therapeutic Services |
14097 | Therapeutic Services—Independent Study |
14098 | Therapeutic Services—Workplace Experience |
14099 | Therapeutic Services—Other |
14101 | Dental Laboratory Technology |
14102 | Medical Lab Technology |
14103 | EKG Technology |
14104 | Phlebotomy |
14105 | Particular Topics in Diagnostic Services |
14147 | Diagnostic Services—Independent Study |
14148 | Diagnostic Services—Workplace Experience |
14149 | Diagnostic Services—Other |
14151 | Medical/Clerical Assisting |
14152 | Pharmacy Assisting |
14153 | Medical Office Procedures |
14154 | Medical Terminology |
14155 | Particular Topics in Health Information |
14197 | Health Information—Independent Study |
14198 | Health Information—Workplace Experience |
14199 | Health Information—Other |
14201 | Central Service Technology |
14202 | Health Support Services |
14203 | Health Unit Coordination |
14204 | Particular Topics in Support Services |
14247 | Health Support Services—Independent Study |
14248 | Health Support Services—Workplace Experience |
14249 | Health Support Services—Other |
14251 | Health Science |
14252 | Biotechnology |
14253 | Pharmacology |
14254 | Particular Topics in Health Sciences |
14297 | Health Sciences—Independent Study |
14298 | Health Sciences—Workplace Experience |
14299 | Health Sciences—Other |
14995 | Health Care Sciences—Aide |
14997 | Health Care Sciences—Independent Study |
14998 | Health Care Sciences—Workplace Experience |
14999 | Health Care Sciences—Other |
15001 | Exploration of Public Service Careers |
15051 | Criminal Justice |
15052 | Corrections |
15053 | Particular Topics in Law Enforcement |
15097 | Law Enforcement—Independent Study |
15098 | Law Enforcement—Workplace Experience |
15099 | Law Enforcement—Other |
15101 | Public Safety |
15102 | Security Services |
15103 | Particular Topics in Security |
15147 | Security and Protection—Independent Study |
15148 | Security and Protection—Workplace Experience |
15149 | Security and Protection—Other |
15151 | Fire Science |
15152 | Fire Fighting |
15153 | Particular Topics in Fire Management |
15197 | Fire Management—Independent Study |
15198 | Fire Management—Workplace Experience |
15199 | Fire Management—Other |
15201 | Public Administration |
15202 | Community Protection |
15203 | Public Policy |
15247 | Government Service—Independent Study |
15248 | Government Service—Workplace Experience |
15249 | Government Service—Other |
15995 | Public, Protective, and Government Service—Aide |
15997 | Public, Protective, and Government Service—Independent Study |
15998 | Public, Protective, and Government Service—Workplace Experience |
15999 | Public, Protective, and Government Service—Other |
16001 | Exploration of Hospitality Careers |
16051 | Exploration of Restaurant, Food and Beverage Services |
16052 | Restaurant, Food and Beverage Services—Comprehensive |
16053 | Food Service |
16054 | Nutrition and Food Preparation |
16055 | Restaurant Management and Operations |
16056 | Culinary Art Specialty |
16057 | Particular Topics in Restaurant, Food and Beverage Services |
16097 | Restaurant, Food and Beverage Services—Independent Study |
16098 | Restaurant, Food and Beverage Services—Workplace Experience |
16099 | Restaurant, Food and Beverage Services—Other |
16101 | Exploration of Lodging Careers |
16102 | Lodging—Comprehensive |
16103 | Institutional Maintenance |
16104 | Particular Topics in Lodging |
16147 | Lodging—Independent Study |
16148 | Lodging—Workplace Experience |
16149 | Lodging—Other |
16151 | Introduction to Travel and Tourism |
16152 | Travel and Tourism—Comprehensive |
16153 | World Travel and Tourism |
16154 | Eco-tourism |
16155 | Particular Topics in Travel and Tourism |
16197 | Travel and Tourism—Independent Study |
16198 | Travel and Tourism—Workplace Experience |
16199 | Travel and Tourism—Other |
16201 | Exploration of Recreation, Amusement and Attractions |
16202 | Recreation, Amusement and Attractions—Comprehensive |
16203 | Particular Topics in Recreation, Amusement and Attractions |
16247 | Recreation, Amusement and Attractions—Independent Study |
16248 | Recreation, Amusement and Attractions—Workplace Experience |
16249 | Recreation, Amusement and Attractions—Other |
16995 | Hospitality and Tourism—Aide |
16997 | Hospitality and Tourism—Independent Study |
16998 | Hospitality and Tourism—Workplace Experience |
16999 | Hospitality and Tourism—Other |
17001 | Construction Careers Exploration |
17002 | Construction—Comprehensive |
17003 | Carpentry |
17004 | Framing Carpentry |
17005 | Particular Topics in Carpentry |
17006 | Woodworking |
17007 | Cabinetmaking |
17008 | Masonry |
17009 | Building Maintenance |
17010 | Home Maintenance |
17011 | Wall Finishings |
17012 | Upholstering |
17047 | General Construction—Independent Study |
17048 | General Construction—Workplace Experience |
17049 | General Construction—Other |
17051 | Air Conditioning |
17053 | Heating |
17054 | Air Conditioning/Refrigeration |
17055 | Air Conditioning, Heating, and Refrigeration |
17056 | Heating, Ventilation, and Air Conditioning |
17057 | Particular Topics in HVACR |
17097 | Air Conditioning, Heating and Plumbing—Independent Study |
17098 | Air Conditioning, Heating and Plumbing—Workplace Experience |
17099 | Air Conditioning, Heating and Plumbing—Other |
17101 | Exploration of Electricity/Electronics |
17102 | Electricity—Comprehensive |
17103 | Residential Wiring |
17104 | Industrial Electricity |
17105 | Particular Topics in Electricity |
17106 | Electronics—Comprehensive |
17107 | Particular Topics in Electronics |
17108 | Electricity/Electronics—General |
17109 | Particular Topics in Electricity/Electronics |
17110 | Analog and Digital Circuits |
17111 | Analog Circuits |
17112 | Digital Circuits |
17147 | Electricity/Electronics—Independent Study |
17148 | Electricity/Electronics—Workplace Experience |
17149 | Electricity/Electronics—Other |
17152 | Refrigeration |
17158 | Plumbing |
17159 | Plumbing and Heating |
17995 | Architecture and Construction—Aide |
17997 | Architecture and Construction—Independent study |
17998 | Architecture and Construction—Workplace Experience |
17999 | Architecture and Construction—Other |
18001 | Introduction to Agriculture and Natural Resources |
18002 | Agriculture—Comprehensive |
18003 | Agriculture and Natural Resources—Comprehensive |
18051 | Plant Production/Science |
18052 | General Horticulture |
18053 | Ornamental Horticulture |
18054 | Turf and Landscape Management |
18055 | Soil Science |
18056 | Particular Topics in Plant Systems |
18097 | Plant Systems—Independent Study |
18098 | Plant Systems—Workplace Experience |
18099 | Plant Systems—Other |
18101 | Animal Production/Science |
18102 | Small Animal Care |
18103 | Large Animal Care |
18104 | Equine Science |
18105 | Veterinary Science |
18106 | Particular Topics in Animal Systems |
18147 | Animal Systems—Independent Study |
18148 | Animal Systems—Workplace Experience |
18149 | Animal Systems—Other |
18201 | Agribusiness Management |
18202 | Agricultural Entrepreneurship |
18203 | Agricultural Leadership |
18204 | Particular Topics in Agribusiness |
18247 | Agribusiness—Independent Study |
18248 | Agribusiness—Workplace Experience |
18249 | Agribusiness—Other |
18301 | Agricultural Production |
18302 | Agricultural Processing |
18303 | Plant Processing |
18304 | Animal Processing |
18305 | Food Product Processing |
18306 | Aquaculture |
18307 | Agriculture and Society |
18308 | Agricultural Biotechnology |
18309 | Particular Topics in Agricultural Production/Processing |
18347 | Agricultural Production and Processing—Independent Study |
18348 | Agricultural Production and Processing—Workplace Experience |
18349 | Agricultural Production and Processing—Other |
18401 | Agriculture Mechanics/Equipment/Structures |
18402 | Agriculture Mechanics and Equipment |
18403 | Agriculture Structures |
18404 | Agriculture Welding |
18405 | Particular Topics in Agricultural Mechanics and Construction |
18447 | Agricultural Mechanics and Construction—Independent Study |
18448 | Agricultural Mechanics and Construction—Workplace Experience |
18449 | Agricultural Mechanics and Construction—Other |
18501 | Wildlife Management |
18502 | Forestry |
18503 | Forestry Harvesting |
18504 | Natural Resources Management |
18505 | Particular Topics in Natural Resources |
18547 | Natural Resources—Independent Study |
18548 | Natural Resources—Workplace Experience |
18549 | Natural Resources—Other |
18995 | Agriculture, Food, and Natural Resources—Aide |
18997 | Agriculture, Food, and Natural Resources—Independent Study |
18998 | Agriculture, Food, and Natural Resources—Workplace Experience |
18999 | Agriculture, Food, and Natural Resources—Other |
19001 | Human Services Career Exploration |
19051 | Child Care |
19052 | Child Development |
19053 | Elder Care |
19054 | Caregiving Service |
19055 | Particular Topics in Child and Elder Care |
19097 | Child and Elder Care—Independent Study |
19098 | Child and Elder Care—Workplace Experience |
19099 | Child and Elder Care—Other |
19101 | Cosmetology—Licensing |
19102 | Barbering |
19103 | Hair Styling |
19104 | Cosmetology—Non-licensing |
19105 | Cosmetology—Nail Specialization |
19106 | Cosmetology—Facial Specialization |
19107 | Particular Topics in Cosmetology |
19147 | Cosmetology—Independent Study |
19148 | Cosmetology—Workplace Experience |
19149 | Cosmetology—Other |
19151 | Teaching Profession |
19152 | Educational Methodology |
19153 | Early Childhood Education |
19154 | Particular Topics in Education |
19197 | Education—Independent Study |
19198 | Education—Workplace Experience |
19199 | Education—Other |
19201 | Clothing and Textiles |
19202 | Clothing/Textile Maintenance |
19203 | Apparel Construction |
19204 | Apparel and Textile Services |
19205 | Home Furnishing |
19206 | Home Furnishings Production |
19207 | Particular Topics in Apparel and Furnishings |
19247 | Apparel and Furnishings—Independent Study |
19248 | Apparel and Furnishings—Workplace Experience |
19249 | Apparel and Furnishings—Other |
19995 | Human Services—Aide |
19997 | Human Services—Independent Study |
19998 | Human Services—Workplace Experience |
19999 | Human Services—Other |
20001 | Exploration of Transportation, Distribution and Logistics |
20051 | Truck and Bus Driving |
20052 | Heavy Equipment Operation |
20053 | Aviation |
20054 | Boat Operation |
20097 | Operation—Independent Study |
20098 | Operation—Workplace Experience |
20099 | Operation—Other |
20101 | Energy/Power |
20102 | Power and Mechanics |
20103 | Introduction to Automobiles |
20104 | Automotive Mechanics—Comprehensive |
20105 | Particular Topics in Automotive Mechanics |
20106 | Automotive Service |
20107 | Diesel Mechanics—Comprehensive |
20108 | Particular Topics in Diesel Mechanics |
20109 | Small Vehicle Mechanics |
20110 | Small Engine Mechanics |
20111 | Marine Mechanics |
20112 | Heavy Equipment Mechanics |
20113 | Aircraft Power Plant |
20114 | Aircraft Airframe |
20115 | Automotive Detailing and Reconditioning |
20116 | Automotive Body Repair and Refinishing—Comprehensive |
20117 | Particular Topics in Automotive Body Repair and Refinishing |
20118 | Boat Repair/Refinishing |
20147 | Mechanics and Repair—Independent Study |
20148 | Mechanics and Repair—Workplace Experience |
20149 | Mechanics and Repair—Other |
20151 | Distribution—Comprehensive |
20152 | Warehouse Operations |
20197 | Distribution and Logistics—Independent Study |
20198 | Distribution and Logistics—Workplace Experience |
20199 | Distribution and Logistics—Other |
20995 | Transportation, Distribution and Logistics—Aide |
20997 | Transportation, Distribution and Logistics—Independent Study |
20998 | Transportation, Distribution and Logistics—Workplace Experience |
20999 | Transportation, Distribution and Logistics—Other |
21001 | Pre-Engineering Technology |
21002 | Engineering Applications |
21003 | Engineering Technology |
21004 | Principles of Engineering |
21005 | Engineering—Comprehensive |
21006 | Engineering Design |
21007 | Engineering Design and Development |
21008 | Digital Electronics |
21009 | Robotics |
21010 | Computer Integrated Manufacturing |
21011 | Civil Engineering |
21012 | Civil Engineering and Architecture |
21013 | Aerospace Engineering |
21014 | Biotechnical Engineering |
21015 | Particular Topics in Engineering |
21047 | Engineering—Independent Study |
21048 | Engineering—Workplace Experience |
21049 | Engineering—Other |
21051 | Technological Literacy |
21052 | Technological Processes |
21053 | Emerging Technologies |
21054 | Technology Innovation and Assessment |
21055 | Aerospace Technology |
21056 | Particular Topics in Technology Applications |
21097 | Technology—Independent Study |
21098 | Technology—Workplace Experience |
21099 | Technology—Other |
21101 | Drafting Careers Exploration |
21102 | Drafting—General |
21103 | Drafting—Architectural |
21104 | Drafting—Civil/Structural |
21105 | Drafting—Electrical/Electronic |
21106 | Drafting—Technical/Mechanical |
21107 | CAD Design and Software |
21108 | Blueprint Reading |
21147 | Drafting—Independent Study |
21148 | Drafting—Workplace Experience |
21149 | Drafting—Other |
21995 | Engineering and Technology—Aide |
21997 | Engineering and Technology—Independent Study |
21998 | Engineering and Technology—Workplace Experience |
21999 | Engineering and Technology—Other |
22001 | Standardized Test Preparation |
22002 | State Test Preparation |
22003 | Study Skills |
22004 | Dropout Prevention Program |
22005 | Tutorial |
22006 | Study Hall |
22051 | Office Aide |
22052 | Guidance Aide |
22053 | Library/AVC Aide |
22054 | Tutoring Practicum |
22101 | Leadership |
22102 | School Orientation |
22103 | School Governance |
22104 | Community Service |
22105 | Values Clarification |
22106 | Seminar |
22151 | Career Exploration |
22152 | Employability Skills |
22153 | Diversified Occupations |
22201 | Family and Consumer Science—Comprehensive |
22202 | Food and Nutrition |
22203 | Food Science |
22204 | Child Development/Parenting |
22205 | Clothing/Sewing |
22206 | Life Skills |
22207 | Self Management |
22208 | Family Living |
22209 | Personal Development |
22210 | Consumer Economics/Personal Finance |
22211 | Home Décor |
22245 | Family and Consumer Science—Aide |
22247 | Family and Consumer Science—Independent Study |
22249 | Family and Consumer Science—Other |
22995 | Miscellaneous—Aide |
22997 | Miscellaneous—Independent Study |
22998 | Miscellaneous—Workplace Experience |
22999 | Miscellaneous—Other |
51 | English Language and Literature |
52 | Mathematics |
53 | Life and Physical Sciences |
54 | Social Sciences and History |
55 | Fine and Performing Arts |
56 | Foreign Language and Literature |
57 | Religious Education and Theology |
58 | Physical, Health, and Safety Education |
59 | Military Science |
60 | Computer and Information Sciences |
61 | Communication and Audio/Visual Technology |
62 | Business and Marketing |
63 | Manufacturing |
64 | Health Care Sciences |
65 | Public, Protective, and Government Service |
66 | Hospitality and Tourism |
67 | Architecture and Construction |
68 | Agriculture, Food, and Natural Resources |
69 | Human Services |
70 | Transportation, Distribution and Logistics |
71 | Engineering and Technology |
72 | Miscellaneous |
01 | English Language and Literature |
02 | Mathematics |
03 | Life and Physical Sciences |
04 | Social Sciences and History |
05 | Fine and Performing Arts |
06 | Foreign Language and Literature |
07 | Religious Education and Theology |
08 | Physical, Health, and Safety Education |
09 | Military Science |
10 | Computer and Information Sciences |
11 | Communication and Audio/Visual Technology |
12 | Business and Marketing |
13 | Manufacturing |
14 | Health Care Sciences |
15 | Public, Protective, and Government Service |
16 | Hospitality and Tourism |
17 | Architecture and Construction |
18 | Agriculture, Food, and Natural Resources |
19 | Human Services |
20 | Transportation, Distribution and Logistics |
21 | Engineering and Technology |
22 | Miscellaneous |
1 | Dairy: butter, cheese, eggs, milk, yogurt |
2 | Spices, seasonings, flavorings, leavening agents |
3 | Babyfood |
4 | Fats and oils: margarine, shortening, mayonnaise, salad dressings |
5 | Poultry Products |
6 | Soups, sauces and gravies |
7 | Luncheon meat and sausage |
8 | Breakfast Cereals |
9 | Fruits and fruit juices |
10 | Pork Products |
11 | Vegetables (includes beans and legumes) |
12 | Nuts and seeds |
13 | Beef |
14 | Beverages |
15 | Fish |
16 | Condiments: catsup, mustard, relish |
17 | Lamb, Veal and Game Products |
18 | Baked goods: breads, cakes, cookies, crackers, pies, rolls |
19 | Sweets |
20 | Grains |
21 | Fast Foods |
22 | Meals, Entrees, and Sidedishes |
25 | Snacks |
29 | Miscellaneous |
30 | General recipes |
31 | Bread and cereal recipes |
32 | Dessert recipes |
33 | Main dish recipes |
34 | Salad and dressing recipes |
35 | Sandwich recipes |
36 | Sauce and gravy recipes |
37 | Soup recipes |
38 | Vegetable recipes |
39 | Breakfast recipes |
43 | Purchased mixed dishes—lunch entrees/main dishes (pizza, etc) |
44 | Purchased mixed dishes—breakfast entrees/main dishes |
45 | Meat substitutes/Vegetable proteins |
AA | Armed Forces Americas (except Canada) |
AE | Armed Forces Africa, Canada, Europe and Middle East |
AK | ALASKA |
AL | ALABAMA |
AP | Armed Forces Pacific |
AR | ARKANSAS |
AS | AMERICAN SAMOA |
AZ | ARIZONA |
CA | CALIFORNIA |
CO | COLORADO |
CT | CONNECTICUT |
DC | DISTRICT OF COLUMBIA |
DE | DELAWARE |
FL | FLORIDA |
FM | FEDERATED STATES OF MICRONESIA |
GA | GEORGIA |
GU | GUAM |
HI | HAWAII |
IA | IOWA |
ID | IDAHO |
IL | ILLINOIS |
IN | INDIANA |
KS | KANSAS |
KY | KENTUCKY |
LA | LOUISIANA |
MA | MASSACHUSETTS |
MD | MARYLAND |
ME | MAINE |
MH | MARSHALL ISLANDS |
MI | MICHIGAN |
MN | MINNESOTA |
MO | MISSOURI |
MP | NORTHERN MARIANA ISLANDS |
MS | MISSISSIPPI |
MT | MONTANA |
NC | NORTH CAROLINA |
ND | NORTH DAKOTA |
NE | NEBRASKA |
NH | NEW HAMPSHIRE |
NJ | NEW JERSEY |
NM | NEW MEXICO |
NV | NEVADA |
NY | NEW YORK |
OH | OHIO |
OK | OKLAHOMA |
OR | OREGON |
PA | PENNSYLVANIA |
PR | PUERTO RICO |
PW | PALAU |
RI | RHODE ISLAND |
SC | SOUTH CAROLINA |
SD | SOUTH DAKOTA |
TN | TENNESSEE |
TX | TEXAS |
UT | UTAH |
VA | VIRGINIA |
VI | VIRGIN ISLANDS |
VT | VERMONT |
WA | WASHINGTON |
WI | WISCONSIN |
WV | WEST VIRGINIA |
WY | WYOMING |
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.
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.
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.
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"?>
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.
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).
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:
Agents and Zone Integration servers SHOULD send values of true or false, but
must understand equivalent 1 and 0 values.
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.
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.
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.
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:
are conceptually:
http://www.sifinfo.org/infrastructure/1.x:SIF_Messagehttp://www.sifinfo.org/infrastructure/1.x:SIF_Eventwith the local names:
SIF_MessageSIF_Event
To a namespace-aware parser, the effective names of these same elements in the SIF 2.x namespace:
are conceptually:
http://www.sifinfo.org/infrastructure/2.x:SIF_Messagehttp://www.sifinfo.org/infrastructure/2.x:SIF_Eventwith the local names:
SIF_MessageSIF_Event
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:
| Prefix | Namespace | Declaration |
|---|---|---|
xml | http://www.w3.org/XML/1998/namespace | This is bound and fixed by default without declaration. |
xsi | http://www.w3.org/2001/XMLSchema-instance | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
xs | http://www.w3.org/2001/XMLSchema | xmlns: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.
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.
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.
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.
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.
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.
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)
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.
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. |
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) |
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. |
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. |
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.
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.
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.
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.
128 Total
101 Total
30 Total
2680 Total
481 Total
| Key | Citation |
| 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>. |
| Key | Citation |
| CanadaPost | Canada Post. Canada Postal Guide. 6 July 2006 <http://www.canadapost.ca/personal/tools/pg/manual/b03-e.asp>. |
| 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/>. |