Customize by Using Extended Ed-Fi Core XML Schema

To build upon Part 4 and conclude this example, we will create an interchange schema using these extensions that includes the new extended core. This final step is relatively straightforward, as follows:

  1. Create the base EXTENSION-Interchange-HSGeneratedStudentTranscript-Extension_Example.xsd, including the EXTENSION-Ed-Fi-Extended-Core.xsd.
  2. Define the interchange as InterchangeHSGeneratedStudentTranscript with elements:
    • Student of type Student
    • StudentSchoolAssociation of type StudentSchoolAssociation
    • StudentAcademicRecord of type EXTENSION-StudentAcademicRecordExtension 
    • CourseTranscript of type CourseTranscript
    • ReportCard of type ReportCard
    • Grade of type Grade
    • StudentSectionAssociation of type StudentSectionAssociation
    • StudentAssessment of type StudentAssessment
    • School of type School
    • PostsecondaryInstitution of type EXTENSION-PostsecondaryInstitution.

The following is the resulting interchange schema:

<?xml version="1.0" encoding="UTF-8"?>
<!-- (c)2015 Ed-Fi Alliance, LLC. All Rights Reserved. -->
<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="EXTENSION-Ed-Fi-Extended-Core.xsd"/>
	<xs:annotation>
		<xs:documentation>===== High School Generated Student Transcript Exchange Model  =====</xs:documentation>
	</xs:annotation>
	<xs:element name="InterchangeHSGeneratedStudentTranscript">
		<xs:annotation>
			<xs:documentation>This "concrete" exchange standard is to load a student transcript generated by a high school for a postsecondary institution, contining the following information:
• Student identification and contact information
• Standard 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
• The student transcript interchange should indicate whether it is an official or unofficial submission
• Postsecondary Institution(s) that the student is attending 
</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:choice maxOccurs="unbounded">
				<xs:element name="Student" type="Student"/>
				<xs:element name="StudentSchoolAssociation" type="StudentSchoolAssociation"/>
				<xs:element name="StudentAcademicRecord" type="EXTENSION-StudentAcademicRecordExtension"/>
				<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="CourseOffering" type="CourseOffering"/>
				<xs:element name="Course" type="Course"/>
				<xs:element name="StudentAssessment" type="StudentAssessment"/>
				<xs:element name="School" type="School"/>
				<xs:element name="PostsecondaryInstitution" type="EXTENSION-PostsecondaryInstitution"/>
			</xs:choice>
		</xs:complexType>
	</xs:element>
</xs:schema>

In this example, we've walked through XML restrictions, XML extensions, how to add new complex types to an existing XML core schema, and how to build an interchange based on the extended core schema – every conformant method of customization available in the Ed-Fi Extensions Framework.