Overview
A conceptual overview of the example that follows is contained in the "Conceptual Overview of How to Create a Custom Interchange Schema" section of the Ed-Fi Data Standard: Developers' Guide documentation.
Example: Creating a High School Student Transcript Interchange Schema
To illustrate how one would apply the Ed-Fi Data Model for information exchange, consider how one would use the Ed-Fi Core XML Schema to develop an interchange for a student transcript interchange from a high school to a post-secondary institution
Step 1: Analyze the Specific Data Requirements for the Data Interchange.
The requirement is for a student transcript interchange that would be appropriate for a high school or LEA to send to a post-secondary institution. For this interchange, the student transcript should have the following information:
- Student identification and contact information
- Standard No Child Left Behind (NCLB) demographics, omitting any details on disabilities
- K–12 enrollment history indicating the various schools attended
- Academic record showing semester and final grades and credits earned for each secondary course taken
- Scores for the yearly state standardized tests (summary scores only)
- Yearly and final credits earned and grade point average (GPA)
- Graduation plan and date graduated
- Student transcript interchange indicating whether it is an official or unofficial submission
Step 2: Analyze the Specific Interchange Transactions that Are Required.
For this requirement, a single interchange is desired that encapsulates one student’s data in one interchange file.
Step 3: Map the Data Requirements to the Ed-Fi Unifying Data Model.
Referring to the Ed-Fi UML models, the desired information is reflected in the Assessment, Enrollment, Graduation, Student Academic Record, and Student Identification and Demographics models, as shown in the next set of figures.
Student Assessment Model (click to enlarge)
Enrollment Model (click to enlarge)
Graduation Model (click to enlarge)
Student Academic Record Model (click to enlarge)
Student Identification and Demographics Model (click to enlarge)
Step 4: Identify the Ed-Fi Domain and Association Types Required for the Interchange.
The preceding figures highlight the entities and the associations required for the Student Transcript interchange in the UML models.
From this analysis, the following entities and associations from the Ed-Fi Core XSD need to be included in the interchange:
Table: Entities and Associations to Include in Interchange
Domain Required Information | Ed-Fi Entities and Associations |
Student identification and contact information | Student |
Standard NCLB demographics, omitting any details on disabilities | Student |
K–12 enrollment history indicating the various schools attended | StudentSchoolAssociation |
Academic record showing semester and final grades and credits earned for each secondary course taken | CourseTranscript |
Scores for the yearly state standardized tests (summary scores only) | StudentAssessment |
Yearly and final credits earned and grade point average (GPA) | StudentAcademicRecord |
Graduation plan and date graduated | StudentSchoolAssociation |
Student transcript interchange should indicate whether it is an official or unofficial submission | <Not in Ed-Fi Core, requires extension> |
Step 5: Extend the Ed-Fi Core, If Required.
The Ed-Fi Unifying Data Model maps to all of the data required, except whether the submission is official or unofficial. For this, a new enumeration type is created, as follows:
<xs:simpleType name=”EXTENSION-SubmissionCertificationType”> <xs:restriction base=”xs:token”> <xs:enumeration value=”Official”/> <xs:enumeration value=”Unofficial”/> </xs:restriction> </xs:simpleType>
Using this new type, the StudentAcademicRecord is extended as follows:
<xs:complexType name=”EXTENSION-StudentAcademicRecordExtension”> <xs:complexContent> <xs:extension base=”StudentAcademicRecord”> <xs:sequence> <xs:element name=”SubmissionCertification” type=”EXTENSION-SubmissionCertificationType”/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType>
Step 6: Validate Extended Reference Types for External References.
The student transcript interchange is meant to be stand-alone, not requiring that the receiving system have any preloaded information. Thus any extended reference types used must have all of the information necessary for the receiving system.
We examine the selected entities and associations for reference types that are reference entities not identified to be included in the interchange:
Table: Examine Reference Types
Ed-Fi Entities and Associations | References Internal to the Interchange | References External to the Interchange |
Student | <none> | <none> |
StudentSchoolAssociation | StudentReference | SchoolReference |
StudentAcademicRecord | StudentReference | <none> |
CourseTranscript | StudentReference | <none> |
ReportCard | StudentReference | <none> |
Grade | StudentSectionAssociationReference | GradingPeriodReference |
StudentSectionAssociation | StudentReference | <none> |
Section | CourseReference | SchoolReference |
Course | <none> | EducationOrganization Reference |
StudentAssessment | StudentReference | AssessmentReference |
Examining each of the external references results in the following conclusions:
- SchoolReference only includes the SchoolId. Since the enrollment data needs at least the school name, and perhaps city, it is necessary to include the School entity in the interchange.
- The GradingPeriodReference includes the GradingPeriod, BeginDate, EducationOrganizationReference, which includes the EducationOrganizationId; no additional information needed.
- Section reference for ProgramReference is optional and is not needed for the interchange.
- Course references for LearningStandardReference and LearningObjectiveReference are optional and are not needed for the interchange. The EducationOrganizationReference include the EducationOrganizationId; no additional information is needed.
- AssessmentReference includes AssessmentTitle, AcademicSubject, AssessedGradeLevel, and Version that are required to identify and label the test assessment. There is no need to include the Assessment entity.
Step 7: Create the Interchange Schema File(s)
With the required entities and associations identified, the interchange schema file is created, including the Ed-Fi-Core.xsd. As described earlier, an element is created for the interchange with an unbounded OR for each of the required complex types, as depicted below:
Interchange Schema diagram
This results in the final interchange schema file as shown below:
<?xml version=”1.0” encoding=”UTF-8”?> <xs:schema xmlns:xs=”http://www.w3.org/2001/XMLSchema” xmlns=”http://ed-fi.org/0200” targetNamespace=”http://ed-fi.org/0200” elementFormDefault=”qualified” attributeFormDefault=”unqualified”> <xs:include schemaLocation=”Ed-Fi-Core.xsd”/> <xs:element name=”InterchangeHSGeneratedStudentTranscript”> <xs:complexType> <xs:choice maxOccurs=”unbounded”> <xs:element name=”Student” type=”Student” minOccurs=”0” maxOccurs=”unbounded”/> <xs:element name=”StudentSchoolAssociation” type=”StudentSchoolAssociation” minOccurs=”0” maxOccurs=”unbounded”/> <xs:element name=”StudentAcademicRecord” type=”EXTENSION-StudentAcademicRecordExtension” minOccurs=”0” maxOccurs=”unbounded”/> <xs:element name=”CourseTranscript” type=”CourseTranscript” minOccurs=”0” maxOccurs=”unbounded”/> <xs:element name=”ReportCard” type=”ReportCard” minOccurs=”0” maxOccurs=”unbounded”/> <xs:element name=”Grade” type=”Grade” minOccurs=”0” maxOccurs=”unbounded”/> <xs:element name=”StudentSectionAssociation” type=”StudentSectionAssociation” minOccurs=”0” maxOccurs=”unbounded”/> <xs:element name=”Section” type=”Section” minOccurs=”0” maxOccurs=”unbounded”/> <xs:element name=”Course” type=”Course” minOccurs=”0” maxOccurs=”unbounded”/> <xs:element name=”StudentAssessment” type=”StudentAssessment” minOccurs=”0” maxOccurs=”unbounded”/> <xs:element name=”School” type=”School” minOccurs=”0” maxOccurs=”unbounded”/> </xs:choice> </xs:complexType> </xs:element> <xs:complexType name=”EXTENSION-StudentAcademicRecordEExtension”> <xs:complexContent> <xs:extension base=”StudentAcademicRecord”> <xs:sequence> <xs:element name=”SubmissionCertification” type=”EXTENSION-SubmissionCertification”/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:simpleType name=”EXTENSION-SubmissionCertificationType”> <xs:annotation> <xs:documentation>The indication of whether the submission is official or not. </xs:documentation> </xs:annotation> <xs:restriction base=”xs:token”> <xs:enumeration value=”Official”/> <xs:enumeration value=”Unofficial”/> </xs:restriction> </xs:simpleType> </xs:schema>