Unit 05 SDMX EDI

Introduction

SDMX-EDI is based on the EDI (Electronic Data Interchange) method for electronically communicating information between computer systems.

EDI originated in the 1970s and is characterised by a very terse text-based format for encoding the information. This terseness was originally needed due to the low communications bandwidths and processing power available. Over time, other formats such as XML became technically feasible as communications and computing improved, however EDI remains in use for the exchange of statistical data particularly in central banking.

SDMX-EDI is GESMES/TS

SDMX-EDI is also known as GESMES/TS, a data model and message format designed specifically for the standardised exchange of statistical data and metadata. GESMES/TS is a derivation of the GESMES EDI message, a UN/CEFACT a standard using the EDIFACT syntax.

SDMX-EDI data transmission use case

SDMX-EDI was intended for batch exchange of large amounts of time series data data between counterparties, its terseness allowing for extremely compact expression of large whole or partial data sets. Non time series data such as cross-sectional can be supported if represented as repackaged time series, but there is no direct support for cross-sectional data in this format.

Limitations

In addition to only supporting time series, SDMX-EDI is limited to the SDMX version 1.0 information model meaning that more sophisticated features like transmitting reference metadata as part of the data messages as introduced in SDMX 3.0 are not supported.

SDMX-EDI examples

The following is an example SDMX-EDI data message

UNA:+.? '
UNB+UNOC:3+Unknown+ANONYMOUS+200330:1255+IREF729132++SDMX-EDI'
UNH+MREF000001+GESMES:2:1:E6'
BGM+74'
NAD+Z02+WB'
NAD+MR+ANONYMOUS'
NAD+MS+Unknown'
DSI+GCI'
STS+3+7'
DTM+242:202003301255:203'
DTM+Z02:2008010120170101:711'
IDE+5+GCI'
GIS+AR3'
GIS+1:::-'
ARR++GHA:GCI:RANK:A:20082017:702:102+114+114+114+103+114+111+119+114+111'
ARR++GHA:GCI:VALUE:A:20082017:702:3.616139933+3.448062477+3.55568976+3.64915433+3.792629136+3.693773108+3.713529283+3.582722052+3.679439434+3.7227024636142'
UNT+15+MREF000001'
UNZ+1+IREF729132'

You’ll note that the equivalent message in SDMX-ML (XML) 2.1 structure specific is more readable, but also more verbose.

<message:StructureSpecificData xmlns:ss="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/data/structurespecific" xmlns:footer="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message/footer" xmlns:ns1="urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=WB:GCI(1.0):ObsLevelDim:TIME_PERIOD" xmlns:message="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message" xmlns:common="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/common" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sdmx.org/resources/sdmxml/schemas/v2_1/message https://registry.sdmx.org/schemas/v2_1/SDMXMessage.xsd urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=WB:GCI(1.0):ObsLevelDim:TIME_PERIOD https://demo11.metadatatechnology.com/FusionRegistry/ws/public/sdmxapi/rest/schema/dataflow/WB/GCI/1.0?format=sdmx-2.1">
	<message:Header>
		<message:ID>IREF428900</message:ID>
		<message:Test>false</message:Test>
		<message:Prepared>2022-09-29T09:14:50Z</message:Prepared>
		<message:Sender id="MT"/>
		<message:Receiver id="guest"/>
		<message:Structure structureID="WB_GCI_1_0" namespace="urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=WB:GCI(1.0):ObsLevelDim:TIME_PERIOD" dimensionAtObservation="TIME_PERIOD">
			<common:StructureUsage>
				<Ref agencyID="WB" id="GCI" version="1.0"/>
			</common:StructureUsage>
		</message:Structure>
		<message:DataSetAction>Information</message:DataSetAction>
		<message:Extracted>2022-09-29T09:14:50</message:Extracted>
		<message:ReportingBegin>2008-01-01T00:00:00</message:ReportingBegin>
		<message:ReportingEnd>2017-01-01T23:59:59</message:ReportingEnd>
	</message:Header>
	<message:DataSet ss:dataScope="DataStructure" xsi:type="ns1:DataSetType" ss:structureRef="WB_GCI_1_0">
		<Series REF_AREA="GHA" INDICATOR="GCI" SUB_INDICATOR="RANK" FREQ="A">
			<Obs TIME_PERIOD="2008" OBS_VALUE="102"/>
			<Obs TIME_PERIOD="2009" OBS_VALUE="114"/>
			<Obs TIME_PERIOD="2010" OBS_VALUE="114"/>
			<Obs TIME_PERIOD="2011" OBS_VALUE="114"/>
			<Obs TIME_PERIOD="2012" OBS_VALUE="103"/>
			<Obs TIME_PERIOD="2013" OBS_VALUE="114"/>
			<Obs TIME_PERIOD="2014" OBS_VALUE="111"/>
			<Obs TIME_PERIOD="2015" OBS_VALUE="119"/>
			<Obs TIME_PERIOD="2016" OBS_VALUE="114"/>
			<Obs TIME_PERIOD="2017" OBS_VALUE="111"/>
		</Series>
		<Series REF_AREA="GHA" INDICATOR="GCI" SUB_INDICATOR="VALUE" FREQ="A">
			<Obs TIME_PERIOD="2008" OBS_VALUE="3.616139933"/>
			<Obs TIME_PERIOD="2009" OBS_VALUE="3.448062477"/>
			<Obs TIME_PERIOD="2010" OBS_VALUE="3.55568976"/>
			<Obs TIME_PERIOD="2011" OBS_VALUE="3.64915433"/>
			<Obs TIME_PERIOD="2012" OBS_VALUE="3.792629136"/>
			<Obs TIME_PERIOD="2013" OBS_VALUE="3.693773108"/>
			<Obs TIME_PERIOD="2014" OBS_VALUE="3.713529283"/>
			<Obs TIME_PERIOD="2015" OBS_VALUE="3.582722052"/>
			<Obs TIME_PERIOD="2016" OBS_VALUE="3.679439434"/>
			<Obs TIME_PERIOD="2017" OBS_VALUE="3.72270246361418"/>
		</Series>
	</message:DataSet>
</message:StructureSpecificData>

Tips and points to note

SDMX-EDI is still used for some data exchanges so the ability to convert data messages to and from the format remains useful.

Information such as embedded reference meteadata will be lost when converting from later SDMX-ML, SDMX-JSON and SDMX-CSV formats to SDMX-EDI.

Recap

  • EDI has been in use since the 1970s and provides a very terse format for data transmission.
  • The SDMX-EDI format uses the GESMES/TS message based on the EDIFACT syntax.
  • SDMX-EDI is limited to the SDMX 1.0 information model allowing it to encode basic datasets, but does not support the more sophisticated features of the later XML, JSON and CSV formats.

In the next unit

In the next unit we’ll learn how to convert SDMX datasets in practice interactively using FMR’s web user interface

AI assistant

Need help finding something? I am an AI Assistant that’s here to help!

Welcome to SDMX AI assistant

What are you looking for?

SDMX AI assistant

By using this AI-powered service (“Service”), you acknowledge and agree to the following:

This Service uses generative AI to assist with statistical analysis and research . While the Service strives to deliver useful information, the output (“Output”) may contain inaccuracies, omissions, or biases. The Output is provided for informational purposes only and should not be considered professional advice. You remain responsible for how you interpret and use the Output.

The BIS makes no warranties regarding the accuracy or completeness of the Output and accepts no liability for any loss or damage resulting from its use.

Do not include or share personal, private, confidential or proprietary information when using the Service.

By using this technology, you agree to the Terms and Conditions.

How the assistant can help you

Understand SDMX standards

Ask and get clear explanations about SDMX standards.

Navigate the website

Find tools and documentation on website quickly.

Explore SDMX tools

Ask about API, software and libraries supporting SDMX.

Access documentation

Locate technical guides, specifications, and FAQs.

LLMs can make mistakes, please verify important information.

Why was the answer unhelpful?