The SIF Data Objects (SDO) library is a set of object-oriented Java classes that model all data objects, common elements, and enumerated types defined by the SIF spec. Data objects like StudentPersonal and LibraryPatronStatus are encapsulated by classes of the same name; common elements such as Name, Address, and Demographics are also represented by their own classes. Enumerated type classes are provided wherever a SIF code or type attribute is required. The SDO classes handle proper message rendering and parsing according to the rules of each version of SIF.
The SDO classes are not strictly required for ADK programming. You could work with SIF data in pure XML form using strings or standard interfaces like DOM. There are significant benefits to using the SDO classes, however; they include:
- Automatic message parsing
- Automatic message rendering
- Automatic handling of differences in each version of SIF
- Support for concurrent versions of SIF
- Automatic trimming of SIF_Response payloads
- Automatic packetizing of SIF_Response messages
- SIF_Response messages are returned in the version of SIF requested
Organization of SIF Data Object Classes
The SIF Data Object classes are arranged into Java packages along the same organiza-tional boundaries as SIF Working Groups. Agents can select which packages to include at deployment time, or can choose to load all packages into memory indiscriminately.
For example, if your agent uses objects from Student Information Systems and Food Services but not from other working groups like Transportation or Library Automation, you can choose to distribute only the sdostudent.jar and sdofood.jar libraries. When initializing the class framework with the static ADK.initialize function, instruct the ADK to use only these two modules by passing the SIFDTD.SDO_STUDENT and SIFDTD.SDO_FOOD flags to that function (logically OR the two flags together).
// Initialize the ADK to use the Student Information Systems and
// Food Services SIF Data Object modules. You can include sdoall.jar
// on the classpath, or only the sdostudent.jar and sdofood.jar files
// to keep the size of your agent to a minimum.
ADK.initialize( SIFVersion.LATEST, SIFDTD.SDO_STUDENT | SIFDTD.SDO_FOOD );
Similarly, to include all SIF Data Object modules with your agent, redistribute the sdoall.jar file and pass the SIF.ALL_SDO_LIBRARIES flag to the ADK.initialize function. NOTE: calling the ADK.initialize() overload that takes no parameters is equivalent to using the SIFVersion.LATEST and SIFDTD.SDO_ALL parameters.
// Initialize the ADK to use all SIF Data Object modules.
// Include sdoall.jar on the classpath.
ADK.initialize( SIFVersion.LATEST, SIFDTD.SDO_ALL );
Java Packages
The table below summarizes the various SIF Data Object
packages. Package names are relative to com.edustructures.sifworks:
|
SIF Working Group
|
com.edustructures.sifworks.* Package
|
Library File
|
|
Common Elements
|
common
|
Built-In
|
|
Assessment
|
assessment
|
sdoassessment.jar
|
|
Data Warehousing
|
dw
|
sdodw.jar
|
|
Student Record Exchange
|
etranscripts
|
sdoetranscripts.jar
|
|
Food Services
|
food
|
sdofood.jar
|
|
Grade Book
|
gradebook
|
sdogradebook.jar
|
|
HR & Financials
|
hr
|
sdohrfin.jar
|
|
SIF Infrastructure
|
infra
|
Built-In
|
|
Instructional Services
|
instr
|
sdoinstr.jar
|
|
Library Automation
|
library
|
sdolibrary.jar
|
|
Professional Development
|
profdev
|
sdoprofdev.jar
|
|
Special Programs
|
programs
|
sdoprograms.jar
|
|
Vertical Reporting & Student Locator
|
reporting
|
sdoreporting.jar
|
|
Student Information
|
student
|
sdostudent.jar
|
|
Transportation
|
trans
|
sdotrans.jar
|
Note the SIF Infrastructure data objects (e.g. SIF_ZoneStatus)
and Common Element data object (e.g. Name, Address, Demographics)
are part of the core ADK class framework and thus are included with the sifworks-adk.jar
library file. They’re always available regardless of which SDO modules you
choose to load when calling the ADK.initialize
method.