essnet on sdmx - european commission · essnet on sdmx . wp3 parser module analysis and design pag....

44
ESSnet on SDMX WP3 Parser Module Analysis and Design Pag. 1/21 ESSnet on SDMX WP3 Parser module Analysis and Design WP: 3 – SDMX Data Express WP Responsible: João Poças Date: 24/11/2010 File: 03.D-5 WP3_Parser_Module_Analysis_and_Design.doc Annex: 03.D-5 WP3_Parser_Module_Analysis_and_Design_AnnexI.doc

Upload: others

Post on 06-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 1/21

ESSnet on SDMX

WP3 Parser module Analysis and Design

WP: 3 – SDMX Data Express

WP Responsible: João Poças Date: 24/11/2010 File: 03.D-5 WP3_Parser_Module_Analysis_and_Design.doc Annex: 03.D-5 WP3_Parser_Module_Analysis_and_Design_AnnexI.doc

Page 2: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 2/21

Revision history

Version Date Description Author

draft 14/06/2010 Initial document João Poças

1.0 24/11/2010 Some changes (refined) and update João Poças

Page 3: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 3/21

TABLE OF CONTENTS

TABLE OF CONTENTS .................................................................................................................................... 3

LIST OF FIGURES ............................................................................................................................................. 4

1. INTRODUCTION ....................................................................................................................................... 5

1.1. PURPOSE ............................................................................................................................................... 5

1.2. SCOPE ................................................................................................................................................... 5

2. SDMX.LIB ................................................................................................................................................... 6

2.1. PARSER MODULE INTEGRATION ........................................................................................................... 7

2.2. FOLDERS AND CLASSES IN SDMX.LIB PROJECT .................................................................................. 8

3. SDMX 2.0 INFORMATION MODEL .................................................................................................... 12

3.1. READING A GENERIC DATA MESSAGE ................................................................................................ 12

3.2. CREATING A QUERY DATA MESSAGE ................................................................................................. 13

3.3. VALIDATING A DATA STRUCTURE DEFINITION (DSD) ...................................................................... 14

4. MESSAGEDATASET: THE CORE OF PARSER MODULE ............................................................ 15

4.1. CLASS OVERVIEW ............................................................................................................................... 15

4.2. A SAMPLE CASE .................................................................................................................................. 17

4.3. USING THE MESSAGEDATASET CLASS ............................................................................................... 19

Page 4: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 4/21

LIST OF FIGURES

Figure 2-1 – Context diagram for the SDMX Data Express ............................................................................. 7

Figure 2-2 – Context diagram for the SDMX-ML Parser ................................................................................. 8

Figure 2-3 – Aspect of SDMX.Lib project, in Visual Studio 2008 IDE ......................................................... 11

Figure 3-1 – Code example that allows to read a Generic data message, using the object model .................. 12

Figure 3-2 – Code example that shows how to create (and save to a file) a Query data message .................. 13

Figure 3-3 – Code example that shows the validation of a Data Structure DSD ............................................ 14

Figure 4-1 – MessageDataSet Classes (common to all data format) .............................................................. 16

Figure 4-2 – Excerpt of CPI data (Generic format message) .......................................................................... 17

Figure 4-3 – Representation, in a form of DataTable structure, of the CPI data ............................................. 18

Figure 4-4 – Creation of the MessageDataSet object and associated DataSet and DataTable ........................ 19

Figure 4-5 – List of methods and members of MessageDataSet class (using VS intellisense) ....................... 20

Figure 4-6 – Accessing DataTable and associated DataComponents ............................................................. 21

Figure 4-7 – Obtain component properties (using VS intellisense) ................................................................ 21

Page 5: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 5/21

1. INTRODUCTION

1.1. Purpose

The main goal behind the WP3 parser module is to create a kind of intermediate layer able to

support all the others modules and functionalities of Work Package 3 (SDMX Data Express1

). We

can consider that Parser module includes the representation of SDMX Information Model (IM),

read and write functions and also some data manipulation classes.

During the development of this module the inclusion of the IM implemented in .Net by Eurostat

(available in Mapping Assistant tool) was analysed. It was decided not to use this implementation

because it introduces some changes in the model that makes it not fully compliant with the standard

SDMX 2.0.

This document can be refined during the development of the other modules of in order to answer

specific demands of each module.

1.2. Scope

This document presents the software specifications of the “Parser module”, useful for all the

partners involved in the project but also to any programmer that would be interested in understand

this software library. This is a dynamic document that can be further updated in order to reflect the

actual state of the software and to answer specific demands of each module.

1 Previous name “SDMX Data Express” was “SDMX Data Explorer”

Page 6: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 6/21

2. SDMX.LIB

As previously said, in the Introduction, the parser module will provide the classes that will represent

the SDMX Information Model and also other common classes that will support other modules of

WP3.

These classes are implemented in the SDMX.Lib project, which is the class library that will be used

by SDMX Data Express (SDMX.DX) project and also SDMX Web Service project (SDMX.WS).

It is responsible for reading the DSD and SDMX data files, transforming it into a general object

(MessageDataSet object) that is useful for being used in other modules of the SDMX Data Express.

Page 7: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 7/21

2.1. Parser module integration

In the next diagram are represented the main components of the package, with user inputs and

outputs expected, to help to understand the conceptual idea of SDMX Data Express. This diagram

shows how the Parser module integrates and interacts with the other modules of the system.

Figure 2-1 – Context diagram for the SDMX Data Express

Page 8: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 8/21

In a similar manner, the functionalities (with inputs and outputs) of the parser are represented in the

next diagram.

Figure 2-2 – Context diagram for the SDMX-ML Parser

2.2. Folders and Classes in SDMX.Lib project

The SDMX.Lib project is organized (Visual Studio) according the following structure of folders:

\Model

\V20

• classes to represent the SDMX 2.0 Information Model

\Validation

• Validade.cs

this is the base class for validation (use IsValid method to start validation)

Page 9: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 9/21

• ValidateDataMessage.cs

validation of compact, XS or Generic

• ValidateDataQuery.cs

validation of SDMX Query files

• ValidateDataStructure.cs

validation of DSDs

\Data

• DataSet.cs

Class used for store data that comes from SDMX files (DSD and data files): defines the

MessageDataSet which will be populated with data from the SDMX Data Message;

• DataConcept.cs

This class stores information about the concepts that belong to the loaded DSD;

• DataComponent.cs

This class collects information about the components used in the DSD;

• DataCodelist.cs

Class responsible for storing data about the Codelists of the DSD.

Page 10: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 10/21

\IO

• Base.cs

Used for common IO operations;

• SchemaNamespace.cs

Used for set SDMX files namespace;

• WriteRead.cs

This class reads an XML File to a String and/or writes a String to an XML file.

\Conversion

• ConvertToCompact.cs

This class allows the conversion to SDMX Compact format;

• ConvertToCross.cs

This class allows the conversion to SDMX Cross-sectional format;

• ConvertToGeneric.cs

This class allows the conversion to SDMX Generic format;

\WriterCSV

• WriterCSV.cs

Define a WriterCSV class to create CSV file from DataTable item;

In the next figure we can watch how this folders and classes are organized in the Visual Studio

editor environment.

Page 11: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 11/21

Figure 2-3 – Aspect of SDMX.Lib project, in Visual Studio 2008 IDE

Page 12: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 12/21

3. SDMX 2.0 INFORMATION MODEL

As referred before, it was decided not to use the Eurostat .Net implementation of SDMX

Information Model because it was not fully compliant with the standard SDMX 2.0 (at least it

wasn’t during the analysis phase of this module).

The adopted solution was to use an open source tool - CodeXS2

- to create the IM basic structure.

Although this tool may not represent, in an ideal manner, the entire model, it should be able to

support the most used SDMX 2.0 standard documents format.

Handling SDMX data files will be easier and more reliable with this model implementation. See

some examples below.

3.1. Reading a Generic data message

The next code sample show how to use the object model (that represents the SDMX Information Model) to get some data from a Generic message file (CPI_DataSet1_generic.xml sample, available in the package).

Figure 3-1 – Code example that allows to read a Generic data message, using the object model

2 CodeXS tool can be found at http://www.bware.biz/DotNet/Development/CodeXS/Article/Article_web.htm

// Create a Generic data message type SDMXModel.GenericDataType SDMXdoc; string filePath = Test.GetFilePath("_testingFiles\\data\\CPI_DataSet1_generic.xml"); // Put the SDMX file into a string string xmlStr = SDMX.Lib.IO.WriteRead.StringFromFile(filePath); string xsdPath = Test.GetFilePath("_sdmxSchemas\\V20\\SDMXGenericData.xsd"); // Convert the string into Generic data type (Deserialization) SDMXdoc = SDMXModel.GenericDataType.FromXml(xmlStr, xsdPath); // Getting Header Id Response.Write("SDMXdoc.Header.ID=" + SDMXdoc.Header.ID.ToString()); ("SDMXdoc.Header.ID=" + SDMXdoc.Header.ID.ToString());

Page 13: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 13/21

3.2. Creating a Query data message

The next code sample show how to use the object model to create a sample Query message and save it as an XML file (QueryWrite.xml).

Figure 3-2 – Code example that shows how to create (and save to a file) a Query data message

// Create the Query message type SDMXModel.QueryMessageType queryMessage = new SDMXModel.QueryMessageType(); // Create an Header type SDMXModel.HeaderType header = new SDMXModel.HeaderType(); header.ID = "Test_DSD_1"; header.Test = true; // Add the header to the message queryMessage.Header = header; // Create a collection of DataWhere Type SDMXModel.DataWhereTypeCollection dwht = new SDMXModel.DataWhereTypeCollection(); // Create the DataWhere type SDMXModel.DataWhereType dwh1 = new SDMXModel.DataWhereType(); // Create the "And" operator SDMXModel.AndType and = new SDMXModel.AndType(); dwh1.ItemElementName = SDMXModel.ItemChoiceType.And; dwh1.Item = and; // Add the KeyFamily to the And operator and.KeyFamily.Add("ESTAT_CPI"); // Create and add the dimension (Frequency) with some value SDMXModel.DimensionType d1 = new SDMXModel.DimensionType(); d1.id = "FREQ"; d1.Value = "A"; and.Dimension.Add(d1); // Add DataWhere to the collection of DataWhere Type dwht.Add(dwh1); // Add the collection of DataWhere elements to the Query message queryMessage.Query.DataWhere = dwht; // Convert Query message to string string xmlStr = queryMessage.Xml.ToString(); string filePath = Test.GetFilePath("_testingFiles\\query\\QueryWrite.xml"); // Save the result to an XML file bool saveToDisc = SDMX.Lib.IO.WriteRead.StringToFile(filePath, xmlStr); if (saveToDisc)

Response.Write("Saved to disc, in " + filePath); else

Response.Write("NOT saved to disc, in " + filePath);

Page 14: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 14/21

3.3. Validating a Data Structure Definition (DSD)

The next code sample shows how to use the object model to read a Data Structure Definition and validate it (StructureSample.xml).

Figure 3-3 – Code example that shows the validation of a Data Structure DSD

string schemaVersionStr; string schemaPath; string xmlFilePath; string xmlStr = null; string DSDStr = null; // schemaVersionStr should be "V20" if SDMX Standard schemas should be used schemaVersionStr = "V20"; schemaPath = Server.MapPath("\\") + "_sdmxSchemas"; xmlFilePath = Test.GetFilePath("_testingFiles\\dsd\\StructureSample.xml"); xmlStr = SDMX.Lib.IO.WriteRead.StringFromFile(xmlFilePath); SDMX.Lib.Validation.Validate validXml = new Validate(); List<string> validationList = validXml.IsValid(xmlStr, DSDStr, schemaPath, schemaVersionStr, SDMXFileTypes.DataStructure); // Show report if it has errors in validation list if (validationList.Count == 0)

Response.Write(xmlFilePath + " is well-formed and valid (using '" + schemaVersionStr + "' Schemas version)."); else { Response.Write(xmlFilePath + " is NOT well-formed or valid (using '" + schemaVersionStr + "' Schemas version).");

Response.Write("<br><br>Validation report:"); Response.Write("<ul>"); foreach (string vError in validationList) { Response.Write("<li>"); Response.Write(vError.ToString()); Response.Write("</li>");

} Response.Write("</ul>"); }

Page 15: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 15/21

4. MESSAGEDATASET: THE CORE OF PARSER MODULE

In order to help manipulating data in SDMX data messages an “intermediate data layer” was

created. This layer intention is to provide a common MessageDataset Class that is able to store the

datasets available in any kind of SDMX data message format (Compact, Generic or Cross-sectional

format). It is able to gather information from a DSD and from a SDMX data file provided by the

user.

4.1. Class overview

The main purpose is to store the data from one SDMX data message into a DataTable object which

is derived from a Class (MessageDataSet class) that has some properties which represent the DSD

components (DataComponent class) in a simplified manner.

Beside those properties there are some methods to help the developer to obtain information about

the components of the DSD. Those methods include several operations like, for instance:

• GetCodelistMemberDescriptionByCode;

• GetComponentByConceptRef;

• GetComponentByOrder;

• GetConceptNameById;

• GetDataTableCategoriesByComponent;

• GetDataTableValuesByComponents;

• GetFrequenceComponent;

• GetPrimaryMeasureComponent;

• GetSeriesDefaultDimensionComponent;

• GetTimeDimensionComponent;

The next class diagram represents the main classes used to instantiate MessageDataSet. The

complete description of the classes can be found in annexI of this document (03.D-5

WP3_Parser_Module_Analysis_and_Design_AnnexI.doc).

Page 16: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 16/21

Figure 4-1 – MessageDataSet Classes (common to all data format)

Next, we will see an example about how to represent the data available in one SDMX data file using

the corresponding MessageDataSet class.

Page 17: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 17/21

4.2. A sample case

Suppose we would like to get the data from an SDMX data file, and populate one

MessageDatasSet with this data. For this sample case we will consider an excerpt of an SDMX

message which contains data from Consumer Price Index in Generic format.

Figure 4-2 – Excerpt of CPI data (Generic format message)

Suppose, also, we have the corresponding DSD (estat_cpi_v1.0.xml, which can be downloaded

from Eurostat SDMX registry). At this moment we will be able to identify the components that

defined in the DSD and are used in the Generic data message.

(...) <DataSet> <generic:KeyFamilyRef>CPI</generic:KeyFamilyRef> <generic:Series> <generic:SeriesKey> <generic:Value concept="FREQ" value="M" /> <generic:Value concept="REF_AREA" value="LU" /> <generic:Value concept="CPI_ITEM" value="01" /> <generic:Value concept="CPI_SUFFIX" value="WEIGHT" /> <generic:Value concept="IND_REF_YEAR" value="0000" /> </generic:SeriesKey> <generic:Attributes> <generic:Value concept="TIME_FORMAT" value="P1M" /> </generic:Attributes> <generic:Obs> <generic:Time>1998-02</generic:Time> <generic:ObsValue value="314.15" /> <generic:Attributes> <generic:Value concept="OBS_STATUS" value="A" /> </generic:Attributes> </generic:Obs> </generic:Series> <generic:Series> <generic:SeriesKey> <generic:Value concept="FREQ" value="M" /> <generic:Value concept="REF_AREA" value="LU" /> <generic:Value concept="CPI_ITEM" value="00" /> <generic:Value concept="CPI_SUFFIX" value="CPX" /> <generic:Value concept="IND_REF_YEAR" value="1995" /> </generic:SeriesKey> <generic:Attributes> <generic:Value concept="TIME_FORMAT" value="P1M" /> </generic:Attributes> <generic:Obs> <generic:Time>1998-03</generic:Time> <generic:ObsValue value="101.3" /> <generic:Attributes> <generic:Value concept="OBS_STATUS" value="A" /> </generic:Attributes> </generic:Obs> </generic:Series> </DataSet> (...)

Page 18: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 18/21

Those components are:

• FREQ

• REF_AREA

• CPI_ITEM

• CPI_SUFFIX

• IND_REF_YEAR

• TIME_FORMAT

• OBS_VALUE

• TIME_PERIOD

• OBS_STATUS

• And several more attributes, not mandatory (like OBS_CONF, UNIT, …)

After reading the DSD, the “Parser” will create the MessageDataSet object (based on the above

components). Then, it will populate this object with the data obtained from the Generic data

message. Doing this, data will be available in the messageDT property (DataTable type) of the

MessageDataSet object (corresponding to a list of DataComponent objects) with a number of

columns (fields) that equals the number of components for the DSD. Each row of this table will

have a value in every mandatory component.

FREQ REF_AREA CPI_ITEM CPI_SUFFIX IND_REF_YEAR TIME_FORMAT OBS_VALUE TIME_PERIOD OBS_STATUS

M LU 01 WEIGHT 0000 P1M 314.15 1998-02 AM LU 00 CPX 1995 P1M 101.3 1998-03 A

Figure 4-3 – Representation, in a form of DataTable structure, of the CPI data

This data structure will be available for several SDMX Data Express functionalities like, for

instance, Conversion, Tabular visualization and Graphic visualization. It should be understood as

the common input for these functionalities.

Page 19: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 19/21

4.3. Using the MessageDataSet class

The “Parser module” will help to create and populate the MessageDataSet. For doing this we

must provide the DSD (StructureType type, according to the Model) and the SDMX data

message (in this sample we use the GenericDataType format).

Figure 4-4 – Creation of the MessageDataSet object and associated DataSet and DataTable

When using intellisense, in Visual Studio IDE, we can see the main methods and members

associated to the MessageDataSet class.

// Create the MessageDataset object SDMX.Lib.Data.MessageDataSet msgDS; msgDS = new SDMX.Lib.Data.MessageDataSet(); // Load the SDMX file – generic format - into a string xmlStr = SDMX.Lib.IO.WriteRead.StringFromFile(filePath); DataTable dt = new DataTable(); // create DataSet (from the components available in the DSD) msgDS.CreateDataSet(SDMXDSD); // populate DataTable with data available from Generic file msgDS.PopulateDataSet(xmlStr, SDMXMessageTypes.GenericData, xsdPath); dt = msgDS.MessageDT;

Page 20: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 20/21

Figure 4-5 – List of methods and members of MessageDataSet class (using VS intellisense)

After creating and populating the MessageDataSet object (msgDS), we are able to use the

DataTable (dt) to easily access the data and the corresponding DataComponentList

(msgDS.DataCompList) to access the associated metadata. The number of the column should

correspond to the order number of the component in the DSD. However, the DataComponent

includes the order attribute (figure 2-5) that can be used to store the order of the DataTable

column.

Page 21: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design Pag. 21/21

Figure 4-6 – Accessing DataTable and associated DataComponents

As seen in previous figure, these components can be reached through the DataComptList

member of the MessageDataSet class. Again, when using intellisense (next figure), we are able

to obtain any of the component properties: ConceptRef, Order, AssignmentStatus, Description,

Figure 4-7 – Obtain component properties (using VS intellisense)

Response.Write("This data message Table has: <br>"); Response.Write(dt.Columns.Count + " columns and <br>"); // = number of components Response.Write(dt.Rows.Count + " rows of data"); Response.Write("<br><br>In terms of Components:"); Response.Write("<br>1st Component is: " + msgDS.DataComptList[0].ConceptRef); Response.Write("<br>2nd Component is: " + msgDS.DataComptList[1].ConceptRef);

Page 22: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. i/23

ESSnet on SDMX

WP3 Parser module Analysis and Design

Annex I

Classes description

WP: 3 – SDMX Data Express

WP Responsible: João Poças Date: 24/11/2010 File: 03.D-5 WP3_Parser_Module_Analysis_and_Design_annexI.doc

Page 23: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. ii/23

Revision history

Version Date Description Author

draft 24/11/2010 Initial document João Poças

Page 24: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. iii/23

Table of Contents Table of Contents ........................................................................................................................................... iii

Namespace Documentation ............................................................................................................................. 4

SDMX Namespace Reference ..................................................................................................................... 4

SDMX::Lib Namespace Reference ............................................................................................................. 5

SDMX::Lib::Data Namespace Reference .................................................................................................... 6

Class Documentation ....................................................................................................................................... 8

SDMX::Lib::Data::CodelistMember Class Reference ................................................................................ 8

SDMX::Lib::Data::DataCodelist Class Reference ...................................................................................... 9

SDMX::Lib::Data::DataComponent Class Reference ............................................................................... 10

SDMX::Lib::Data::DataConcept Class Reference .................................................................................... 12

SDMX::Lib::Data::MessageDataSet Class Reference ............................................................................... 13

File Documentation ....................................................................................................................................... 18

ESSNET.WP3/SDMX.LIB/Data/DataCodelist.cs File Reference ............................................................ 18

ESSNET.WP3/SDMX.LIB/Data/DataComponent.cs File Reference ....................................................... 19

ESSNET.WP3/SDMX.LIB/Data/DataConcept.cs File Reference ............................................................ 20

ESSNET.WP3/SDMX.LIB/Data/DataSet.cs File Reference ..................................................................... 21

Index .............................................................................................................................................................. 22

Page 25: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 4/23

Namespace Documentation

SDMX Namespace Reference

Namespaces • namespace Lib

Page 26: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 5/23

SDMX::Lib Namespace Reference

Namespaces • namespace Data

Page 27: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 6/23

SDMX::Lib::Data Namespace Reference

Classes • class DataCodelist

Used to define the Codelists available in the DSD that will be used in the SDMX Data Message or Query. • class CodelistMember

Code represents a codelist pair (code value plus code description) • class DataComponent

This class is used to define a Component from the DSD that will be used in the SDMX Data Message. • class DataConcept

Class used to store concept ID and corresponding value, used in data messages. • class MessageDataSet

Defines a Data Set that will be populated with data from the SDMX Data Message.

Enumerations • enum DataComponentsType { Dimension = 1, TimeDimension = 2, PrimaryMeasure = 3,

CrossSectionalMeasure = 4, Attribute = 5 } • enum AttachmentLevelType { Group = 1, Series = 2, Observation = 3 } • enum AssignmentStatusType { Mandatory = 1, Optional = 2 } • enum RepresentationType { Text = 1, Codelist = 2, Measure }

Enumeration Type Documentation

enum SDMX::Lib::Data::AssignmentStatusType Enumerator:

Mandatory Optional

enum SDMX::Lib::Data::AttachmentLevelType Enumerator:

Group Series Observation

enum SDMX::Lib::Data::DataComponentsType Enumerator:

Dimension TimeDimension PrimaryMeasure CrossSectionalMeasure Attribute

enum SDMX::Lib::Data::RepresentationType

Page 28: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 7/23

Enumerator: Text Codelist Measure

Page 29: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 8/23

Class Documentation

SDMX::Lib::Data::CodelistMember Class Reference Code represents a codelist pair (code value plus code description)

Properties • string Value [get, set] • string Description [get, set] • bool UsedInDataset [get, set]

Detailed Description Code represents a codelist pair (code value plus code description)

Property Documentation

string SDMX::Lib::Data::CodelistMember::Description [get, set]

bool SDMX::Lib::Data::CodelistMember::UsedInDataset [get, set]

string SDMX::Lib::Data::CodelistMember::Value [get, set]

Page 30: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 9/23

SDMX::Lib::Data::DataCodelist Class Reference Used to define the Codelists available in the DSD that will be used in the SDMX Data Message or Query.

Properties • string Id [get, set] • string Name [get, set] • List< CodelistMember > CodelistMember [get, set] • CodelistMember CodelistMember1 [get, set]

Detailed Description Used to define the Codelists available in the DSD that will be used in the SDMX Data Message or Query.

Property Documentation

List<CodelistMember> SDMX::Lib::Data::DataCodelist::CodelistMember [get, set]

CodelistMember SDMX::Lib::Data::DataCodelist::CodelistMember1 [get, set]

string SDMX::Lib::Data::DataCodelist::Id [get, set]

string SDMX::Lib::Data::DataCodelist::Name [get, set]

Page 31: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 10/23

SDMX::Lib::Data::DataComponent Class Reference This class is used to define a Component from the DSD that will be used in the SDMX Data Message.

Properties • int Order [get, set] • string ConceptRef [get, set] • DataComponentsType ComponentType [get, set] • string Representation [get, set] • RepresentationType RepresentationType [get, set] • AttachmentLevelType AttachmentLevel [get, set] • string Description [get, set] • AssignmentStatusType AssignmentStatus [get, set] • bool IsFrequencyDimension [get, set] • bool IsMeasureDimension [get, set] • string MeasureDimensionId [get, set] • DataComponentsType DataComponentsType [get, set] • AttachmentLevelType AttachmentLevelType [get, set] • AssignmentStatusType AssignmentStatusType [get, set] • RepresentationType RepresentationType1 [get, set]

Detailed Description This class is used to define a Component from the DSD that will be used in the SDMX Data Message.

Page 32: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 11/23

Property Documentation

AssignmentStatusType SDMX::Lib::Data::DataComponent::AssignmentStatus [get, set]

AssignmentStatusType SDMX::Lib::Data::DataComponent::AssignmentStatusType [get, set]

AttachmentLevelType SDMX::Lib::Data::DataComponent::AttachmentLevel [get, set]

AttachmentLevelType SDMX::Lib::Data::DataComponent::AttachmentLevelType [get, set]

DataComponentsType SDMX::Lib::Data::DataComponent::ComponentType [get, set]

string SDMX::Lib::Data::DataComponent::ConceptRef [get, set]

DataComponentsType SDMX::Lib::Data::DataComponent::DataComponentsType [get, set]

string SDMX::Lib::Data::DataComponent::Description [get, set]

bool SDMX::Lib::Data::DataComponent::IsFrequencyDimension [get, set]

bool SDMX::Lib::Data::DataComponent::IsMeasureDimension [get, set]

string SDMX::Lib::Data::DataComponent::MeasureDimensionId [get, set]

int SDMX::Lib::Data::DataComponent::Order [get, set]

string SDMX::Lib::Data::DataComponent::Representation [get, set]

RepresentationType SDMX::Lib::Data::DataComponent::RepresentationType [get, set]

RepresentationType SDMX::Lib::Data::DataComponent::RepresentationType1 [get, set]

Page 33: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 12/23

SDMX::Lib::Data::DataConcept Class Reference Class used to store concept ID and corresponding value, used in data messages.

Properties • string Value [get, set] • string Id [get, set]

Detailed Description Class used to store concept ID and corresponding value, used in data messages.

Property Documentation

string SDMX::Lib::Data::DataConcept::Id [get, set]

string SDMX::Lib::Data::DataConcept::Value [get, set]

Page 34: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 13/23

SDMX::Lib::Data::MessageDataSet Class Reference Defines a Data Set that will be populated with data from the SDMX Data Message.

Public Member Functions • DataSet CreateDataSet (SDMXModel.StructureType SDMXDSD)

This method create a Data Set with DSD information. • string GetConceptNameById (SDMXModel.ConceptsType DSDConcepts, string conceptSchemeId, string

conceptId) Gets the concept Name, by id.

• void PopulateDataSet (string sdmxStr, SDMX.Lib.IO.SDMXMessageTypes messageType, string xsdPath) Populates the data set.

• DataComponent GetFrequenceComponent () This method returns the Frequence component.

• DataComponent GetComponentByConceptRef (string conceptRef) Gets the component by concept ref.

• DataComponent GetComponentByOrder (int order) Gets the component by Order.

• DataComponent GetPrimaryMeasureComponent () This method returns the PrimaryMeasure (OBS_Value) component.

• DataComponent GetTimeDimensionComponent () This method returns the Time Dimension component.

• DataComponent GetSeriesDefaultDimensionComponent () This method returns a Dimension component different from Time Or OBS_Value.

• SortedDictionary< string, string > GetDataTableCategoriesByComponent (string componentName) This method returns the available Members/Categories (distinct values) of a specified Component.

• string GetDataTableValuesByComponents (Dictionary< string, string > componentsDict, string valueComponentRef) This method returns the available Members/Categories (distinct values) of a specified Component.

• string GetCodelistMemberDescriptionByCode (string codelistId, string codeMember) This method returns the Description of a given Member and Codelist ID.

• string CloseDataSet () Releases all resources used by DataSet.

Properties • DataTable MessageDT [get, set] • SDMX.Lib.IO.SDMXMessageTypes DataType [get, set] • List< DataCodelist > DataCodelistList [get, set] • List< DataComponent > DataComptList [get, set] • List< string > GroupList [get, set] • string DSDFileName [get, set] • string DataFileName [get, set] • string KfName [get, set] • string KfDescription [get, set] • DataComponent DataComponent [get, set] • DataCodelist DataCodelist [get, set]

Page 35: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 14/23

Detailed Description Defines a Data Set that will be populated with data from the SDMX Data Message.

Member Function Documentation

string SDMX::Lib::Data::MessageDataSet::CloseDataSet () [inline] Releases all resources used by DataSet.

Returns:

DataSet SDMX::Lib::Data::MessageDataSet::CreateDataSet (SDMXModel.StructureType SDMXDSD) [inline]

This method create a Data Set with DSD information.

Parameters: SDMXDSD The Structure type object.

Returns:

string SDMX::Lib::Data::MessageDataSet::GetCodelistMemberDescriptionByCode (string codelistId, string codeMember) [inline]

This method returns the Description of a given Member and Codelist ID.

Returns:

DataComponent SDMX::Lib::Data::MessageDataSet::GetComponentByConceptRef (string conceptRef) [inline]

Gets the component by concept ref.

Parameters: conceptRef The concept ref.

Returns:

Page 36: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 15/23

DataComponent SDMX::Lib::Data::MessageDataSet::GetComponentByOrder (int order) [inline]

Gets the component by Order.

Parameters: order The order.

Returns:

string SDMX::Lib::Data::MessageDataSet::GetConceptNameById (SDMXModel.ConceptsType DSDConcepts, string conceptSchemeId, string conceptId) [inline]

Gets the concept Name, by id.

Parameters: DSDConcepts The DSD concepts. conceptSchemeId The concept scheme id. conceptId The concept id.

Returns:

SortedDictionary<string, string> SDMX::Lib::Data::MessageDataSet::GetDataTableCategoriesByComponent (string componentName) [inline]

This method returns the available Members/Categories (distinct values) of a specified Component.

Returns:

string SDMX::Lib::Data::MessageDataSet::GetDataTableValuesByComponents (Dictionary< string, string > componentsDict, string valueComponentRef) [inline]

This method returns the available Members/Categories (distinct values) of a specified Component.

Returns:

DataComponent SDMX::Lib::Data::MessageDataSet::GetFrequenceComponent () [inline] This method returns the Frequence component.

Page 37: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 16/23

Returns:

DataComponent SDMX::Lib::Data::MessageDataSet::GetPrimaryMeasureComponent () [inline] This method returns the PrimaryMeasure (OBS_Value) component.

Returns:

DataComponent SDMX::Lib::Data::MessageDataSet::GetSeriesDefaultDimensionComponent () [inline]

This method returns a Dimension component different from Time Or OBS_Value.

Returns:

DataComponent SDMX::Lib::Data::MessageDataSet::GetTimeDimensionComponent () [inline] This method returns the Time Dimension component.

Returns:

void SDMX::Lib::Data::MessageDataSet::PopulateDataSet (string sdmxStr, SDMX.Lib.IO.SDMXMessageTypes messageType, string xsdPath) [inline]

Populates the data set.

Parameters: sdmxStr The SDMX file in string format. messageType Type of the SDMX message. xsdPath The XSD path.

Page 38: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 17/23

Property Documentation

DataCodelist SDMX::Lib::Data::MessageDataSet::DataCodelist [get, set]

List<DataCodelist> SDMX::Lib::Data::MessageDataSet::DataCodelistList [get, set]

DataComponent SDMX::Lib::Data::MessageDataSet::DataComponent [get, set]

List<DataComponent> SDMX::Lib::Data::MessageDataSet::DataComptList [get, set]

string SDMX::Lib::Data::MessageDataSet::DataFileName [get, set]

SDMX.Lib.IO.SDMXMessageTypes SDMX::Lib::Data::MessageDataSet::DataType [get, set]

string SDMX::Lib::Data::MessageDataSet::DSDFileName [get, set]

List<string> SDMX::Lib::Data::MessageDataSet::GroupList [get, set]

string SDMX::Lib::Data::MessageDataSet::KfDescription [get, set]

string SDMX::Lib::Data::MessageDataSet::KfName [get, set]

DataTable SDMX::Lib::Data::MessageDataSet::MessageDT [get, set]

Page 39: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 18/23

File Documentation

ESSNET.WP3/SDMX.LIB/Data/DataCodelist.cs File Reference

Classes • class SDMX::Lib::Data::DataCodelist • Used to define the Codelists available in the DSD that will be used in the SDMX Data Message or Query. class

SDMX::Lib::Data::CodelistMember

Code represents a codelist pair (code value plus code description) Namespaces • namespace SDMX::Lib::Data

Page 40: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 19/23

ESSNET.WP3/SDMX.LIB/Data/DataComponent.cs File Reference

Classes • class SDMX::Lib::Data::DataComponent

This class is used to define a Component from the DSD that will be used in the SDMX Data Message. Namespaces • namespace SDMX::Lib::Data

Enumerations • enum SDMX::Lib::Data::DataComponentsType { SDMX::Lib::Data::Dimension = 1,

SDMX::Lib::Data::TimeDimension = 2, SDMX::Lib::Data::PrimaryMeasure = 3, SDMX::Lib::Data::CrossSectionalMeasure = 4, SDMX::Lib::Data::Attribute = 5 }

• enum SDMX::Lib::Data::AttachmentLevelType { SDMX::Lib::Data::Group = 1, SDMX::Lib::Data::Series = 2, SDMX::Lib::Data::Observation = 3 }

• enum SDMX::Lib::Data::AssignmentStatusType { SDMX::Lib::Data::Mandatory = 1, SDMX::Lib::Data::Optional = 2 }

• enum SDMX::Lib::Data::RepresentationType { SDMX::Lib::Data::Text = 1, SDMX::Lib::Data::Codelist = 2, SDMX::Lib::Data::Measure }

Page 41: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 20/23

ESSNET.WP3/SDMX.LIB/Data/DataConcept.cs File Reference

Classes • class SDMX::Lib::Data::DataConcept

Class used to store concept ID and corresponding value, used in data messages. Namespaces • namespace SDMX::Lib::Data

Page 42: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 21/23

ESSNET.WP3/SDMX.LIB/Data/DataSet.cs File Reference

Classes • class SDMX::Lib::Data::MessageDataSet

Defines a Data Set that will be populated with data from the SDMX Data Message. Namespaces • namespace SDMX::Lib::Data

Page 43: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 22/23

Index AssignmentStatus

SDMX::Lib::Data::DataComponent, 11 AssignmentStatusType

SDMX::Lib::Data, 6 SDMX::Lib::Data::DataComponent, 11

AttachmentLevel SDMX::Lib::Data::DataComponent, 11

AttachmentLevelType SDMX::Lib::Data, 6 SDMX::Lib::Data::DataComponent, 11

Attribute SDMX::Lib::Data, 6

CloseDataSet SDMX::Lib::Data::MessageDataSet, 14

Codelist SDMX::Lib::Data, 7

CodelistMember SDMX::Lib::Data::DataCodelist, 9

CodelistMember1 SDMX::Lib::Data::DataCodelist, 9

ComponentType SDMX::Lib::Data::DataComponent, 11

ConceptRef SDMX::Lib::Data::DataComponent, 11

CreateDataSet SDMX::Lib::Data::MessageDataSet, 14

CrossSectionalMeasure SDMX::Lib::Data, 6

DataCodelist SDMX::Lib::Data::MessageDataSet, 17

DataCodelistList SDMX::Lib::Data::MessageDataSet, 17

DataComponent SDMX::Lib::Data::MessageDataSet, 17

DataComponentsType SDMX::Lib::Data, 6 SDMX::Lib::Data::DataComponent, 11

DataComptList SDMX::Lib::Data::MessageDataSet, 17

DataFileName SDMX::Lib::Data::MessageDataSet, 17

DataType SDMX::Lib::Data::MessageDataSet, 17

Description SDMX::Lib::Data::CodelistMember, 8 SDMX::Lib::Data::DataComponent, 11

Dimension SDMX::Lib::Data, 6

DSDFileName SDMX::Lib::Data::MessageDataSet, 17

ESSNET.WP3/SDMX.LIB/Data/DataCodelist.cs, 18

ESSNET.WP3/SDMX.LIB/Data/DataComponent.cs, 19

ESSNET.WP3/SDMX.LIB/Data/DataConcept.cs, 20 ESSNET.WP3/SDMX.LIB/Data/DataSet.cs, 21 GetCodelistMemberDescriptionByCode

SDMX::Lib::Data::MessageDataSet, 14 GetComponentByConceptRef

SDMX::Lib::Data::MessageDataSet, 14 GetComponentByOrder

SDMX::Lib::Data::MessageDataSet, 15 GetConceptNameById

SDMX::Lib::Data::MessageDataSet, 15 GetDataTableCategoriesByComponent

SDMX::Lib::Data::MessageDataSet, 15 GetDataTableValuesByComponents

SDMX::Lib::Data::MessageDataSet, 15 GetFrequenceComponent

SDMX::Lib::Data::MessageDataSet, 16 GetPrimaryMeasureComponent

SDMX::Lib::Data::MessageDataSet, 16 GetSeriesDefaultDimensionComponent

SDMX::Lib::Data::MessageDataSet, 16 GetTimeDimensionComponent

SDMX::Lib::Data::MessageDataSet, 16 Group

SDMX::Lib::Data, 6 GroupList

SDMX::Lib::Data::MessageDataSet, 17 Id

SDMX::Lib::Data::DataCodelist, 9 SDMX::Lib::Data::DataConcept, 12

IsFrequencyDimension SDMX::Lib::Data::DataComponent, 11

IsMeasureDimension SDMX::Lib::Data::DataComponent, 11

KfDescription SDMX::Lib::Data::MessageDataSet, 17

KfName SDMX::Lib::Data::MessageDataSet, 17

Mandatory SDMX::Lib::Data, 6

Measure SDMX::Lib::Data, 7

MeasureDimensionId SDMX::Lib::Data::DataComponent, 11

MessageDT SDMX::Lib::Data::MessageDataSet, 17

Name SDMX::Lib::Data::DataCodelist, 9

Observation SDMX::Lib::Data, 6

Optional

Page 44: ESSnet on SDMX - European Commission · ESSnet on SDMX . WP3 Parser Module Analysis and Design Pag. 10/21 \IO • Base.cs Used for common IO operations; • SchemaNamespace.cs Used

ESSnet on SDMX

WP3 Parser Module Analysis and Design – Annex I Pag. 23/23

SDMX::Lib::Data, 6 Order

SDMX::Lib::Data::DataComponent, 11 PopulateDataSet

SDMX::Lib::Data::MessageDataSet, 16 PrimaryMeasure

SDMX::Lib::Data, 6 Representation

SDMX::Lib::Data::DataComponent, 11 RepresentationType

SDMX::Lib::Data, 7 SDMX::Lib::Data::DataComponent, 11

RepresentationType1 SDMX::Lib::Data::DataComponent, 11

SDMX, 4 SDMX::Lib, 5 SDMX::Lib::Data, 6

AssignmentStatusType, 6 AttachmentLevelType, 6 Attribute, 6 Codelist, 7 CrossSectionalMeasure, 6 DataComponentsType, 6 Dimension, 6 Group, 6 Mandatory, 6 Measure, 7 Observation, 6 Optional, 6 PrimaryMeasure, 6 RepresentationType, 7 Series, 6 Text, 7 TimeDimension, 6

SDMX::Lib::Data::CodelistMember, 8 Description, 8 UsedInDataset, 8 Value, 8

SDMX::Lib::Data::DataCodelist, 9 CodelistMember, 9 CodelistMember1, 9 Id, 9 Name, 9

SDMX::Lib::Data::DataComponent, 10 AssignmentStatus, 11 AssignmentStatusType, 11 AttachmentLevel, 11 AttachmentLevelType, 11 ComponentType, 11

ConceptRef, 11 DataComponentsType, 11 Description, 11 IsFrequencyDimension, 11 IsMeasureDimension, 11 MeasureDimensionId, 11 Order, 11 Representation, 11 RepresentationType, 11 RepresentationType1, 11

SDMX::Lib::Data::DataConcept, 12 Id, 12 Value, 12

SDMX::Lib::Data::MessageDataSet, 13 CloseDataSet, 14 CreateDataSet, 14 DataCodelist, 17 DataCodelistList, 17 DataComponent, 17 DataComptList, 17 DataFileName, 17 DataType, 17 DSDFileName, 17 GetCodelistMemberDescriptionByCode, 14 GetComponentByConceptRef, 14 GetComponentByOrder, 15 GetConceptNameById, 15 GetDataTableCategoriesByComponent, 15 GetDataTableValuesByComponents, 15 GetFrequenceComponent, 16 GetPrimaryMeasureComponent, 16 GetSeriesDefaultDimensionComponent, 16 GetTimeDimensionComponent, 16 GroupList, 17 KfDescription, 17 KfName, 17 MessageDT, 17 PopulateDataSet, 16

Series SDMX::Lib::Data, 6

Text SDMX::Lib::Data, 7

TimeDimension SDMX::Lib::Data, 6

UsedInDataset SDMX::Lib::Data::CodelistMember, 8

Value SDMX::Lib::Data::CodelistMember, 8 SDMX::Lib::Data::DataConcept, 12