# 6 Data Model

## 6.1 Introduction

This section presents the XML structure for SIF Data Model common elements and objects in a tabular format for readers less versed in parsing formal XML schema definitions, along with conventions that typically apply in the data model for easy reference.

### 6.1.1 Format

The Char(acteristics) column for all of the tables in this section use the following codes:

Code | Characteristic
M | Mandatory element or attribute
O | Optional element or attribute
C | Conditional element or attribute
MR | Mandatory and repeatable element
OR | Optional and repeatable element
CR | Conditional and repeatable element

Mandatory elements MUST be present in Add events, and in non-empty and non-error responses to requests for entire SIF objects (e.g., no `SIF_Query/SIF_QueryObject/SIF_Element` elements supplied in the request). Mandatory attributes MUST always be present if their corresponding element is present.

SIF Agents and Zone Integration Servers MUST supply data according to the types specified in the Type columns and their corresponding equivalents in the most recent schema files associated with this specification. If there is a discrepancy between object and element definitions in this specification and the corresponding schema files, the definition in the schema files takes precedence; every effort will be made to note discrepancies in the errata for this document as they are identified.

### 6.1.2 Conventions

#### 6.1.2.1 Object Attributes/Primary Keys

While XML attributes are primarily used in SIF to provide additional processing information regarding the associated element content, attributes at the root level of an object have special significance. These attributes serve as the primary key or identifier for the object; in many cases this is no more than a `RefId` GUID of `RefIdType`, though the primary key may consist solely of foreign key references to other SIF objects and include school years, dates, etc. These key attributes are immutable over the lifetime of an object and serve the purpose of uniquely identifying an object, especially in `Change` and `Delete` events. Some groups include non-primary key attributes in object attributes (e.g. mandatory foreign key references to other objects) and attributes that provide additional processing information regarding the objects. As SIF currently mandates that all object attributes be included in all messages, when a SIFA working group or task force places a non-primary key attribute in the object's attribute definitions (typically out of historical query conventions), they are indicating that this value must still be accessible to systems in `Change` and, more notably, `Delete` events. All object attributes must be supplied to identify the object in `Change` and `Delete` events.

#### 6.1.2.2 Object References

As stated elsewhere, SIF primarily uses GUIDs as object identifiers, primary keys, or `RefId`s. References to primary keys (foreign key references) follow certain conventions in SIF in most objects:

- An element or attribute of type `IdRefType` can be defined that consists of the referenced object name concatenated with `RefId`, e.g., `LearnerPersonalRefId` (a reference to the object identifier/primary key/`RefId` of a `LearnerPersonal` object);
- An element requiring a more descriptive name for the reference or one that refers to more than one object type is defined as `IdRefType`, has an element name of a group's choosing (or generically `SIF_RefId`) and enumerates all possible object types that can be referenced in the `SIF_RefObject` attribute; or
- A pair of attributes can be defined, one of type `IdRefType` containing the referenced object's `RefId`, the other enumerating all possible object types that can be referenced; generically these are named `SIF_RefId` and `SIF_RefObject`, respectively; naming conventions that programmatically allow identification of the pair beyond the generic names will be documented when the need arises.

#### 6.1.2.3 Lists/Repeatable Elements

To those accustomed with normalized relational databases, the SIF Data Model will appear to not be especially normalized, especially with regard to repeating groups of data not being separated into their own "tables," or in SIF's case, "objects" with primary/foreign keys to maintain the relationship. Bear in mind that SIF is not a format for storing data; it is a format for transmitting data asynchronously between disparate and distributed systems needing to share data for interoperability; the format this data takes in different systems can vary greatly, and the data related to any given "entity" may come from a variety of sources and systems. The goals of normalization—eliminating redundancy, organizing data efficiently, reducing inconsistencies, etc.—take on a different meaning in a message queuing system. Of primary importance is transmitting the data needed for interoperability in a minimum number of messages. The need to "join" together a great number of separate objects is kept to a minimum in SIF, as individual systems do not have access to all the data required and due to the asynchronous nature of SIF, any one of these systems may take a fair amount of time before returning data necessary for joins (`SIF_ExtendedQuery` has been developed to communicate a join to a single system that may have direct access to the all the data necessary to efficiently accomplish this task). It's one thing to make a separate request for a student's picture or enrollment information, another entirely to request every available phone number, address and e-mail address separately from the SIF Zone. As such, it is often the case in SIF that repeating data is stored directly in an object, rather than being separated out into a separate object.

Repeating data is very analogous to objects, though, within any given object. In SIF's Publish/Subscribe model, repeating elements in objects can be added to, changed in or deleted from an object, much like objects can be added to, changed in or deleted from a Zone. Within an existing object, all of these actions take place within a `Change` event, and repeating elements—if any exist initially—are first made available within an object in an `Add` event or can be obtained directly via requests. Repeatable elements are contained within a parent List element in most SIF objects whether or not they support events, e.g.:

<EmailList> <Email Type="School">contact@uk.sifinfo.org</Email> <Email Type="Personal">someone@anothersite.com</Email> </EmailList>
Example 6.1.2.3-1: EmailList

Two types of list are currently defined in SIF, ActionList and List; both consist of a list container element and a single repeatable child element. Each type of list serves different needs and has associated conventions for communication and processing in the SIF Publish/Subscribe Model. List or ActionList is specified in the Type column in tables in this section for each list; when an ActionList the key, possibly compound, is also indicated.

##### 6.1.2.3.1 ActionList

An ActionList has a key that uniquely identifies each child element within the list. This type of list is primarily used when it is desirable or necessary for systems to support or refer to a subset of the list, either due to functionally only being able to support a subset or because specifying a subset in `Change` events is more efficient than transmitting a whole list as in List. While one system may support the `School` and `Personal` e-mail address types above, another may additionally support `Alternate1` addresses. The second system is able to communicate the addition, change or deletion of an `Alternate1` address without the first system inadvertently interpreting that to mean a student or staff member's `School` and `Personal` addresses have been deleted.

Systems communicate the whole list as a cohesive unit consisting of the parent list container element and all child elements in an `Add` event; if the container is present with no child elements, the list is empty; the same is implied when an optional list is not present in an `Add` event. In a `Change` event, systems SHOULD only transmit those elements that have been added, changed or deleted. Deletion is not implied by the omission of a child element, but rather explicitly communicated with a `SIF_Action` attribute of `Delete` added to the deleted element, along with the element's key attribute(s)/element(s) at a minimum. An empty list in a `Change` event implies no changes have occurred in the list, as does the omission of the list. Systems storing ActionList data should set/replace/delete any existing values identified by primary keys in the `Change` event they support.

<EmailList> <Email Type="School">hjorgan@myschool.co.uk</Email> <Email Type="Personal" SIF_Action="Delete" /> </EmailList>
Example 6.1.2.3.1-1: Indicating a new value for the School e-mail address and deleting the Personal address

A system that supports an `Alternate1` e-mail makes no changes to its value for that address type.

##### 6.1.2.3.2 List

While a unique, primary key may still be identifiable in its child elements, a List is used primarily when:

- the list is a cohesive whole conceptually, where supporting or referring to a subset of the list is of little value;
- when the list consists only of keys, and no associated data;
- the list is informational/temporary state information and not typically persisted; or
- when no key exists to uniquely identify items in the list.

Lists are always transmitted as a cohesive unit consisting of the parent list container element and all child elements. If no child elements exist in the list, the list consists of the container element alone. Omission of an optional List in an `Add` event also implies no list items. In a `Change` event, omission of the List indicates no changes have been made; otherwise the parent container element and all child elements, if any, are included. Systems storing List data should replace all corresponding data in their systems when persisting the list; likewise when a change is made to one or more list items or when all items in the list are deleted, systems should send the whole list in a `Change` event.

<CountriesOfCitizenship> <CountryOfCitizenship>GBR</CountryOfCitizenship> <CountryOfCitizenship>DEU</CountryOfCitizenship> </CountriesOfCitizenship>
Example 6.1.2.3.2-1: Indicating an updated list of country citizenships

A system that supports `CountriesOfCitizenship` updates its local data to reflect United Kingdom and German citizenship.

#### 6.1.2.4 Supported Optional Elements Without Values

Some agents follow the convention of supplying an optional element as empty (e.g. `<BirthDate></BirthDate>` or `<BirthDate/>` to indicate that the application supports the element, but that it currently has no value available within a given object. To allow for this convention within SIF—as in this example an empty string does not satisfy the `xs:date` type definition of `BirthDate`—all optional elements in SIF are defined as `nillable` [SCHEMA]. To satisfy type constraints on an element while still supplying an empty or "nil" value, agents MUST tag the element with a `true` value for the `nil` attribute from namespace `http://www.w3.org/2001/XMLSchema-instance` [SCHEMA] (e.g. `<BirthDate xsi:nil="true"/>` where the prefix `xsi` has been mapped to the namespace `http://www.w3.org/2001/XMLSchema-instance`), unless an empty value is valid with regard to the element's type definition, in which case supplying the `nil` attribute value of `true` is optional. See SIF and XML Namespaces for more details on namespaces, and SIF and XML Schema for more details on SIF's use of XML Schema.

#### 6.1.2.5 Externally-Defined XML

Note that XML not defined within SIF does not necessarily support ad hoc omission of XML elements at will to conform with the conventions of the SIF Publish/Subscribe Model (where unchanged elements are typically omitted in Change events, and where non-key elements are often omitted in Delete events) or of the SIF Request/Response Model (where a subset of elements can be retrieved from objects with requests). If externally-defined XML occurs within a SIF data object, SIF conventions do not extend to that XML unless that XML is defined to accommodate SIF conventions; the XML, when transmitted, must only conform to any external definitions dictating its structure, if any. Applications should be prepared for the possibility of receiving whole externally-defined XML structures in Change events (regardless of how little or much of the external XML has changed) and possibly also Delete events, likewise in responses even when a subset of the XML structure's child elements may have explicitly been requested.

## 6.2 Common Elements

### 6.2.1 Address

This element contains address data, some of which is defined by the BS7666 International Address and Geographic Location Specification. Other elements are present for support of international addresses. Applications storing address information in the traditional line format must translate this information into the appropriate data elements below.
Figure 6.2.1-1: Address

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| Address |  | This element contains address data, some of which is defined by the BS7666 International Address and Geographic Location Specification. Other elements are present for support of international addresses. Applications storing address information in the traditional line format must translate this information into the appropriate data elements below. |
@ | Type | M | Code that defines the address type. | values: Current Mailing Transportation Previous Other
| StartDate | O | Date person began using this address. | xs:date
| EndDate | O | Date person stopped using this address. | xs:date
| PAON | M | An element defining the Primary Addressable Object Name (PAON), typically a building number or house name. |
| PAON/Description | C | Dwelling name, or at least a general description of the location in lieu of having any other information. This is required when no other PAON information is provided. | xs:normalizedString
| PAON/StartNumber | O | Start (single) dwelling number. | xs:normalizedString
| PAON/StartNumberSuffix | O | Start (single) dwelling number suffix. | xs:normalizedString
| PAON/EndNumber | O | End dwelling number. | xs:normalizedString
| PAON/EndNumberSuffix | O | End dwelling number suffix. | xs:normalizedString
| SAON | O | The Secondary Addressable Object Name (SAON), identifying a sub-division of the PAON, typically a flat number, room number or unit in a commerical property. |
| SAON/Description | C | Sub-dwelling name, or other descriptive information in lieu of having any other information. This is required when no other SAON data is provided. | xs:normalizedString
| SAON/StartNumber | O | Start (single) dwelling number. | xs:normalizedString
| SAON/StartNumberSuffix | O | Start (single) dwelling number suffix. | xs:normalizedString
| SAON/EndNumber | O | End dwelling number. | xs:normalizedString
| SAON/EndNumberSuffix | O | End dwelling number suffix. | xs:normalizedString
| Street | O | The name of the street. | xs:normalizedString
| Locality | C | The locality name refers to a neighbourhood, suburb, district, village, estate, settlement, or parish that may form part of a town, or stand in its own right within the context of an administrative area. Where an industrial estate contains streets it is defined as a locality in its own right. At least one of Locality, Town, or AdministrativeArea must be specified. | xs:normalizedString
| Town | C | The city name refers to a city or town that is not an adminstrative area, a suburb of an administrative area that does not form part of another town or a London district. At least one of Locality, Town, or AdministrativeArea must be specified. | xs:normalizedString
| AdministrativeArea | C | The administrative area is a geographic area that may be the highest level local administrative area, and may be a county or a unitary authority, an island or island group, or London. At least one of Locality, Town, or AdministrativeArea must be specified | xs:normalizedString
| County | O | Where applicable, the name of the county. | xs:normalizedString
| PostTown | O | Post Office usually assigns these based on Sorting Office. | xs:normalizedString
| PostCode | O | The code allocated by the Post Office (within GBR) to identify a group of postal delivery points. Valid Postcode formats are: A9 9AA A99 9AA AA9 9AA AA99 9AA A9A 9AA AA9A 9AA Plus BFPO 999 | xs:normalizedString
| Country | O | Country where physical address is located, if known. Usually this is going to be 'GBR' but could be outside the UK. | Country
| UniquePropertyReferenceNumber | O | The unique Property and Land Reference Number (UPRN) for this address. Numeric: 1 to 12 digits. | xs:integer
xs:minInclusive | 0
xs:maxInclusive | 999999999999
| UniqueStreetReferenceNumber | O | The unique Property Street Reference Number (USRN) for this address. Numeric: 1 to 8 digits. | xs:integer
xs:minInclusive | 0
xs:maxInclusive | 99999999
| LocationContext | O | The physical location of an address in terms of Census District, LA Electoral Ward, Parliamentary Constituency, and other defining location-centric characteristics. | LocationContext
| GridLocation | O | The physical property location coordinates. | GridLocation

Table 6.2.1-1: Address
<Address Type="Current"> <StartDate>2004-10-06</StartDate> <PAON> <Description>Merion House</Description> <StartNumber>42</StartNumber> <EndNumber>46</EndNumber> </PAON> <SAON> <StartNumber>2</StartNumber> <StartNumberSuffix>B</StartNumberSuffix> </SAON> <Street>Guildford Road</Street> <Locality>Knaphill</Locality> <Town>Woking</Town> <AdministrativeArea>Surrey</AdministrativeArea> <County>Surrey</County> <PostCode>GU22 7QF</PostCode> <Country>GBR</Country> <UniquePropertyReferenceNumber>38711462427</UniquePropertyReferenceNumber> <UniqueStreetReferenceNumber>1124805</UniqueStreetReferenceNumber> <LocationContext> <WardCode>43UMGB</WardCode> <WardName>Knaphill</WardName> </LocationContext> <GridLocation> <PropertyEasting>500431.3</PropertyEasting> <PropertyNorthing>158413.1</PropertyNorthing> <Latitude>41.850000</Latitude> <Longitude>-87.650000</Longitude> </GridLocation> </Address>
Example 6.2.1-1: Address

### 6.2.2 AddressList

A list of Address elements.
Figure 6.2.2-1: AddressList

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| AddressList |  | A list of Address elements. | ActionList (Address/@Type)
| Address | MR |  | Address
@ | SIF_Action | O | In a Change event, this flag can be used to indicate an element has been deleted from the parent list container. At a minimum the key for the list must also be present. | values: Delete

Table 6.2.2-1: AddressList
<AddressList> <Address Type="Current"> <StartDate>2004-10-06</StartDate> <PAON> <Description>Merion House</Description> <StartNumber>42</StartNumber> <EndNumber>46</EndNumber> </PAON> <SAON> <StartNumber>2</StartNumber> <StartNumberSuffix>B</StartNumberSuffix> </SAON> <Street>Guildford Road</Street> <Locality>Knaphill</Locality> <Town>Woking</Town> <AdministrativeArea>Surrey</AdministrativeArea> <County>Surrey</County> <PostCode>GU22 7QF</PostCode> <Country>GBR</Country> <UniquePropertyReferenceNumber>38711462427</UniquePropertyReferenceNumber> <UniqueStreetReferenceNumber>1124805</UniqueStreetReferenceNumber> <LocationContext> <WardCode>43UMGB</WardCode> <WardName>Knaphill</WardName> </LocationContext> <GridLocation> <PropertyEasting>500431.3</PropertyEasting> <PropertyNorthing>158413.1</PropertyNorthing> <Latitude>41.850000</Latitude> <Longitude>-87.650000</Longitude> </GridLocation> </Address> </AddressList>
Example 6.2.2-1: AddressList

### 6.2.3 ContactList

A list of contact persons associated with a school or LA.
Figure 6.2.3-1: ContactList

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| ContactList |  | A list of contact persons associated with a school or LA. |
| Contact | MR | Information for a single contact. |
@ | SIF_RefId | M | The ID (GUID) of the person listed as a contact. Note that this is any person listed as a contact through either a ContactPersonal, WorkforcePersonal, or even a LearnerPersonal record. | IdRefType
@ | SIF_RefObject | M | The object type being referred to. | values: WorkforcePersonal ContactPersonal LearnerPersonal
| Contact/PositionTitle | O | The contact person's position title within the school or LA. | xs:normalizedString
| Contact/Role | O | Role played by this contact in the school or LA. Any descriptive text is allowed here. | xs:normalizedString
| Contact/PublishInDirectory | O | Indicates whether or not this contact's information should be published in a directory of school or LA information. | values: Yes No

Table 6.2.3-1: ContactList
<ContactList> <Contact SIF_RefId="92E50229EC3911DBA762000E0CA41EF3" SIF_RefObject="ContactPersonal"> <PositionTitle>Resource Teacher</PositionTitle> <Role>Works with learning disabled pupils</Role> <PublishInDirectory>Yes</PublishInDirectory> </Contact> </ContactList>
Example 6.2.3-1: ContactList

### 6.2.4 Country

The 3-character alphabetic country code defined by ISO 3166-1. Given this code all other code and name information can be obtained directly from the standard.
Figure 6.2.4-1: Country

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| Country |  | The 3-character alphabetic country code defined by ISO 3166-1. Given this code all other code and name information can be obtained directly from the standard. | teachernetNationStatesAndCountriesType

Table 6.2.4-1: Country
<Country>GBR</Country>
Example 6.2.4-1: Country

### 6.2.5 Demographics

Demographic information about a learner, contact, workforce member, etc. This element occurs within objects such as LearnerPersonal, LearnerContact, etc.
Figure 6.2.5-1: Demographics

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| Demographics |  | Demographic information about a learner, contact, workforce member, etc. This element occurs within objects such as LearnerPersonal, LearnerContact, etc. |
| EthnicityList | O | A list of the person's ethnicities by proportion. | EthnicityList
| Gender | O | Person's gender. | values: M Male F Female U Unknown W Withheld
| BirthDate | C | The person's date of birth. Required for learners. Optional for others. | xs:date
| BirthDateVerification | O | Means by which the person's birth date was validated. | UKBirthDateVerificationLevelType
| PlaceOfBirth | O | The person's place of birth--like village, town, city etc. | xs:normalizedString
| CountyOfBirth | O | The county in which the person was born. | xs:normalizedString
| CountryOfBirth | O | The individual's country of birth. | Country
| CountriesOfCitizenship | O | A list of the countries in which this person has legal nationality. |
| CountriesOfCitizenship/CountryOfCitizenship | MR | The country of legal nationality (i.e. the country which issued the individual's passport). | Country
| CountriesOfResidency | O | A list of countries in which this person has residency status. |
| CountriesOfResidency/CountryOfResidency | MR | A person's country of residence. | Country
| CountryArrivalDate | O | Date the person first arrived in the UK. | xs:date
| EnglishProficiency | O | Assessment of a learner's progress in English as an Additional Language. |
| EnglishProficiency/EALSteps | O | Based on QCA Steps. (England) | values: S1 Step 1 S2 Step 2 1T Level 1 Threshold 1S Level 1 Secure
| EnglishProficiency/EALAcquisition | O | Based on a differing scale from QCA Steps. (Wales) | values: A New to English B Early Acquisition C Developing Competence D Compentent E Fluent 0 Not applicable
| LanguageList | O | A list of languages spoken by the person The person must be at least somewhat familiar with the language to have it listed here. | List
| LanguageList/Language | MR |  |
| LanguageList/Language/Code | M | This is the code that specifies the person's language. | teachernetLanguagesType
| LanguageList/Language/Fluent | O | Indicates that the person is fluent in this language. | values: Yes No
| LanguageList/Language/TypeList | M | A list of the person's language types. | List
| LanguageList/Language/TypeList/ Type | MR | A typification of the language. i.e. how is this language used? | values: C Correspondence Language F First Language M Multiple First Language H Home T Tuition S Second Language
| LanguageList/Language/Source | O | Source of data on use of the specified language. | UKSourceCodeType
| LanguageList/Language/Study | O | The level in which the learner is taught this language at school. | UKLanguageStudyType
| LanguageList/Language/StudyOther | O | Indicates whether the learner studies subjects in this language at school separate from studying the language itself. | values: Yes No
| MaritalStatus | O | The person's marital status. | UKMaritalStatusType
| NonUKSystemImmigrant | O | Indicates the learner has recently arrived from a non-English or other common UK language system. (Wales) | values: Yes No
| Refugee | O | Indicates the person's refugee/asylum seeker status as defined by the United Nations (Article 1 of the 1951 Refugee Convention). | values: Yes No
| Religion | O | Definition of a person's religious faith. |
| Religion/AffiliationCode | M | Person's religious faith. | UKReligiousAffiliationType
| Religion/EducationStatus | O | Indicates whether the person is actively attending religious education classes. | values: A Attends W Withdrawn
| Religion/CollectiveWorshipStatus | O | Indicates whether the person is participating in religious collective worship. | values: A Attends W Withdrawn
| Religion/Source | O | Source of person's religious affiliation code. | UKSourceCodeType
| Traveller | O | Identifying information for traveller/gypsy status. |
| Traveller/Code | M | Code to identify type of traveller/gypsy. | UKTravellerGypsyCodeType
| Traveller/Source | M | Source of individual's recorded traveller/gypsy code. | UKSourceCodeType

Table 6.2.5-1: Demographics
<Demographics> <EthnicityList> <Ethnicity> <Code>WIRI</Code> <Source>P</Source> </Ethnicity> </EthnicityList> <Gender>M</Gender> <BirthDate>1995-09-12</BirthDate> <BirthDateVerification>2</BirthDateVerification> <PlaceOfBirth>Leixlip</PlaceOfBirth> <CountyOfBirth>Kildare</CountyOfBirth> <CountryOfBirth>IRL</CountryOfBirth> <CountriesOfCitizenship> <CountryOfCitizenship>IRL</CountryOfCitizenship> </CountriesOfCitizenship> <CountriesOfResidency> <CountryOfResidency>GBR</CountryOfResidency> </CountriesOfResidency> <CountryArrivalDate>1992-06-28</CountryArrivalDate> <EnglishProficiency> <EALSteps>S2</EALSteps> </EnglishProficiency> <LanguageList> <Language> <Code>ENG</Code> <Fluent>Yes</Fluent> <TypeList> <Type>M</Type> <Type>H</Type> <Type>C</Type> </TypeList> <Source>P</Source> <Study>1</Study> <StudyOther>No</StudyOther> </Language> <Language> <Code>GAE</Code> <Fluent>Yes</Fluent> <TypeList> <Type>M</Type> </TypeList> <Source>P</Source> <Study>4</Study> <StudyOther>No</StudyOther> </Language> </LanguageList> <MaritalStatus>S</MaritalStatus> <NonUKSystemImmigrant>No</NonUKSystemImmigrant> <Refugee>No</Refugee> <Religion> <AffiliationCode>CE</AffiliationCode> <EducationStatus>W</EducationStatus> <CollectiveWorshipStatus>A</CollectiveWorshipStatus> <Source>P</Source> </Religion> <Traveller> <Code>NT</Code> <Source>P</Source> </Traveller> </Demographics>
Example 6.2.5-1: Demographics

### 6.2.6 ElectronicId

Common element used to specify entity identifiers that are read by electronic equipment. It is used in objects such as StudentPersonal, StaffPersonal, and LibraryPatronStatus.

Figure 6.2.6-1: ElectronicId

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| ElectronicId |  | Common element used to specify entity identifiers that are read by electronic equipment. It is used in objects such as StudentPersonal, StaffPersonal, and LibraryPatronStatus. | xs:normalizedString
@ | Type | M | Electronic ID type. | values: Barcode Magstripe PIN RFID

Table 6.2.6-1: ElectronicId
<ElectronicId Type="Barcode">206654</ElectronicId>
Example 6.2.6-1: ElectronicId

### 6.2.7 ElectronicIdList

A list of electronic identifiers associated with an entity.

Figure 6.2.7-1: ElectronicIdList

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| ElectronicIdList |  | A list of electronic identifiers associated with an entity. | List
| ElectronicId | MR |  | ElectronicId

Table 6.2.7-1: ElectronicIdList
<ElectronicIdList> <ElectronicId Type="Barcode">206654</ElectronicId> <ElectronicId Type="PIN">9823</ElectronicId> </ElectronicIdList>
Example 6.2.7-1: ElectronicIdList

### 6.2.8 Email

This element represents an e-mail address of one of a number of types.
Figure 6.2.8-1: Email

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| Email |  | This element represents an e-mail address of one of a number of types. | xs:normalizedString
@ | Type | M | This attribute specifies the type of e-mail address. | values: Business Personal School Alternate1 Alternate2 Alternate3 Alternate4

Table 6.2.8-1: Email
<Email Type="School">contact@uk.sifinfo.org</Email>
Example 6.2.8-1: Email

### 6.2.9 EmailList

A list of e-mail addresses associated with an individual.
Figure 6.2.9-1: EmailList

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| EmailList |  | A list of e-mail addresses associated with an individual. | ActionList (Email/@Type)
| Email | MR |  | Email
@ | SIF_Action | O | In a Change event, this flag can be used to indicate an element has been deleted from the parent list container. At a minimum the key for the list must also be present. | values: Delete

Table 6.2.9-1: EmailList
<EmailList> <Email Type="School">contact@uk.sifinfo.org</Email> <Email Type="Personal">someone@anothersite.com</Email> </EmailList>
Example 6.2.9-1: EmailList

### 6.2.10 EstablishmentId

The DfES assigned identifier for a school or other educational establishment. The list of all known Establishment ID's is extensive and available online.
Figure 6.2.10-1: EstablishmentId

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| EstablishmentId |  | The DfES assigned identifier for a school or other educational establishment. The list of all known Establishment ID's is extensive and available online. | xs:token

Table 6.2.10-1: EstablishmentId

### 6.2.11 EthnicityList

Figure 6.2.11-1: EthnicityList

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| EthnicityList |  |  |
| Ethnicity | MR |  |
| Ethnicity/Code | M | The general ethnic category which reflects the individual's recognition of his or her community or with which the individual most identifies. | teachernetEthnicityCodeType
| Ethnicity/Source | M | Source of inidividual's recorded ethnic code. | UKSourceCodeType

Table 6.2.11-1: EthnicityList

### 6.2.12 FirstName

A person's first name.

Figure 6.2.12-1: FirstName

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| FirstName |  | A person's first name. | xs:normalizedString

Table 6.2.12-1: FirstName
<FirstName>Mark</FirstName>
Example 6.2.12-1: FirstName

### 6.2.13 GridLocation

This element contains a map location. The GridLocation element is utilised within other objects and elements.
Figure 6.2.13-1: GridLocation

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| GridLocation |  | This element contains a map location. The GridLocation element is utilised within other objects and elements. |
| PropertyEasting | M | Easting coordinate format. | xs:decimal
| PropertyNorthing | M | Northing coordinate for mapping an address. Required when PropertyEasting is also specified. This is best represented in a 7.1 format. | xs:decimal
| Latitude | O | Geographical coordinate. | xs:decimal
| Longitude | C | Geographical coordinate. Required when Latitude is also specified. | xs:decimal

Table 6.2.13-1: GridLocation
<GridLocation> <PropertyEasting>500431.3</PropertyEasting> <PropertyNorthing>158413.1</PropertyNorthing> <Latitude>41.850000</Latitude> <Longitude>-87.650000</Longitude> </GridLocation>
Example 6.2.13-1: GridLocation

### 6.2.14 LAId

The 3-digit number assigned to the LA by the DfES.
Figure 6.2.14-1: LAId

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| LAId |  | The 3-digit number assigned to the LA by the DfES. | teachernetLAIdType

Table 6.2.14-1: LAId
<LAId>936</LAId>
Example 6.2.14-1: LAId

### 6.2.15 LAName

The official name of the LA.
Figure 6.2.15-1: LAName

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| LAName |  | The official name of the LA. | teachernetLANameType

Table 6.2.15-1: LAName
<LAName>SURREY</LAName>
Example 6.2.15-1: LAName

### 6.2.16 LastName

A person's last name.

Figure 6.2.16-1: LastName

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| LastName |  | A person's last name. | xs:normalizedString

Table 6.2.16-1: LastName
<LastName>Wesson</LastName>
Example 6.2.16-1: LastName

### 6.2.17 LocalId

This is a common element used to define the locally assigned identifier associated with an entity. It is used in StudentPersonal, StaffPersonal, SchoolInfo, and other objects.

Figure 6.2.17-1: LocalId

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| LocalId |  | This is a common element used to define the locally assigned identifier associated with an entity. It is used in StudentPersonal, StaffPersonal, SchoolInfo, and other objects. | xs:normalizedString

Table 6.2.17-1: LocalId
<LocalId>123321A</LocalId>
Example 6.2.17-1: LocalId

### 6.2.18 LocationContext

The physical location of an address in terms of Census District, LA Electoral Ward, Parliamentary Constituency, and other defining location-centric characteristics.
Figure 6.2.18-1: LocationContext

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| LocationContext |  | The physical location of an address in terms of Census District, LA Electoral Ward, Parliamentary Constituency, and other defining location-centric characteristics. |
| CensusDistrict | O | National Population Census Enumeration District. | xs:normalizedString
| WardCode | M | ONS Ward Code | ONSWardCodeType
| WardName | M | ONS Ward Name | ONSWardNameType
| ConstituencyCode | O | ONS Parliamentary Constituency Code | ONSParliamentaryConstituencyCodeType
| ConstituencyName | O | ONS Parliamentary Constituency Name | ONSParliamentaryConstituencyNameType
| Parish | O | ONS Parish Council Name | ONSParishCouncilNameType
| ChurchOfEnglandDiocese | O | Church of England Diocese Code | teachernetChurchOfEnglandDioceseType
| ChurchOfEnglandParish | O | Church of England Parish Code | xs:normalizedString
| RomanCatholicDiocese | O | Roman Catholic Diocese Code | teachernetRomanCatholicDioceseType
| RomanCatholicParish | O | Roman Catholic Parish | xs:normalizedString
| LSCouncilCode | O | Learning and Skills Council area code | teachernetLearningAndSkillsCouncilAreaCodeType
| CatchmentArea | O | School catchment area description | xs:normalizedString

Table 6.2.18-1: LocationContext
<LocationContext> <CensusDistrict>43</CensusDistrict> <WardCode>43UMGB</WardCode> <WardName>Knaphill</WardName> <ConstituencyCode>516</ConstituencyCode> <ConstituencyName>Woking</ConstituencyName> <LSCouncilCode>SUR</LSCouncilCode> <CatchmentArea>Woking Knaphill</CatchmentArea> </LocationContext>
Example 6.2.18-1: LocationContext

### 6.2.19 MiddleName

A person's middle name or initial.

Figure 6.2.19-1: MiddleName

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| MiddleName |  | A person's middle name or initial. | xs:normalizedString

Table 6.2.19-1: MiddleName
<MiddleName>Bartholomew</MiddleName>
Example 6.2.19-1: MiddleName

### 6.2.20 Name

The Name element defines name information for a person and occurs within the PersonalInformation element.
Figure 6.2.20-1: Name

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| Name |  | The Name element defines name information for a person and occurs within the PersonalInformation element. |
@ | Type | M | Code that specifies what type of name this is. | values: B Birth name C Current Legal name A Alias / Alternative R Name of Record F Former Name M Married Name P Professional Name
| Title | O | A title or prefix associated with the name. If any of: Mr, Mrs, Ms, Miss, Rev, Fr, Dr, Prof, Hon, Sir, Lord, Lady - these must be as shown, otherwise free text. Note that title is not applicable to learners. | xs:normalizedString
| FamilyName | C | Full legal family name. That part of the person's name which is used to describe family, clan, tribal group, or marital association. Note that this element is always required. However, when associated with a contact it may not be possible to know the family name in which case you should add the available information to the FullName element. | xs:normalizedString
| GivenName | C | Full given name (forename) of the person. Note that this element is always required. However, when associated with a contact it may not be possible to know the given name in which case you should add the available information to the FullName element. | xs:normalizedString
| MiddleNames | O | All other given or middle names, each separated with a single space character. | xs:normalizedString
| FamilyNameFirst | O | An indicator used to identify the naming conventions used by some predominantly non-European, ethnic or language groups and related to the display nature of a name. | values: Yes No
| PreferredFamilyName | O | The family name preferred most by the person (as written). | xs:normalizedString
| PreferredFamilyNameFirst | O | An indicator used to identify the naming conventions used by some predominantly non-European, ethnic or language groups and related to the display nature of a name. | values: Yes No
| PreferredGivenName | O | The given name preferred most by the person (as written). | xs:normalizedString
| Suffix | O | Textual suffix like PHD, JP, BSc. | xs:normalizedString
| FullName | C | A free text field for the complete name for display purposes. If this is associated with a ContactPersonal record and the FamilyName and GivenName are not both specified, then this becomes mandatory. | xs:normalizedString

Table 6.2.20-1: Name
<Name Type="R"> <Title /> <FamilyName>Henriksen</FamilyName> <GivenName>Bjorn</GivenName> <MiddleNames>Pieter Johan</MiddleNames> <FamilyNameFirst>No</FamilyNameFirst> <PreferredFamilyName>Henriksen</PreferredFamilyName> <PreferredFamilyNameFirst>No</PreferredFamilyNameFirst> <PreferredGivenName>Johan</PreferredGivenName> <Suffix /> </Name>
Example 6.2.20-1: Name

### 6.2.21 NCYearGroup

Code representing a National Curriculum Year Group.
Figure 6.2.21-1: NCYearGroup

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| NCYearGroup |  | Code representing a National Curriculum Year Group. | UKNCYearGroupType

Table 6.2.21-1: NCYearGroup
<NCYearGroup>7</NCYearGroup>
Example 6.2.21-1: NCYearGroup

### 6.2.22 NCYearGroupList

This is a common element used to specify a collection of supported National Curriculum Year Groups. It is used in SchoolInfo and assessment-related objects.
Figure 6.2.22-1: NCYearGroupList

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| NCYearGroupList |  | This is a common element used to specify a collection of supported National Curriculum Year Groups. It is used in SchoolInfo and assessment-related objects. | List
| NCYearGroup | MR | Code representing a National Curriculum year group. | NCYearGroup

Table 6.2.22-1: NCYearGroupList
<NCYearGroupList> <NCYearGroup>N1</NCYearGroup> <NCYearGroup>N2</NCYearGroup> <NCYearGroup>R</NCYearGroup> <NCYearGroup>1</NCYearGroup> <NCYearGroup>2</NCYearGroup> <NCYearGroup>3</NCYearGroup> <NCYearGroup>4</NCYearGroup> <NCYearGroup>5</NCYearGroup> <NCYearGroup>6</NCYearGroup> <NCYearGroup>7</NCYearGroup> <NCYearGroup>8</NCYearGroup> <NCYearGroup>9</NCYearGroup> <NCYearGroup>10</NCYearGroup> <NCYearGroup>11</NCYearGroup> <NCYearGroup>12</NCYearGroup> <NCYearGroup>13</NCYearGroup> <NCYearGroup>14</NCYearGroup> </NCYearGroupList>
Example 6.2.22-1: NCYearGroupList

### 6.2.23 PersonalInformation

This element contains basic personal and demographic information related to a person. This element is part of all "personal" objects, including LearnerPersonal, WorkforcePersonal, and ContactPersonal.
Figure 6.2.23-1: PersonalInformation

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| PersonalInformation |  | This element contains basic personal and demographic information related to a person. This element is part of all "personal" objects, including LearnerPersonal, WorkforcePersonal, and ContactPersonal. |
| Name | M | Name information for this person. | Name
| OtherNames | O | A list of other names associated with this person. | List
| OtherNames/Name | MR | Another name associated with this person. | Name
| Demographics | O | This element contains demographic data. | Demographics
| Email | O | The person's preferred e-mail address. | Email
| OtherEmailList | O | The person's other e-mail address(es). | EmailList
| Address | O | The person's current physical address. | Address
| OtherAddressList | O | The person's other address(es). | AddressList
| PhoneNumber | O | The person's preferred phone number. | PhoneNumber
| OtherPhoneNumberList | O | The person's other phone number(s). | PhoneNumberList
| ElectronicIdList | O | Electronic identifier(s) associated with this person. | ElectronicIdList
| OtherIdList | O | A list of all "other" IDs associated with this person. | List
| OtherIdList/OtherId | MR | An "other" identifier associated with this person. | xs:normalizedString
@ | Type | M | Text that describes the type of this other ID. | xs:normalizedString

Table 6.2.23-1: PersonalInformation
<PersonalInformation> <Name Type="C"> <FamilyName>Johnson</FamilyName> <GivenName>Hanna</GivenName> <MiddleNames>Leigh</MiddleNames> <FamilyNameFirst>No</FamilyNameFirst> <PreferredFamilyName>Johnson</PreferredFamilyName> <PreferredFamilyNameFirst>No</PreferredFamilyNameFirst> <PreferredGivenName>Hanna</PreferredGivenName> </Name> <OtherNames> <Name Type="F"> <FamilyName>Minderfeld</FamilyName> <GivenName>Hanna</GivenName> <MiddleNames>Leigh</MiddleNames> </Name> </OtherNames> <Demographics> <EthnicityList> <Ethnicity> <Code>WENG</Code> <Source>P</Source> </Ethnicity> </EthnicityList> <Gender>F</Gender> <BirthDate>1995-09-12</BirthDate> <BirthDateVerification>2</BirthDateVerification> <PlaceOfBirth>Reading</PlaceOfBirth> <CountyOfBirth>Reading</CountyOfBirth> <CountryOfBirth>GBR</CountryOfBirth> <EnglishProficiency> <EALSteps>1S</EALSteps> </EnglishProficiency> <LanguageList> <Language> <Code>ENG</Code> <TypeList> <Type>F</Type> </TypeList> </Language> </LanguageList> <MaritalStatus>S</MaritalStatus> <Religion> <AffiliationCode>CE</AffiliationCode> <EducationStatus>W</EducationStatus> <CollectiveWorshipStatus>A</CollectiveWorshipStatus> <Source>P</Source> </Religion> <Traveller> <Code>NT</Code> <Source>P</Source> </Traveller> </Demographics> <Email Type="School">hljohnson@myschool.co.uk</Email> <OtherEmailList> <Email Type="Personal">hl37925@pmail.co.uk</Email> </OtherEmailList> <Address Type="Current"> <StartDate>2004-10-06</StartDate> <PAON> <Description>Merion House</Description> <StartNumber>42</StartNumber> <EndNumber>46</EndNumber> </PAON> <SAON> <StartNumber>2</StartNumber> <StartNumberSuffix>B</StartNumberSuffix> </SAON> <Street>Guildford Road</Street> <Locality>Knaphill</Locality> <Town>Woking</Town> <AdministrativeArea>Surrey</AdministrativeArea> <County>Surrey</County> <PostCode>GU22 7QF</PostCode> <Country>GBR</Country> <UniquePropertyReferenceNumber>38711462427</UniquePropertyReferenceNumber> <UniqueStreetReferenceNumber>1124805</UniqueStreetReferenceNumber> <LocationContext> <WardCode>43UMGB</WardCode> <WardName>Knaphill</WardName> </LocationContext> <GridLocation> <PropertyEasting>500431.3</PropertyEasting> <PropertyNorthing>158413.1</PropertyNorthing> <Latitude>41.850000</Latitude> <Longitude>-87.650000</Longitude> </GridLocation> </Address> <PhoneNumber Type="H"> <Number>05598765432</Number> <ListedStatus>Listed</ListedStatus> </PhoneNumber> <OtherPhoneNumberList> <PhoneNumber Type="M"> <Number>07777666555</Number> <ListedStatus>Unlisted</ListedStatus> </PhoneNumber> </OtherPhoneNumberList> <ElectronicIdList> <ElectronicId Type="Barcode">206654</ElectronicId> </ElectronicIdList> <OtherIdList> <OtherId Type="Locker">01298B</OtherId> </OtherIdList> </PersonalInformation>
Example 6.2.23-1: PersonalInformation

### 6.2.24 PhoneNumber

This element represents a phone number and occurs within objects such as LearnerPersonal, WorkforcePersonal, etc.
Figure 6.2.24-1: PhoneNumber

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| PhoneNumber |  | This element represents a phone number and occurs within objects such as LearnerPersonal, WorkforcePersonal, etc. |
@ | Type | M | Code that specifies the phone number type. | UKPhoneTypeType
| Number | M | Phone number. Validation: 0-9 and a leading '+' (for international calls). | xs:normalizedString
xs:pattern | [+]?[0-9]+
| Extension | O | Phone number extension. | xs:normalizedString
| ListedStatus | O | Indicates whether or not the phone number is available to the public. | values: Listed Unlisted Unknown

Table 6.2.24-1: PhoneNumber
<PhoneNumber Type="H"> <Number>05598765432</Number> <Extension>4105</Extension> <ListedStatus>Listed</ListedStatus> </PhoneNumber>
Example 6.2.24-1: PhoneNumber

### 6.2.25 PhoneNumberList

Lists phone numbers associated with an entity.
Figure 6.2.25-1: PhoneNumberList

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| PhoneNumberList |  | Lists phone numbers associated with an entity. | ActionList (PhoneNumber/@Type)
| PhoneNumber | MR |  | PhoneNumber
@ | SIF_Action | O | In a Change event, this flag can be used to indicate an element has been deleted from the parent list container. At a minimum the key for the list must also be present. | values: Delete

Table 6.2.25-1: PhoneNumberList
<PhoneNumberList> <PhoneNumber Type="H"> <Number>05598765432</Number> <ListedStatus>Unlisted</ListedStatus> </PhoneNumber> <PhoneNumber Type="M"> <Number>07777666555</Number> </PhoneNumber> </PhoneNumberList>
Example 6.2.25-1: PhoneNumberList

### 6.2.26 SchoolURL

URL for a school.

Figure 6.2.26-1: SchoolURL

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SchoolURL |  | URL for a school. | xs:anyURI

Table 6.2.26-1: SchoolURL
<SchoolURL>http://www.lincolnhs.edu</SchoolURL>
Example 6.2.26-1: SchoolURL

### 6.2.27 SchoolURN

The alternate DfES assigned identifier for a school or other educational establishment.
Figure 6.2.27-1: SchoolURN

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SchoolURN |  | The alternate DfES assigned identifier for a school or other educational establishment. | EstablishmentId

Table 6.2.27-1: SchoolURN
<SchoolURN>7883</SchoolURN>
Example 6.2.27-1: SchoolURN

### 6.2.28 SchoolYear

Common element used to designate the academic school year to which an object relates.

Figure 6.2.28-1: SchoolYear

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SchoolYear |  | School year for which this information is applicable, expressed as the four-digit year in which the school year ends (e.g., "2004" for the 2003-04 school year). | xs:gYear

Table 6.2.28-1: SchoolYear
<SchoolYear>2005</SchoolYear>
Example 6.2.28-1: SchoolYear

### 6.2.29 SIF_ExtendedElements

This element is supported at the end of all SIF objects. The element is used to extend existing SIF objects with locally-defined elements. Extended elements SHOULD NOT be used to duplicate data that can be obtained from other SIF objects.

Figure 6.2.29-1: SIF_ExtendedElements

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SIF_ExtendedElements |  | Allows an agent to include data not yet defined within a SIF data object as name/value pairs. | ActionList (SIF_ExtendedElement/@Name)
| SIF_ExtendedElement | OR | A name/value pair, the name being contained in the Name attribute, the value being the element content. | ExtendedContentType
@ | Name | M | The name of the extended element. As it is possible that names for extended elements may collide from agent to agent, it is recommended that the names of extended elements be configurable in an agent, or that agents use URIs for the names of extended elements. | xs:normalizedString
@ | xsi:type | O | Allows type of element to be explicitly communicated. |
@ | SIF_Action | O | In a `Change` event, this flag can be used to indicate an element has been deleted from the parent list container. At a minimum the key for the list must also be present. | values: Delete

Table 6.2.29-1: SIF_ExtendedElements
<SIF_ExtendedElements> <SIF_ExtendedElement Name="ApplicationSubmissionStatus">4</SIF_ExtendedElement> <SIF_ExtendedElement Name="DynamicXml"> <Parent xmlns="http://myapplication.com"> <Child n="1">one</Child> <Child n="2" /> <Child n="3">three</Child> </Parent> </SIF_ExtendedElement> <SIF_ExtendedElement Name="Note"> <xhtml:strong xmlns:xhtml="http://www.w3.org/1999/xhtml">Double</xhtml:strong>-check submission status. </SIF_ExtendedElement> </SIF_ExtendedElements>
Example 6.2.29-1: SIF_ExtendedElements

### 6.2.30 SubjectAreaList

A list of subject areas.
Figure 6.2.30-1: SubjectAreaList

| Element/@Attribute | Char | Description | Type
--- | --- | --- | --- | ---
| SubjectAreaList |  | A list of subject areas. | List
| SubjectArea | MR | Subject matter. | UKGeneralSubjectType

Table 6.2.30-1: SubjectAreaList
<SubjectAreaList> <SubjectArea>MAT</SubjectArea> <SubjectArea>LIF</SubjectArea> <SubjectArea>ENV</SubjectArea> <SubjectArea>OMA</SubjectArea> <SubjectArea>PSH</SubjectArea> </SubjectAreaList>
Example 6.2.30-1: SubjectAreaList