EMREX technical guide

This document is the full technical description of EMREX, and describes what has to be implemented locally to connect to the EMREX network. For a short version, see below…

EMREX technical guide

This is a technical description of EMREX, you can find here information on what has to be implemented locally to connect to the EMREX network.

Each country has two roles in the EMREX network:

1. Provide the student with application(s) that allow them to fetch their result from another HEI, either in the same country or from abroad. This will later on be referred to as the EMREX Client and includes the functionality of the EMREX Client (EMC)

2. Provide national client(s) with functionality to fetch assessments (results from courses, qualification) from the databases containing this information. This will later on be referred to as the EMREX Data Provider (EMP).

Because EMREX is a decentralized system, there is no major component that each country can reuse. The EMREX project does provide some modules, plugins and examples that can be used and built upon, however there are a couple of issues that cannot be solved in a general way:

1. Authenticating a student.

Each country has their own way of authenticating a student in their system. in Norway there are Feide and ID-Porten, Finland has Haka, Sweden has Swamid and so on. Therefore, the EMREX project cannot make a complete login module and distribute this, as each country solves this in different ways.

2. Fetching results for a student.

Each country/HEI has their own student information systems. Some countries have national data sources that can provide this information. Therefore, there is not one unified way of fetching results from these systems. The EMREX-system is dependent on connecting to an existing solution that can fetch results for a given HEI. The preferred solution is to build a REST service for each student information system involved, that provides ELMO formatted data.

3. Storing results for a student.

Each country/HEI has their own student information systems. So there is no standard way of storing the result data the EMREX fetches into the existing student system. When the EMREX client returns a set of results for a student, these must be stored in some local system, as EMREX does not store the data in itself.

There a 5 main parts that will be referred to through this document:

Common components of EMREX (no local work required):
Some local work required:

1. EMC:

EMREX Client. This is a plugin that EMREX uses to enable the communication with an EMP, and to ensure that the communication with the EMP is done in a standardized way


This is a central registry the EMREX uses to fetch the data that is needed to complete the result transfer. This is also the only centralized component in the EMREX system.

3. EMREX Client.

This is the web application that the student uses to initiate the transfer of their results from another country. (could be integrated into the HEI SIS, i.e. work needed by the HEI)

4. EMP

EMREX Data Provider. This is the point that the EMREX client contacts to fetch results.

Potentially much local work required.

5. Results Services

These are the services that are used by the EMP to fetch the results for the students. If you have an existing system that handles this, the EMP can simply connect to this. However, if none exist, there may be a major job to implement this.


A deep dive into the EMREX architecture you can find on the EMREX GitHub.

Code examples

The EMREX code is open source and can be downloaded from the EMREX GitHub account

the following repositories are provided:

ELMO-schemas: XSD for the ELMO XML fromat

emrex-client: An example client that can be used to fetch results.

EMP-mockup: An example EMP.

EMC: EMC stand for EMREX Client. It is a client library with helpful methods that the client can use to join the EMREX network. it can also be run as a standalone application, providing you use a REST service for contacting EMREG (you just need to provide the URL for EMREG). In addiation, the library contains a method for verifying digital signatures, which can also be called as a REST service.

The ELMO XML format

The ELMO XML format is the basis for the exchange of result information. Elmo is based on the CEN standard EN 15981-2011 EuroLMAI. EuroLMAI is a data model describing assessments, primarily Diplomas, Diploma Supplements and Transcripts of Records for higher educations. The schema describing the profile of the ELMO format used in EMREX is available the EMREX GitHub repository.