This version of the Ed-Fi Data Standard is no longer supported. See the Ed-Fi Technology Version Index for a link to the latest version.

 

XML Schema - Extended Reference Types

Extended reference types provide the mechanism for denoting associations in Ed-Fi XML interchange data. The reference may be to an entity in the same interchange file, an entity in a separate interchange file, or an entity presumed to exist in the system receiving the bulk data. For example, assessment results generally need to reference student records (which are often already in the data store) and assessment metadata (which may be in a separate interchange file traveling with the results, or in the case of statewide tests, may already be in the data store). 

Extended reference types define associations in one of three ways:

  • Using an XML IDREF to refer to an ID defined for an entity within the same interchange file.
  • Specifying attributes that represent the natural key for the entity (which may be either in the same interchange file or previously loaded).
  • Optionally, specifying attributes that provide enough information to look up the entity from those previously loaded, when appropriate.

Extended reference types are used when an entity or association must reference another, as follows:

  • When an entity has an association with another and that association has no attributes, then the entity uses an extended reference type to reference the other entity.
  • When an association has attributes, the association uses an extended reference type to reference the associated entity.

Each extended reference type extends the base ReferenceType complex type, as defined below:

<xs:complexType name="ReferenceType">
     . . .
	<xs:attribute name="id" type="xs:ID">
     . . .
	<xs:attribute name="ref" type="xs:IDREF">
     . . .
</xs:complexType>

For example, the extended reference type for a SessionReferenceType is:

<xs:complexType name="SessionReferenceType">
     . . .
	<xs:complexContent>
		<xs:extension base="ReferenceType">
			<xs:sequence>
				<xs:element name="SessionIdentity" type="SessionIdentityType" minOccurs="0">
                . . .
				<xs:element name="SessionLookup" type="SessionLookupType" minOccurs="0">
                . . .
			</xs:sequence>
		</xs:extension>
	</xs:complexContent>
</xs:complexType>

The SessionReferenceType allows the reference to be made in one of three ways:

  • Using an XML IDREF (if interchanged in the file)
  • Specifying the natural key information contained in the types SessionIdentityType, as follows:
<xs:complexType name="SessionIdentityType">
     . . .
     <xs:sequence>
         <xs:element name="SchoolReference" type="SchoolReferenceType">
         . . .
         <xs:element name="SchoolYear" type="SchoolYearType">
         . . .
         <xs:element name="Term" type="TermDescriptorReferenceType">
         . . .
     </xs:sequence>
</xs:complexType>
  • Specifying attributes in the types SessionLookupType to provide enough information to look up the entity from those previously loaded, as follows:
<xs:complexType name="SessionLookupType">
    . . .
	<xs:sequence>
		<xs:element name="SessionName" type="IdentificationCode" minOccurs="0">
        . . .
		<xs:element name="SchoolYear" type="SchoolYearType" minOccurs="0">
        . . .
		<xs:element name="Term" type="TermDescriptorReferenceType" minOccurs="0">
        . . .
		<xs:element name="SchoolReference" type="SchoolReferenceType" minOccurs="0">
        . . .
	</xs:sequence>
</xs:complexType>

Thus, when CourseOffering refers to its association with a Session, it defines a SessionReference of the type SessionReferenceType, as follows:

<xs:complexType name="CourseOffering">
    . . .
	<xs:complexContent>
		<xs:extension base="ComplexObjectType">
			<xs:sequence>
				. . .
				<xs:element name="SessionReference" type="SessionReferenceType"/>
				. . .
			</xs:sequence>
		</xs:extension>
	</xs:complexContent>
</xs:complexType>

In associations with attributes, extended reference types are similarly used to relate the associated entities. For example, the StudentParentAssociation has a StudentReference and a ParentReference, as shown below. The StudentReference is of type StudentReferenceType and the ParentReference is of type ParentReferenceType.

<xs:complexType name="StudentParentAssociation">
    . . .
	<xs:complexContent>
		<xs:extension base="ComplexObjectType">
			<xs:sequence>
				<xs:element name="StudentReference" type="StudentReferenceType">
                . . .
				<xs:element name="ParentReference" type="ParentReferenceType"/>
				. . .
			</xs:sequence>
		</xs:extension>
	</xs:complexContent>
</xs:complexType>

The StudentIdentityType and the StudentLookupType (used within the StudentReferenceType) provide several options for specifying the identity of a student, as is shown below. 

<xs:complexType name="StudentIdentityType">
    . . .
	<xs:sequence>
		<xs:element name="StudentUniqueId" type="UniqueId">
        . . .
	</xs:sequence>
</xs:complexType>

<xs:complexType name="StudentLookupType">
    . . .
	<xs:sequence>
		<xs:element name="StudentUniqueId" type="UniqueId" minOccurs="0">
        . . .
		<xs:element name="StudentIdentificationCode" type="StudentIdentificationCode" minOccurs="0">
        . . .
		<xs:element name="Name" type="Name" minOccurs="0">
        . . .
		<xs:element name="OtherName" type="OtherName" minOccurs="0">
        . . .
		<xs:element name="Sex" type="SexType" minOccurs="0">
        . . .
		<xs:element name="BirthData" type="BirthData" minOccurs="0">
        . . .
		<xs:element name="HispanicLatinoEthnicity" type="xs:boolean" minOccurs="0">
        . . .
		<xs:element name="Race" type="RaceType" minOccurs="0">
        . . .
		<xs:element name="EducationOrganizationReference" type="EducationOrganizationReferenceType" minOccurs="0">
        . . .
	</xs:sequence>
</xs:complexType>

First, a student may be specified by a StudentUniqueId provided by the StudentIdentityType. Alternatively, additional attributes provided by the StudentLookup may be specified for lookup providing a combination of StudentUniqueId, StudentIdentificationCode, Name, OtherName, Sex, BirthData, HispanicLatinoEthnicity, Race, and EducationOrganizationReference.

Reference Types in v3.0

The following is a complete list of reference types in Ed-Fi Data Standard v3.0:

  • Academic Week Reference Type
  • Account Reference Type
  • Accountability Rating Reference Type
  • Actual Reference Type
  • Assessment Item Reference Type
  • Assessment Reference Type
  • Bell Schedule Reference Type
  • Budget Reference Type
  • Calendar Reference Type
  • Calendar Date Reference Type
  • Class Period Reference Type
  • Cohort Reference Type
  • Community Organization Reference Type
  • Community Provider Reference Type
  • Community Provider License Reference Type
  • Competency Objective Reference Type
  • Contracted Staff Reference Type
  • Course Reference Type
  • Course Offering Reference Type
  • Course Transcript Reference Type
  • Credential Reference Type
  • Discipline Action Reference Type
  • Discipline Incident Reference Type
  • Education Content Reference Type
  • Education Organization Intervention Prescription Association Reference Type
  • Education Organization Network Reference Type
  • Education Organization Network Association Reference Type
  • Education Organization Peer Association Reference Type
  • Education Organization Reference Type
  • Education Service Center Reference Type
  • Feeder School Association Reference Type
  • Gradebook Entry Reference Type
  • Grade Reference Type
  • Grading Period Reference Type
  • Graduation Plan Reference Type
  • Intervention Prescription Reference Type
  • Intervention Reference Type 
  • Intervention Study Reference Type
  • Learning Objective Reference Type
  • Learning Standard Reference Type
  • Local Education Agency Reference Type
  • Location Reference Type
  • Objective Assessment Reference Type
  • Open Staff Position Reference Type
  • Parent Reference Type
  • Payroll Reference Type
  • Post Secondary Event Reference Type
  • Program Reference Type
  • Report Card Reference Type
  • Restraint Event Reference Type
  • School Reference Type
  • Section Reference Type
  • Section Attendance Taken Event Reference Type
  • Session Reference Type
  • Staff Absence Event Reference Type
  • Staff Cohort Association Reference Type
  • Staff Education Organization Assignment Association Reference Type
  • Staff Education Organization Contact Association Reference Type
  • Staff Education Organization Employment Association Reference Type
  • Staff Reference Type
  • Staff Leave Reference Type
  • Staff Program Association Reference Type
  • Staff School Association Reference Type
  • Staff Section Association Reference Type
  • State Education Agency Reference Type
  • Student Academic Record Reference Type
  • Student Assessment Reference Type
  • Student Cohort Association Reference Type
  • Student Competency Objective Reference Type
  • Student CTE Program Association Reference Type
  • Student Discipline Incident Association Reference Type
  • Student Education Organization Association Reference Type
  • Student Gradebook Entry Reference Type
  • Student Intervention Association Reference Type
  • Student Intervention Attendance Event Reference Type
  • Student Learning Objective Reference Type
  • Student Migrant Education Program Association Reference Type
  • Student Parent Association Reference Type
  • Student Program Association Reference Type
  • Student Program Attendance Event Reference Type
  • Student Reference Type
  • Student School Association Reference Type
  • Student School Attendance Event Reference Type
  • Student Section Association Reference Type
  • Student Section Attendance Event Reference Type
  • Student Special Education Program Association Reference Type
  • Student Title I Part A Program Association Reference Type