...
The steps can be summarized as:
- Step 1: Author Ed-Fi Core Schema extensions
- Step 2: Author a custom interchange schema
- Step 3: Author database schema extensions
- Step 4: Author API metadata extensions
- Step 5: Author Interchange Order metadata extensions
- Step 6: Run code generation and verify changes
...
Table of Contents | ||
---|---|---|
|
Step 1.
...
Author Ed-Fi Core Schema Extensions
Create an extension to the Ed-Fi Core Schema, called EXTENSION-Ed-Fi-Core.xsd, and place it in the C:\Ed-Fi-ODS-Implementation\Extensions\Schemas folder.
...
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://ed-fi.org/0200" xmlns:ann="http://ed-fi.org/annotation" xmlns:altova="http://www.altova.com/xml-schema-extensions" targetNamespace="http://ed-fi.org/0200" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="..\..\..\Ed-Fi-ODS\Application\EdFi.Ods.CodeGen\App_Packages\Ed-Fi\Schema\Ed-Fi-Core.xsd"/> <xs:annotation><xs:documentation>===== Ed-Fi 2.0 Extensions =====</xs:documentation></xs:annotation> <xs:annotation><xs:documentation>===== Domain Entities =====</xs:documentation></xs:annotation> <xs:complexType name="EXTENSION-PostSecondaryOrganization"> <xs:annotation><xs:appinfo><ann:TypeGroup>Domain Entity</ann:TypeGroup></xs:appinfo></xs:annotation> <xs:sequence> <xs:element name="NameOfInstitution" type="NameOfInstitution"/> <xs:element name="InstitutionLevel" type="EXTENSION-InstitutionLevelType"/> <xs:element name="InstitutionControl" type="EXTENSION-InstitutionControlType"/> <xs:element name="AcceptanceIndicator" type="xs:boolean"/> </xs:sequence> </xs:complexType> <xs:complexType name="EXTENSION-StudentAcademicRecordExtension"> <xs:annotation><xs:appinfo><ann:TypeGroup>Domain Entity</ann:TypeGroup></xs:appinfo></xs:annotation> <xs:complexContent> <xs:extension base="EXTENSION-StudentAcademicRecordRestriction"> <xs:sequence> <xs:element name="ClassRanking" type="EXTENSION-ClassRankingExtension"/> <xs:element name="SubmissionCertification" type="EXTENSION-SubmissionCertificationType"/> <xs:element name="PostSecondaryOrganizationReference" type="EXTENSION-PostSecondaryOrganizationReferenceType"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="EXTENSION-StudentAcademicRecordRestriction"> <xs:annotation><xs:appinfo><ann:TypeGroup>Domain Entity</ann:TypeGroup></xs:appinfo></xs:annotation> <xs:complexContent> <xs:restriction base="StudentAcademicRecord"> <xs:sequence> <xs:element name="CumulativeEarnedCredits" type="Credits" minOccurs="0"/> <xs:element name="CumulativeAttemptedCredits" type="Credits" minOccurs="0"/> <xs:element name="CumulativeGradePointsEarned" type="GPA" minOccurs="0"/> <xs:element name="CumulativeGradePointAverage" type="GPA" minOccurs="0"/> <xs:element name="GradeValueQualifier" type="GradeValueQualifier" minOccurs="0"/> <xs:element name="AcademicHonor" type="AcademicHonor" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Recognition" type="Recognition" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="ProjectedGraduationDate" type="xs:date" minOccurs="0"/> <xs:element name="SessionEarnedCredits" type="Credits" minOccurs="0"/> <xs:element name="SessionAttemptedCredits" type="Credits" minOccurs="0"/> <xs:element name="SessionGradePointsEarned" type="GPA" minOccurs="0"/> <xs:element name="SessionGradePointAverage" type="GPA" minOccurs="0"/> <xs:element name="Diploma" type="Diploma" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="StudentReference" type="StudentReferenceType"/> <xs:element name="EducationOrganizationReference" type="EducationOrganizationReferenceType"/> <xs:element name="SchoolYear" type="SchoolYearType"/> <xs:element name="Term" type="TermDescriptorReferenceType"/> <xs:element name="ReportCardReference" type="ReportCardReferenceType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:restriction> </xs:complexContent> </xs:complexType> <xs:annotation><xs:documentation>===== Extended Reference =====</xs:documentation></xs:annotation> <xs:complexType name="EXTENSION-PostSecondaryOrganizationReferenceType"> <xs:annotation><xs:appinfo><ann:TypeGroup>Extended Reference</ann:TypeGroup></xs:appinfo></xs:annotation> <xs:complexContent> <xs:extension base="ReferenceType"> <xs:sequence> <xs:element name="PostSecondaryOrganizationIdentity" type="EXTENSION-PostSecondaryOrganizationIdentityType" minOccurs="0"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="EXTENSION-PostSecondaryOrganizationIdentityType"> <xs:annotation><xs:appinfo><ann:TypeGroup>Identity</ann:TypeGroup></xs:appinfo></xs:annotation> <xs:sequence> <xs:element name="NameOfInstitution" type="NameOfInstitution"/> </xs:sequence> </xs:complexType> <xs:annotation><xs:documentation>===== Common =====</xs:documentation></xs:annotation> <xs:complexType name="EXTENSION-ClassRankingExtension"> <xs:annotation><xs:appinfo><ann:TypeGroup>Common</ann:TypeGroup></xs:appinfo></xs:annotation> <xs:complexContent> <xs:extension base="ClassRanking"> <xs:sequence> <xs:element name="SpecialEducationGraduationStatus" type="EXTENSION-SpecialEducationGraduationStatusType"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:annotation><xs:documentation>===== Enumeration =====</xs:documentation></xs:annotation> <xs:simpleType name="EXTENSION-InstitutionControlType"> <xs:annotation><xs:appinfo><ann:TypeGroup>Enumeration</ann:TypeGroup></xs:appinfo></xs:annotation> <xs:restriction base="xs:token"> <xs:enumeration value="Public"/> <xs:enumeration value="PrivateNonProfit"/> <xs:enumeration value="PrivateForProfit"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="EXTENSION-InstitutionLevelType"> <xs:annotation><xs:appinfo><ann:TypeGroup>Enumeration</ann:TypeGroup></xs:appinfo></xs:annotation> <xs:restriction base="xs:token"> <xs:enumeration value="Four Year"/> <xs:enumeration value="Two To Four Year"/> <xs:enumeration value="Less Than Two Year"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="EXTENSION-SpecialEducationGraduationStatusType"> <xs:annotation><xs:appinfo><ann:TypeGroup>Enumeration</ann:TypeGroup></xs:appinfo></xs:annotation> <xs:restriction base="xs:token"> <xs:enumeration value="Completion of IEP and Reached Age 22"/> <xs:enumeration value="Completion of IEP and Access to Services, Employment, or Education"/> <xs:enumeration value="Completion of IEP and Demonstrated Self-Help Skills"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="EXTENSION-SubmissionCertificationType"> <xs:annotation><xs:appinfo><ann:TypeGroup>Enumeration</ann:TypeGroup></xs:appinfo></xs:annotation> <xs:restriction base="xs:token"> <xs:enumeration value="Official"/> <xs:enumeration value="Unofficial"/> </xs:restriction> </xs:simpleType> </xs:schema> |
...
Step 2
...
. Author a Custom Interchange Schema
Create an custom interchange file, called EXTENSION-Interchange-HSGeneratedStudentTranscript.xsd, and place it in the C:\Ed-Fi-ODS-Implementation\Extensions\Schemas folder. More information about how this file is created can be found in How To: Extend the Ed-Fi XML Schema (Part 5).
...
Code Block | ||||
---|---|---|---|---|
| ||||
<?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-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="PostSecondaryOrganization" type="EXTENSION-PostSecondaryOrganization"/> </xs:choice> </xs:complexType> </xs:element> </xs:schema> |
...
Step 3. Author Database Schema Extensions
Create an extension SQL script called 0001-Extensions.sql and place it in the C:\Ed-Fi-ODS-Implementation\Database\Structure\EdFi folder. This script defines the database schema for the extension.
Code Block | ||||
---|---|---|---|---|
| ||||
IF NOT EXISTS (SELECT 1 FROM sys.schemas WHERE name = 'extension') BEGIN EXEC('CREATE SCHEMA [extension] AUTHORIZATION dbo') END GO -- ******************************************************************************** -- InstitutionControlType -- ******************************************************************************** CREATE TABLE extension.InstitutionControlType( InstitutionControlTypeId int IDENTITY(1,1) NOT NULL, CodeValue nvarchar(50) NOT NULL, [Description] nvarchar(1024) NOT NULL, ShortDescription nvarchar(450) NOT NULL, Id uniqueidentifier NOT NULL, LastModifiedDate datetime NOT NULL, CreateDate datetime NOT NULL, CONSTRAINT PK_InstitutionControlType PRIMARY KEY CLUSTERED (InstitutionControlTypeId ASC) ) ALTER TABLE extension.InstitutionControlType ADD CONSTRAINT [InstitutionControlType_DF_Id] DEFAULT (newid()) FOR [Id] ALTER TABLE extension.InstitutionControlType ADD CONSTRAINT [InstitutionControlType_DF_LastModifiedDate] DEFAULT (getdate()) FOR [LastModifiedDate] ALTER TABLE extension.InstitutionControlType ADD CONSTRAINT [InstitutionControlType_CreateDate] DEFAULT (getdate()) FOR [CreateDate] GO -- ******************************************************************************** -- InstitutionLevelType -- ******************************************************************************** CREATE TABLE extension.InstitutionLevelType( InstitutionLevelTypeId int IDENTITY(1,1) NOT NULL, CodeValue nvarchar(50) NOT NULL, [Description] nvarchar(1024) NOT NULL, ShortDescription nvarchar(450) NOT NULL, Id uniqueidentifier NOT NULL, LastModifiedDate datetime NOT NULL, CreateDate datetime NOT NULL, CONSTRAINT PK_InstitutionLevelType PRIMARY KEY CLUSTERED (InstitutionLevelTypeId ASC) ) ALTER TABLE extension.InstitutionLevelType ADD CONSTRAINT [InstitutionLevelType_DF_Id] DEFAULT (newid()) FOR [Id] ALTER TABLE extension.InstitutionLevelType ADD CONSTRAINT [InstitutionLevelType_DF_LastModifiedDate] DEFAULT (getdate()) FOR [LastModifiedDate] ALTER TABLE extension.InstitutionLevelType ADD CONSTRAINT [InstitutionLevelType_CreateDate] DEFAULT (getdate()) FOR [CreateDate] GO -- ******************************************************************************** -- SpecialEducationGraduationStatusType -- ******************************************************************************** CREATE TABLE extension.SpecialEducationGraduationStatusType( SpecialEducationGraduationStatusTypeId int IDENTITY(1,1) NOT NULL, CodeValue nvarchar(50) NOT NULL, [Description] nvarchar(1024) NOT NULL, ShortDescription nvarchar(450) NOT NULL, Id uniqueidentifier NOT NULL, LastModifiedDate datetime NOT NULL, CreateDate datetime NOT NULL, CONSTRAINT PK_SpecialEducationGraduationStatusType PRIMARY KEY CLUSTERED (SpecialEducationGraduationStatusTypeId ASC) ) ALTER TABLE extension.SpecialEducationGraduationStatusType ADD CONSTRAINT [SpecialEducationGraduationStatusType_DF_Id] DEFAULT (newid()) FOR [Id] ALTER TABLE extension.SpecialEducationGraduationStatusType ADD CONSTRAINT [SpecialEducationGraduationStatusType_DF_LastModifiedDate] DEFAULT (getdate()) FOR [LastModifiedDate] ALTER TABLE extension.SpecialEducationGraduationStatusType ADD CONSTRAINT [SpecialEducationGraduationStatusType_CreateDate] DEFAULT (getdate()) FOR [CreateDate] GO -- ******************************************************************************** -- SubmissionCertificationType -- ******************************************************************************** CREATE TABLE extension.SubmissionCertificationType( SubmissionCertificationTypeId int IDENTITY(1,1) NOT NULL, CodeValue nvarchar(50) NOT NULL, [Description] nvarchar(1024) NOT NULL, ShortDescription nvarchar(450) NOT NULL, Id uniqueidentifier NOT NULL, LastModifiedDate datetime NOT NULL, CreateDate datetime NOT NULL, CONSTRAINT PK_SubmissionCertificationType PRIMARY KEY CLUSTERED (SubmissionCertificationTypeId ASC) ) ALTER TABLE extension.SubmissionCertificationType ADD CONSTRAINT [SubmissionCertificationType_DF_Id] DEFAULT (newid()) FOR [Id] ALTER TABLE extension.SubmissionCertificationType ADD CONSTRAINT [SubmissionCertificationType_DF_LastModifiedDate] DEFAULT (getdate()) FOR [LastModifiedDate] ALTER TABLE extension.SubmissionCertificationType ADD CONSTRAINT [SubmissionCertificationType_CreateDate] DEFAULT (getdate()) FOR [CreateDate] GO -- ******************************************************************************** -- PostSecondaryOrganization -- ******************************************************************************** CREATE TABLE extension.PostSecondaryOrganization( [NameOfInstitution] nvarchar(75) NOT NULL, [InstitutionLevelTypeId] int NOT NULL, [InstitutionControlTypeId] int NOT NULL, [AcceptanceIndicator] bit NOT NULL, [Id] uniqueidentifier NOT NULL, [LastModifiedDate] datetime NOT NULL, [CreateDate] datetime NOT NULL, CONSTRAINT PK_PostSecondaryOrganization PRIMARY KEY CLUSTERED (NameOfInstitution ASC) ) ALTER TABLE extension.PostSecondaryOrganization ADD CONSTRAINT [PostSecondaryOrganization_DF_Id] DEFAULT (newid()) FOR [Id] ALTER TABLE extension.PostSecondaryOrganization ADD CONSTRAINT [PostSecondaryOrganization_DF_LastModifiedDate] DEFAULT (getdate()) FOR [LastModifiedDate] ALTER TABLE extension.PostSecondaryOrganization ADD CONSTRAINT [PostSecondaryOrganization_CreateDate] DEFAULT (getdate()) FOR [CreateDate] GO ALTER TABLE [extension].[PostSecondaryOrganization] ADD CONSTRAINT [FK_PostSecondaryOrganization_InstitutionLevelTypeId] FOREIGN KEY([InstitutionLevelTypeId]) REFERENCES [extension].[InstitutionLevelType] ([InstitutionLevelTypeId]) GO ALTER TABLE [extension].[PostSecondaryOrganization] ADD CONSTRAINT [FK_PostSecondaryOrganization_InstitutionControlTypeId] FOREIGN KEY([InstitutionControlTypeId]) REFERENCES [extension].[InstitutionControlType] ([InstitutionControlTypeId]) GO -- ******************************************************************************** -- StudentAcademicRecordExtension -- ******************************************************************************** CREATE TABLE [extension].[StudentAcademicRecordExtension]( [StudentUSI] int NOT NULL, [EducationOrganizationId] int NOT NULL, [SchoolYear] smallint NOT NULL, [TermDescriptorId] int NOT NULL, [NameOfInstitution] nvarchar(75) NOT NULL, [SubmissionCertificationTypeId] int NOT NULL, CONSTRAINT [PK_StudentAcademicRecordExtension] PRIMARY KEY CLUSTERED ([StudentUSI], [EducationOrganizationId], [SchoolYear], [TermDescriptorId]) ) GO ALTER TABLE [extension].[StudentAcademicRecordExtension] ADD CONSTRAINT [FK_StudentAcademicRecordExtension_NameOfInstitution] FOREIGN KEY([NameOfInstitution]) REFERENCES [extension].[PostSecondaryOrganization] ([NameOfInstitution]) GO ALTER TABLE [extension].[StudentAcademicRecordExtension] ADD CONSTRAINT [FK_StudentAcademicRecordExtension_SubmissionCertificationTypeId] FOREIGN KEY([SubmissionCertificationTypeId]) REFERENCES [extension].[SubmissionCertificationType] ([SubmissionCertificationTypeId]) GO ALTER TABLE [extension].[StudentAcademicRecordExtension] ADD CONSTRAINT [FK_StudentAcademicRecordExtension_StudentAcademicRecord] FOREIGN KEY ([StudentUSI], [EducationOrganizationId], [SchoolYear], [TermDescriptorId]) REFERENCES [edfi].[StudentAcademicRecord]([StudentUSI], [EducationOrganizationId], [SchoolYear], [TermDescriptorId]) go -- ******************************************************************************** -- StudentAcademicRecordClassRankingExtension -- ******************************************************************************** CREATE TABLE [extension].[StudentAcademicRecordClassRankingExtension]( [StudentUSI] int NOT NULL, [SchoolYear] smallint NOT NULL, [TermDescriptorId] int NOT NULL, [EducationOrganizationId] int NOT NULL, [SpecialEducationGraduationStatusTypeId] int NOT NULL, [CreateDate] datetime CONSTRAINT [StudentAcademicRecordClassRanking_DF_CreateDate] DEFAULT (getdate()) NOT NULL, CONSTRAINT [PK_StudentAcademicRecordClassRankingExtension] PRIMARY KEY CLUSTERED ([StudentUSI], [SchoolYear], [TermDescriptorId], [EducationOrganizationId]) ) GO ALTER TABLE [extension].[StudentAcademicRecordClassRankingExtension] ADD CONSTRAINT [FK_StudentAcademicRecordClassRankingExtension_StudentAcademicRecordExtension] FOREIGN KEY ([StudentUSI], [EducationOrganizationId], [SchoolYear], [TermDescriptorId]) REFERENCES [extension].[StudentAcademicRecordExtension]([StudentUSI], [EducationOrganizationId], [SchoolYear], [TermDescriptorId]) go ALTER TABLE [extension].[StudentAcademicRecordClassRankingExtension] ADD CONSTRAINT [FK_StudentAcademicRecordClassRankingExtension_SpecialEducationGraduationStatusTypeId] FOREIGN KEY([SpecialEducationGraduationStatusTypeId]) REFERENCES [extension].[SpecialEducationGraduationStatusType] ([SpecialEducationGraduationStatusTypeId]) GO |
...
Step 4
...
. Author API Metadata Extensions
Create an extension API metadata file called DomainMetadata-Extension.xml and place it in the C:\Ed-Fi-ODS-Implementation\Extensions\Metadata folder. This file will define the new types and domain entities, and ensure the code generation process will process the entity.
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="utf-8" ?> <AggregateExtensions> <Aggregate root="InstitutionControlType"><Entity table="InstitutionControlType" schema="extension" /> </Aggregate> <Aggregate root="InstitutionLevelType"> <Entity table="InstitutionLevelType" schema="extension" /> </Aggregate> <Aggregate root="SpecialEducationGraduationStatusType"> <Entity table="SpecialEducationGraduationStatusType" schema="extension" /> </Aggregate> <Aggregate root="SubmissionCertificationType"> <Entity table="SubmissionCertificationType" schema="extension" /> </Aggregate> <Aggregate root="PostSecondaryOrganization"> <Entity table="PostSecondaryOrganization" schema="extension" /> </Aggregate> </AggregateExtensions> |
...
Step 5
...
. Author Interchange Order Metadata Extensions
Create an extension API metadata file called InterchangeOrderMetadata-Extension.xml and place it in the C:\Ed-Fi-ODS-Implementation\Extensions\Metadata folder. This file defines the position of the new custom interchange in the load order, ensuring that the interchange loads correctly.
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="utf-8"?> <!-- Order of the Interchange elements and the Element elements is important. This metadata will list all aggregate types that are part of the interchange. This extension metadata will replace the core metadata and contain all interchanges and elements for the implementation. --> <Interchanges> <Interchange name="Descriptors" order="1"> <Element name="GradeLevelDescriptor"/> <Element name="AcademicSubjectDescriptor"/> </Interchange> <Interchange name="Standards" order="2"> <Element name="LearningStandard"/> <Element name="LearningObjective"/> </Interchange> <Interchange name="EducationOrganization" order="3"> <Element name="StateEducationAgency"/> <Element name="EducationServiceCenter"/> <Element name="LocalEducationAgency"/> <Element name="School"/> <Element name="EducationOrganizationNetwork"/> <Element name="AccountabilityRating"/> <Element name="Location"/> <Element name="ClassPeriod"/> <Element name="Course"/> <Element name="Program"/> <Element name="FeederSchoolAssociation"/> <Element name="EducationOrganizationPeerAssociation"/> <Element name="EducationOrganizationNetworkAssociation"/> </Interchange> <Interchange name="EducationOrgCalendar" order="4"> <Element name="CalendarDate"/> <Element name="GradingPeriod"/> <Element name="AcademicWeek"/> <Element name="Session"/> </Interchange> <Interchange name="MasterSchedule" order="5"> <Element name="CourseOffering"/> </Interchange> <Interchange name="StaffAssociation" order="6"> <Element name="Staff"/> </Interchange> <Interchange name="Student" order="7"> <Element name="Student"/> </Interchange> <Interchange name="Parent" order="8"> <Element name="Parent"/> </Interchange> <Interchange name="AssessmentMetadata" order="9"> <Element name="AssessmentFamily"/> <Element name="Assessment"/> <Element name="AssessmentItem"/> <Element name="ObjectiveAssessment"/> </Interchange> <Interchange name="StudentCohort" order="10"> <Element name="Cohort"/> <Element name="StudentCohortAssociation"/> <Element name="StaffCohortAssociation"/> </Interchange> <Interchange name="StudentAssessment" order="11"> <Element name="StudentAssessment"/> </Interchange> <Interchange name="StudentIntervention" order="12"> <Element name="Intervention"/> <Element name="StudentInterventionAssociation"/> <Element name="EducationContent"/> <Element name="InterventionPrescription"/> <Element name="InterventionStudy"/> </Interchange> <Interchange name="StudentTranscript" order="13"> <Element name="StudentAcademicRecord"/> <Element name="CourseTranscript"/> </Interchange> <Interchange name="StudentProgram" order="14"> <Element name="StudentProgramAssociation"/> <Element name="RestraintEvent"/> <Element name="StudentSpecialEducationProgramAssociation"/> </Interchange> <Interchange name="StudentEnrollment" order="15"> <Element name="GraduationPlan"/> </Interchange> <Interchange name="StudentDiscipline" order="16"> <Element name="DisciplineIncident"/> <Element name="StudentDisciplineIncidentAssociation"/> <Element name="DisciplineAction"/> </Interchange> <Interchange name="PostSecondaryEvent" order="17"> <Element name="PostSecondaryEvent"/> </Interchange> <Interchange name="StudentAttendance" order="18"> </Interchange> <Interchange name="StudentGrade" order="19"> <Element name="Grade"/> <Element name="ReportCard"/> <Element name="CompetencyObjective"/> <Element name="LearningObjective"/> <Element name="StudentCompetencyObjective"/> </Interchange> <Interchange name="StudentGradebook" order="20"> <Element name="GradebookEntry"/> </Interchange> <Interchange name="Finance" order="21"> <Element name="Account"/> <Element name="Budget"/> <Element name="ContractedStaff"/> <Element name="Budget"/> <Element name="Actual"/> <Element name="Payroll"/> </Interchange> <Interchange name="HSGeneratedStudentTranscript" order="22"> <Element name="Student"/> <Element name="StudentSchoolAssociation"/> <Element name="StudentAcademicRecord"/> <Element name="CourseTranscript"/> <Element name="ReportCard"/> <Element name="Grade"/> <Element name="StudentSectionAssociation"/> <Element name="Section"/> <Element name="CourseOffering"/> <Element name="Course"/> <Element name="StudentAssessment"/> <Element name="School"/> <Element name="PostSecondaryOrganization"/> </Interchange> </Interchanges> |
...
Step 6
...
. Run Code Generation and Verify Changes
Re-run the code generation steps outlined in the Getting Started Guide , (i.e., from a PowerShell prompt run Initialize-PowershellForDevelopment.ps script, followed by the initdev
command). Then run the application and view the Ed-Fi ODS / API using Swagger. The following new API resource should be visible:
...