...
- Analyze the specific data requirements for the data interchange.
- Analyze the specific interchange transactions that are required.
- Map the data requirements to the Ed-Fi Unifying Data Model.
- Identify the Ed-Fi domain types and association types required for the interchange.
- If required, create a file of types extending the Ed-Fi Core, adding attributes to Core domain and association types, creating new domain and association types, and creating new simple and complex types as required for new attributes.
- Make sure that extended reference types exist for association references that will require the receiving system to lookup specific instances of education data instances. Furthermore, ensure that the receiving system is capable of performing the required lookups with the identifying data that will be provided.
- Create the interchange schema file(s) to match the various interchange transactions, referencing the Core or extended types required for the interchange.
...
For example, consider the interchange for students based on the Ed-Fi Core. The interchange for Student is composed from the complex type for the Student domain entity class, as shown below.
(Image to come)
InterchangeStudent
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” targetNamespace=”http://ed-fi.org/0200” elementFormDefault=”qualified” attributeFormDefault=”unqualified”> <xs:include schemaLocation=”Ed-Fi-Core.xsd”/> <xs:complexType> <xs:choice maxOccurs=”unbounded”> <xs:element name=”Student” type=”Student”/> </xs:choice> </xs:complexType> </xs:element> </xs:schema> |
...
For example, consider a data interchange to load parent information and the familial relationship between the student and the parent. The interchange schema requires the Parent and StudentParentAssociation entities, as shown below.
(Image to come)
InterchangeParent
...
Code Block | ||
---|---|---|
| ||
<xs:complexType name=”StudentParentAssociation”> . . . <xs:complexContent> <xs:extension base=”ComplexObjectType”> <xs:sequence> <xs:element name=”StudentReference” type=”StudentReferenceType”/>”StudentReferenceType”> . . . <xs:element name=”ParentReference” type=”ParentReferenceType”/>”ParentReferenceType”> . . . <xs:element name=”Relation” type=”RelationType” minOccurs=”0”/>”0”> . . . <xs:element name=”PrimaryContactStatus” type=”xs:boolean” minOccurs=”0”/>”0”> . . . <xs:element name=”LivesWith” type=”xs:boolean” minOccurs=”0”/>”0”> . . . <xs:element name=”EmergencyContactStatus” type=”xs:boolean” minOccurs=”0”/>”0”> . . . <xs:element name=”ContactPriority” type=”xs:int” minOccurs=”0”/>”0”> . . . <xs:element name=”ContactRestrictions” type=”ContactRestrictions” minOccurs=”0”/>”0”> . . . </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> |