How To: Create a Custom Interchange Schema (Part 2 - Walkthrough)


In Part 1, we walked through a conceptual overview of how to create a custom interchange schema.  Now, we'll walk through an actual example for further illustration. 

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 local education agency 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

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
StudentAcademicRecord
ReportCard
Grade
StudentSectionAssociation
Section
Course

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
StudentAcademicRecord

Step 5: 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
ReportCardReference
DiplomaReference

<none>

CourseTranscript

StudentReference
SectionReference

<none>

ReportCard

StudentReference
GradeReference

<none>

Grade

StudentSectionAssociationReference

GradingPeriodReference

StudentSectionAssociation

StudentReference
SectionReference

<none>

Section

CourseReference

SchoolReference
LocationReference
ClassPeriodReference

Course

<none>

EducationOrganization Reference
StudentExpectationReference

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, and 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 includes 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 6: Create the Interchange Schema File(s)

With the required entities and associations identified, the interchange schema file, EXTENSION-InterchangeHSGeneratedStudentTranscript-Extension.xsd, 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"?>
<!-- (c)2017 Ed-Fi Alliance, LLC. All Rights Reserved. -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://ed-fi.org/0210" targetNamespace="http://ed-fi.org/0210" 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"/>
				<xs:element name="StudentSchoolAssociation" type="StudentSchoolAssociation"/>
				<xs:element name="StudentAcademicRecord" type="StudentAcademicRecord"/>
				<xs:element name="CourseTranscript" type="CourseTranscript"/>
				<xs:element name="ReportCard" type="ReportCard"/>
				<xs:element name="Grade" type="Grade"/>
				<xs:element name="StudentSectionAssociation" type="StudentSectionAssociation"/>
				<xs:element name="Section" type="Section"/>
				<xs:element name="Course" type="Course"/>
				<xs:element name="StudentAssessment" type="StudentAssessment"/>
				<xs:element name="School" type="School"/>
			</xs:choice>
		</xs:complexType>
	</xs:element>
</xs:schema>