diff --git a/doc/walkthrough.rst b/doc/walkthrough.rst index d2ce93b0d..6b465ae22 100644 --- a/doc/walkthrough.rst +++ b/doc/walkthrough.rst @@ -486,7 +486,7 @@ If given, the response from the web service is written to the specified file, *a .. versionadded:: 0.2.1 -:func:`.read_sdmx` can be used to load SDMX messages stored in local files: +:func:`~.sdmx.read_sdmx` can be used to load SDMX messages stored in local files: .. ipython:: python diff --git a/doc/whatsnew.rst b/doc/whatsnew.rst index 8b196d438..8dd4d021d 100644 --- a/doc/whatsnew.rst +++ b/doc/whatsnew.rst @@ -6,6 +6,12 @@ What's new? Next release (vX.Y.0) ===================== +New features +------------ + +- Methods like :meth:`.IdentifiableArtefact.compare` are added for recursive comparison of :mod:`.model` objects (:pull:`6`). +- :func:`.to_xml` covers a larger subset of SDMX-ML, including almost all contents of a :class:`.StructureMessage` (:pull:`6`). + v1.1.0 (2020-05-18) =================== diff --git a/sdmx/format/xml.py b/sdmx/format/xml.py index 6fe6609bf..130bcf313 100644 --- a/sdmx/format/xml.py +++ b/sdmx/format/xml.py @@ -1,8 +1,13 @@ +import logging from functools import lru_cache +from operator import itemgetter from lxml.etree import QName -from sdmx import message +from sdmx import message, model + +log = logging.getLogger(__name__) + # XML Namespaces _base_ns = "http://www.sdmx.org/resources/sdmxml/schemas/v2_1" @@ -22,16 +27,77 @@ @lru_cache() def qname(ns_or_name, name=None): """Return a fully-qualified tag *name* in namespace *ns*.""" - ns, name = ns_or_name.split(":") if name is None else (ns_or_name, name) - return QName(NS[ns], name) - - -# Mapping tag names → Message classes -MESSAGE = { - "Structure": message.StructureMessage, - "GenericData": message.DataMessage, - "GenericTimeSeriesData": message.DataMessage, - "StructureSpecificData": message.DataMessage, - "StructureSpecificTimeSeriesData": message.DataMessage, - "Error": message.ErrorMessage, -} + if isinstance(ns_or_name, QName): + # Already a QName; do nothing + return ns_or_name + else: + ns, name = ns_or_name.split(":") if name is None else (ns_or_name, name) + return QName(NS[ns], name) + + +# Correspondence of message and model classes with XML tag names +_CLS_TAG = [ + (message.DataMessage, qname("mes:GenericData")), + (message.DataMessage, qname("mes:GenericTimeSeriesData")), + (message.DataMessage, qname("mes:StructureSpecificData")), + (message.DataMessage, qname("mes:StructureSpecificTimeSeriesData")), + (message.ErrorMessage, qname("mes:Error")), + (message.StructureMessage, qname("mes:Structure")), + (model.Agency, qname("str:Agency")), + (model.Agency, qname("mes:Receiver")), + (model.Agency, qname("mes:Sender")), + (model.AttributeDescriptor, qname("str:AttributeList")), + (model.Categorisation, qname("str:Categorisation")), + (model.DataAttribute, qname("str:Attribute")), + (model.DataflowDefinition, qname("str:Dataflow")), + (model.DataStructureDefinition, qname("str:DataStructure")), + (model.DataStructureDefinition, qname("com:Structure")), + (model.DataStructureDefinition, qname("str:Structure")), + (model.Dimension, qname("str:Dimension")), + (model.Dimension, qname("str:DimensionReference")), + (model.Dimension, qname("str:GroupDimension")), + (model.DimensionDescriptor, qname("str:DimensionList")), + (model.GroupDimensionDescriptor, qname("str:Group")), + (model.GroupDimensionDescriptor, qname("str:AttachmentGroup")), + (model.GroupKey, qname("gen:GroupKey")), + (model.Key, qname("gen:ObsKey")), + (model.MeasureDescriptor, qname("str:MeasureList")), + (model.SeriesKey, qname("gen:SeriesKey")), + (model.StructureUsage, qname("com:StructureUsage")), +] + [ + (getattr(model, name), qname("str", name)) + for name in ( + "AgencyScheme", + "Category", + "CategoryScheme", + "Code", + "Codelist", + "Concept", + "ConceptScheme", + "ContentConstraint", + "DataProvider", + "DataProviderScheme", + "PrimaryMeasure", + "TimeDimension", + ) +] + + +@lru_cache() +def class_for_tag(tag): + """Return a message or model class for an XML tag.""" + results = map(itemgetter(0), filter(lambda ct: ct[1] == tag, _CLS_TAG)) + try: + return next(results) + except StopIteration: + return None + + +@lru_cache() +def tag_for_class(cls): + """Return an XML tag for a message or model class.""" + results = map(itemgetter(1), filter(lambda ct: ct[0] is cls, _CLS_TAG)) + try: + return next(results) + except StopIteration: + return None diff --git a/sdmx/message.py b/sdmx/message.py index 32cf64edd..b0c40df49 100644 --- a/sdmx/message.py +++ b/sdmx/message.py @@ -7,6 +7,7 @@ :mod:`sdmx` also uses :class:`DataMessage` to encapsulate SDMX-JSON data returned by data sources. """ +import logging from typing import List, Optional, Text, Union from requests import Response @@ -14,6 +15,8 @@ from sdmx import model from sdmx.util import BaseModel, DictLike, summarize_dictlike +log = logging.getLogger(__name__) + def _summarize(obj, fields): """Helper method for __repr__ on Header and Message (sub)classes.""" @@ -98,6 +101,8 @@ class ErrorMessage(Message): class StructureMessage(Message): + #: Collection of :class:`.Categorisation`. + categorisation: DictLike[str, model.Categorisation] = DictLike() #: Collection of :class:`.CategoryScheme`. category_scheme: DictLike[str, model.CategoryScheme] = DictLike() #: Collection of :class:`.Codelist`. @@ -115,6 +120,32 @@ class StructureMessage(Message): #: Collection of :class:`.ProvisionAgreement`. provisionagreement: DictLike[str, model.ProvisionAgreement] = DictLike() + def compare(self, other, strict=True): + """Return :obj:`True` if `self` is the same as `other`. + + Two StructureMessages compare equal if :meth:`.DictLike.compare` is :obj:`True` + for each of the object collection attributes. + + Parameters + ---------- + strict : bool, optional + Passed to :meth:`.DictLike.compare`. + """ + return all( + getattr(self, attr).compare(getattr(other, attr), strict) + for attr in ( + "categorisation", + "category_scheme", + "codelist", + "concept_scheme", + "constraint", + "dataflow", + "structure", + "organisation_scheme", + "provisionagreement", + ) + ) + def __repr__(self): """String representation.""" lines = [super().__repr__()] diff --git a/sdmx/model.py b/sdmx/model.py index 5445c649c..326e785f9 100644 --- a/sdmx/model.py +++ b/sdmx/model.py @@ -21,6 +21,7 @@ # TODO for complete implementation of the IM, enforce TimeKeyValue (instead of # KeyValue) for {Generic,StructureSpecific} TimeSeriesDataSet. +import logging from collections import ChainMap from collections.abc import Collection from collections.abc import Iterable as IterableABC @@ -44,7 +45,9 @@ ) from warnings import warn -from sdmx.util import BaseModel, DictLike, validate_dictlike, validator +from sdmx.util import BaseModel, DictLike, compare, validate_dictlike, validator + +log = logging.getLogger(__name__) # TODO read this from the environment, or use any value set in the SDMX XML # spec. Currently set to 'en' because test_dsd.py expects it @@ -159,6 +162,9 @@ def __repr__(self): ["{}: {}".format(*kv) for kv in sorted(self.localizations.items())] ) + def __eq__(self, other): + return self.localizations == other.localizations + @classmethod def __get_validators__(cls): yield cls.__validate @@ -250,6 +256,23 @@ def __eq__(self, other): elif isinstance(other, str): return self.id == other + def compare(self, other, strict=True): + """Return :obj:`True` if `self` is the same as `other`. + + Two IdentifiableArtefacts are the same if they have the same :attr:`id`, + :attr:`uri`, and :attr:`urn`. + + Parameters + ---------- + strict : bool, optional + Passed to :func:`.compare`. + """ + return ( + compare("id", self, other, strict) + and compare("uri", self, other, strict) + and compare("urn", self, other, strict) + ) + def __hash__(self): return id(self) if self.id == MissingID else hash(self.id) @@ -266,6 +289,32 @@ class NameableArtefact(IdentifiableArtefact): #: Multi-lingual description of the object. description: InternationalString = InternationalString() + def compare(self, other, strict=True): + """Return :obj:`True` if `self` is the same as `other`. + + Two NameableArtefacts are the same if: + + - :meth:`.IdentifiableArtefact.compare` is :obj:`True`, and + - they have the same :attr:`name` and :attr:`description`. + + Parameters + ---------- + strict : bool, optional + Passed to :func:`.compare` and :meth:`.IdentifiableArtefact.compare`. + """ + if not super().compare(other, strict): + pass + elif self.name != other.name: + log.info("Not identical: name=" + repr([self.name, other.name])) + elif self.description != other.description: + log.info( + "Not identical: description=" + + repr([self.description, other.description]) + ) + else: + return True + return False + def _repr_kw(self): return dict( cls=self.__class__.__name__, @@ -297,8 +346,22 @@ def __init__(self, **kwargs): except KeyError: pass - def identical(self, other): - return super().__eq__(other) and self.version == other.version + def compare(self, other, strict=True): + """Return :obj:`True` if `self` is the same as `other`. + + Two VersionableArtefacts are the same if: + + - :meth:`.NameableArtefact.compare` is :obj:`True`, and + - they have the same :attr:`version`. + + Parameters + ---------- + strict : bool, optional + Passed to :func:`.compare` and :meth:`.NameableArtefact.compare`. + """ + return super().compare(other, strict) and compare( + "version", self, other, strict + ) def _repr_kw(self) -> Mapping: return ChainMap( @@ -333,13 +396,27 @@ def __init__(self, **kwargs): except KeyError: pass - def identical(self, other): - return super().identical(other) and self.maintainer is other.maintainer + def compare(self, other, strict=True): + """Return :obj:`True` if `self` is the same as `other`. + + Two MaintainableArtefacts are the same if: + + - :meth:`.VersionableArtefact.compare` is :obj:`True`, and + - they have the same :attr:`maintainer`. + + Parameters + ---------- + strict : bool, optional + Passed to :func:`.compare` and :meth:`.VersionableArtefact.compare`. + """ + return super().compare(other, strict) and compare( + "maintainer", self, other, strict + ) def _repr_kw(self): return ChainMap( super()._repr_kw(), - dict(maint="f{self.maintainer}:" if self.maintainer else ""), + dict(maint=f"{self.maintainer}:" if self.maintainer else ""), ) def __repr__(self): @@ -542,6 +619,33 @@ def append(self, item: IT): """ self.items[item.id] = item + def compare(self, other, strict=True): + """Return :obj:`True` if `self` is the same as `other`. + + Two ItemSchemes are the same if: + + - :meth:`.MaintainableArtefact.compare` is :obj:`True`, and + - their :attr:`items` have the same keys, and corresponding + :class:`Items ` compare equal. + + Parameters + ---------- + strict : bool, optional + Passed to :func:`.compare` and :meth:`.MaintainableArtefact.compare`. + """ + if not super().compare(other, strict): + pass + elif set(self.items) != set(other.items): + log.info(repr([set(self.items), set(other.items)])) + else: + for id, item in self.items.items(): + if not item.compare(other.items[id], strict): + log.info(repr([item, other.items[id]])) + return False + return True + + return False + def __repr__(self): return "<{cls} {maint}{id}{version} ({N} items){name}>".format( **self._repr_kw(), N=len(self.items) @@ -777,6 +881,23 @@ def __eq__(self, other): def __hash__(self): return super().__hash__() + def compare(self, other, strict=True): + """Return :obj:`True` if `self` is the same as `other`. + + Two ComponentLists are the same if: + + - :meth:`.IdentifiableArtefact.compare` is :obj:`True`, and + - corresponding :attr:`components` compare equal. + + Parameters + ---------- + strict : bool, optional + Passed to :func:`.compare` and :meth:`.IdentifiableArtefact.compare`. + """ + return super().compare(other, strict) and all( + c.compare(other.get(c.id), strict) for c in self.components + ) + # §4.3: Codelist @@ -1363,6 +1484,23 @@ def dim(id): return key + def compare(self, other, strict=True): + """Return :obj:`True` if `self` is the same as `other`. + + Two DataStructureDefinitions are the same if each of :attr:`attributes`, + :attr:`dimensions`, :attr:`measures`, and :attr:`group_dimensions` compares + equal. + + Parameters + ---------- + strict : bool, optional + Passed to :meth:`.ComponentList.compare`. + """ + return all( + getattr(self, attr).compare(getattr(other, attr), strict) + for attr in ("attributes", "dimensions", "measures", "group_dimensions") + ) + class DataflowDefinition(StructureUsage, ConstrainableArtefact): #: @@ -1812,7 +1950,7 @@ class ProvisionAgreement(MaintainableArtefact, ConstrainableArtefact): PACKAGE = dict() _PACKAGE_CLASS: Dict[str, set] = { - "base": {Agency, AgencyScheme, DataProvider}, + "base": {Agency, AgencyScheme, DataProvider, DataProviderScheme}, "categoryscheme": {Category, Categorisation, CategoryScheme}, "codelist": {Code, Codelist}, "conceptscheme": {Concept, ConceptScheme}, @@ -1823,19 +1961,31 @@ class ProvisionAgreement(MaintainableArtefact, ConstrainableArtefact): for package, classes in _PACKAGE_CLASS.items(): PACKAGE.update({cls: package for cls in classes}) +del cls + -def get_class(cls, package=None): +def get_class(name, package=None): """Return a class object for string *cls* and *package* names.""" - cls = globals()[cls] + name = {"Dataflow": "DataflowDefinition"}.get(name, name) - if package and package != PACKAGE[cls]: - raise ValueError(f"Package {repr(package)} invalid for {cls}") + try: + cls = globals()[name] + except KeyError: + return None + else: + if package and package != PACKAGE[cls]: + raise ValueError(f"Package {repr(package)} invalid for {name}") - return cls + return cls def parent_class(cls): + """Return the class that contains objects of type `cls`. + + E.g. if `cls` is :class:`.PrimaryMeasure`, returns :class:`.MeasureDescriptor`. + """ return { + Agency: AgencyScheme, Category: CategoryScheme, Code: Codelist, Concept: ConceptScheme, diff --git a/sdmx/reader/sdmxml.py b/sdmx/reader/sdmxml.py index c5bbf2467..4222ea705 100644 --- a/sdmx/reader/sdmxml.py +++ b/sdmx/reader/sdmxml.py @@ -13,7 +13,6 @@ from itertools import chain, product from operator import itemgetter from sys import maxsize -from typing import Union from lxml import etree from lxml.etree import QName @@ -21,7 +20,7 @@ import sdmx.urn from sdmx import message, model from sdmx.exceptions import XMLParseError # noqa: F401 -from sdmx.format.xml import MESSAGE, qname +from sdmx.format.xml import class_for_tag, qname from sdmx.reader.base import BaseReader log = logging.getLogger(__name__) @@ -46,31 +45,11 @@ TO_SNAKE_RE = re.compile("([A-Z]+)") -def add_localizations(target, values): +def add_localizations(target: model.InternationalString, values: list) -> None: """Add localized strings from *values* to *target*.""" - if isinstance(values, tuple) and len(values) == 2: - values = [values] target.localizations.update({locale: label for locale, label in values}) -def get_sdmx_class(elem_or_name: Union[etree.Element, str], package=None): - try: - name = QName(elem_or_name).localname - except ValueError: - name = elem_or_name - name = { - "Attribute": "DataAttribute", - "Dataflow": "DataflowDefinition", - "DataStructure": "DataStructureDefinition", - "GroupDimension": "Dimension", - "ObsKey": "Key", - "Receiver": "Agency", - "Sender": "Agency", - "Source": "Agency", - }.get(name, name) - return model.get_class(name, package) - - # filter() conditions; see get_unique() and pop_single() @@ -135,6 +114,9 @@ class NotReference(Exception): pass +_NO_AGENCY = model.Agency() + + class Reference: """Temporary class for references. @@ -148,6 +130,8 @@ class Reference: """ def __init__(self, elem, cls_hint=None): + parent_tag = elem.tag + try: # Use the first child elem = elem[0] @@ -160,15 +144,12 @@ def __init__(self, elem, cls_hint=None): target_id = elem.attrib["id"] agency_id = elem.attrib.get("agencyID", None) id = elem.attrib.get("maintainableParentID", target_id) - version = elem.attrib.get("maintainableParentVersion", None) - - # Arguments to try with get_sdmx_class() - get_class_args = [ - # Attributes of the element itself, if any - (elem.attrib.get("class", None), elem.attrib.get("package", None)), - # The parent XML element - (elem.getparent(),), - ] + version = elem.attrib.get( + "maintainableParentVersion", None + ) or elem.attrib.get("version", None) + + # Attributes of the element itself, if any + args = (elem.attrib.get("class", None), elem.attrib.get("package", None)) elif elem.tag == "URN": match = sdmx.urn.match(elem.text) @@ -180,35 +161,21 @@ def __init__(self, elem, cls_hint=None): id = match["id"] version = match["version"] - get_class_args = [(match["class"], match["package"])] + args = (match["class"], match["package"]) else: raise NotReference # Find the target class - for args in get_class_args: - try: - target_cls = get_sdmx_class(*args) - except KeyError: # Arguments didn't work - continue - else: # Found a result; don't try others from `get_class_args` - break + target_cls = model.get_class(*args) - try: - # Get the hinted class - hinted_cls = get_sdmx_class(cls_hint) - - if issubclass(hinted_cls, target_cls): - # Hinted class is more specific than target_cls; use this instead - target_cls = hinted_cls - else: - raise ValueError( - f"{hinted_cls} is not a subclass of referenced {target_cls}" - ) - except KeyError: # cls_hint was None - pass - except UnboundLocalError: - # Failed to find anything from get_class_args, above; use the hinted class - target_cls = hinted_cls + if target_cls is None: + # Try the parent tag name + target_cls = class_for_tag(parent_tag) + + if cls_hint and (target_cls is None or issubclass(cls_hint, target_cls)): + # Hinted class is more specific than target_cls, or failed to find a target + # class above + target_cls = cls_hint self.maintainable = issubclass(target_cls, model.MaintainableArtefact) @@ -221,13 +188,13 @@ def __init__(self, elem, cls_hint=None): # Store self.cls = cls - self.agency = agency_id if agency_id is None else model.Agency(id=agency_id) + self.agency = model.Agency(id=agency_id) if agency_id else _NO_AGENCY self.id = id self.version = version self.target_cls = target_cls self.target_id = target_id - def __str__(self): + def __str__(self): # pragma: no cover return ( f"{self.cls.__name__}={self.agency.id}:{self.id}({self.version}) → " f"{self.target_cls.__name__}={self.target_id}" @@ -264,7 +231,7 @@ def read_message(self, source, dsd=None): try: # Retrieve the parsing function for this element & event func = PARSE[element.tag, event] - except KeyError: + except KeyError: # pragma: no cover # Don't know what to do for this (element, event) raise NotImplementedError(element.tag, event) from None @@ -274,7 +241,7 @@ def read_message(self, source, dsd=None): except TypeError: if func is None: # Explicitly no parser for this (element, event) continue # Skip - else: # Some other TypeError + else: # pragma: no cover raise else: # Store the result @@ -300,19 +267,19 @@ def read_message(self, source, dsd=None): for key, objects in self.stack.items(): uncollected += sum([1 if id(o) not in self.ignore else 0 for o in objects]) - if uncollected > 0: + if uncollected > 0: # pragma: no cover self._dump() raise RuntimeError(f"{uncollected} uncollected items") return self.get_single(message.Message) - def _clean(self): + def _clean(self): # pragma: no cover """Remove empty stacks.""" for key in list(self.stack.keys()): if len(self.stack[key]) == 0: self.stack.pop(key) - def _dump(self): + def _dump(self): # pragma: no cover self._clean() print("\n\n") for key, values in self.stack.items(): @@ -408,7 +375,7 @@ def peek(self, cls_or_name): """Get the object at the top of stack `cls_or_name` without removing it.""" try: return self.stack[cls_or_name][-1] - except (IndexError, KeyError): + except IndexError: # pragma: no cover return None def pop_resolved_ref(self, cls_or_name): @@ -443,10 +410,6 @@ def resolve(self, ref): if parent.is_external_reference: # Create the child - # log.info( - # f"Child {repr(ref.target_id)} of externally referenced parent " - # f"{repr(parent)} may be incomplete" - # ) return parent.setdefault(id=ref.target_id) else: try: @@ -469,7 +432,7 @@ def annotable(self, cls, elem, **kwargs): def identifiable(self, cls, elem, **kwargs): """Create a IdentifiableArtefact of `cls` from `elem` and `kwargs`.""" - setdefault_attrib(kwargs, elem, "id") + setdefault_attrib(kwargs, elem, "id", "urn", "uri") return self.annotable(cls, elem, **kwargs) def nameable(self, cls, elem, **kwargs): @@ -484,17 +447,13 @@ def nameable(self, cls, elem, **kwargs): add_localizations(obj.description, self.pop_all("Description")) return obj - def versionable(self, cls, elem, **kwargs): - """Create a VersionableArtefact of `cls` from `elem` and `kwargs`.""" - setdefault_attrib(kwargs, elem, "version") - return self.nameable(cls, elem, **kwargs) - def maintainable(self, cls, elem, **kwargs): """Create or retrieve a MaintainableArtefact of `cls` from `elem` and `kwargs`. Following the SDMX-IM class hierachy, :meth:`maintainable` calls - :meth:`versionable`, which in turn calls :meth:`nameable`, etc. - For all of these methods: + :meth:`nameable`, which in turn calls :meth:`identifiable`, etc. (Since no + concrete class is versionable but not maintainable, no separate method is + created, for better performance). For all of these methods: - Already-parsed items are removed from the stack only if `elem` is not :obj:`None`. @@ -506,30 +465,31 @@ def maintainable(self, cls, elem, **kwargs): the same object ID will return references to the same object. """ kwargs.setdefault("is_external_reference", elem is None) - setdefault_attrib(kwargs, elem, "isExternalReference", "isFinal", "uri", "urn") + setdefault_attrib(kwargs, elem, "isExternalReference", "isFinal", "version") + kwargs["is_final"] = kwargs.get("is_final", None) == "true" # Create a candidate object - obj = self.versionable(cls, elem, **kwargs) + obj = self.nameable(cls, elem, **kwargs) # Maybe retrieve an existing object of the same class and ID existing = self.get_single(cls, obj.id, strict=True) - if existing: + if existing and ( + existing.compare(obj, strict=True) or existing.urn == sdmx.urn.make(obj) + ): if elem is not None: # Previously an external reference, now concrete existing.is_external_reference = False - if not existing.identical(obj): - log.warning( - f"Mismatch between referred {repr(existing)} and concrete " - f"{repr(obj)}" - ) - # Update `existing` from `obj` to preserve references - for attr in kwargs: - log.info(f"Updating {attr}") + for attr in list(kwargs.keys()): + # log.info( + # f"Updating {attr} {getattr(existing, attr)} " + # f"{getattr(obj, attr)}" + # ) setattr(existing, attr, getattr(obj, attr)) + # Discard the candidate obj = existing elif obj.is_external_reference: # Push a new external reference onto the stack to be located by next calls @@ -538,7 +498,13 @@ def maintainable(self, cls, elem, **kwargs): return obj -@start(*[f"mes:{k}" for k in MESSAGE.keys() if k != "Structure"]) +# Parsers for sdmx.message classes + + +@start( + "mes:Error mes:GenericData mes:GenericTimeSeriesData mes:StructureSpecificData " + "mes:StructureSpecificTimeSeriesData" +) @start("mes:Structure", only=False) def _message(reader, elem): """Start of a Message.""" @@ -564,10 +530,10 @@ def _message(reader, elem): # Store values for other methods reader.push("SS without DSD", ss_without_dsd) if "Data" in elem.tag: - reader.push("DataSetClass", get_sdmx_class(f"{QName(elem).localname}Set")) + reader.push("DataSetClass", model.get_class(f"{QName(elem).localname}Set")) # Instantiate the message object - cls = MESSAGE[QName(elem).localname] + cls = class_for_tag(elem.tag) return cls() @@ -577,7 +543,7 @@ def _header(reader, elem): header = message.Header( id=reader.pop_single("ID") or None, prepared=reader.pop_single("Prepared") or None, - receiver=reader.pop_single("Receiver"), + receiver=reader.pop_single("Receiver") or None, sender=reader.pop_single("Sender") or None, test=str(reader.pop_single("Test")).lower() == "true", ) @@ -593,7 +559,7 @@ def _header(reader, elem): @end("mes:Receiver mes:Sender") def _header_org(reader, elem): - reader.push(elem, reader.nameable(get_sdmx_class(elem), elem)) + reader.push(elem, reader.nameable(class_for_tag(elem.tag), elem)) @end("mes:Structure", only=False) @@ -610,6 +576,7 @@ def _header_structure(reader, elem): # Resolve the child to a DSD, maybe is_external_reference=True header_dsd = reader.pop_resolved_ref("Structure") + # Resolve the child, if any, and remove it from the stack header_su = reader.pop_resolved_ref("StructureUsage") reader.pop_single(model.StructureUsage) @@ -694,22 +661,19 @@ def _structures(reader, elem): # Populate dictionaries by ID for attr, name in ( - ("dataflow", model.DataflowDefinition), - ("codelist", model.Codelist), - ("constraint", model.ContentConstraint), - ("structure", model.DataStructureDefinition), + ("categorisation", model.Categorisation), ("category_scheme", model.CategoryScheme), + ("codelist", model.Codelist), ("concept_scheme", model.ConceptScheme), + ("constraint", model.ContentConstraint), + ("dataflow", model.DataflowDefinition), ("organisation_scheme", model.OrganisationScheme), ("provisionagreement", model.ProvisionAgreement), + ("structure", model.DataStructureDefinition), ): for obj in reader.pop_all(name): getattr(msg, attr)[obj.id] = obj - # Check, but do not store, categorizations - for c in reader.pop_all(model.Categorisation): - log.info(" ".join(map(repr, [c, c.artefact, c.category]))) - # Parsers for sdmx.model classes # §3.2: Base structures @@ -740,17 +704,12 @@ def _localization(reader, elem): "str:Target str:Enumeration" ) def _ref(reader, elem): - localname = QName(elem).localname - - # Certain XML elements always point to certain classes - cls_hint = { - "AttachmentGroup": "GroupDimensionDescriptor", - "DimensionReference": "Dimension", - "Parent": QName(elem.getparent()).localname, - "Structure": "DataStructureDefinition", - }.get(localname, None) + cls_hint = None + if "Parent" in elem.tag: + # Use the *grand*-parent of the or for a class hint + cls_hint = class_for_tag(elem.getparent().tag) - reader.push(localname, Reference(elem, cls_hint)) + reader.push(QName(elem).localname, Reference(elem, cls_hint)) @end("com:Annotation") @@ -773,16 +732,21 @@ def _a(reader, elem): # §3.5: Item Scheme -@start("str:Agency str:Code str:Category str:DataProvider", only=False) +@start("str:Agency str:Code str:Category str:Concept str:DataProvider", only=False) def _item_start(reader, elem): + # Avoid stealing the name & description of the parent ItemScheme from the stack + # TODO check this works for annotations + try: - if not (elem[0].tag in ("Ref", "URN")): - # Avoid stealing the name(s) of the parent ItemScheme from the stack - # TODO check this works for annotations - reader.stash("Name") + if elem[0].tag in ("Ref", "URN"): + # `elem` is a reference, so it has no name/etc.; don't stash + return except IndexError: + # No child elements; stash() anyway, but it will be a no-op pass + reader.stash("Name", "Description") + @end("str:Agency str:Code str:Category str:DataProvider", only=False) def _item(reader, elem): @@ -792,7 +756,7 @@ def _item(reader, elem): except NotReference: pass - cls = get_sdmx_class(elem) + cls = class_for_tag(elem.tag) item = reader.nameable(cls, elem) # Hierarchy is stored in two ways @@ -824,13 +788,13 @@ def _item(reader, elem): "str:DataProviderScheme", ) def _itemscheme(reader, elem): - cls = get_sdmx_class(elem) + cls = class_for_tag(elem.tag) # Iterate over all Item objects *and* their children iter_all = chain(*[iter(item) for item in reader.pop_all(cls._Item)]) # Set of objects already added to `items` seen = dict() - # Flatten the list + # Flatten the list, with each item appearing only once items = [seen.setdefault(i, i) for i in iter_all if i not in seen] return reader.maintainable(cls, elem, items=items) @@ -870,7 +834,7 @@ def _rep(reader, elem): # §4.4: Concept Scheme -@end("str:Concept", only=True) +@end("str:Concept", only=False) def _concept(reader, elem): concept = _item(reader, elem) concept.core_representation = reader.pop_single(model.Representation) @@ -892,7 +856,7 @@ def _component(reader, elem): pass # Object class: {,Measure,Time}Dimension or DataAttribute - cls = get_sdmx_class(elem) + cls = class_for_tag(elem.tag) args = dict( concept_identity=reader.pop_resolved_ref("ConceptIdentity"), @@ -916,7 +880,7 @@ def _component(reader, elem): def _cl(reader, elem): try: # may be a reference - return Reference(elem, cls_hint="GroupDimensionDescriptor") + return Reference(elem, cls_hint=model.GroupDimensionDescriptor) except NotReference: pass @@ -930,19 +894,21 @@ def _cl(reader, elem): # Determine the class localname = QName(elem).localname if localname == "Group": - cls_name = "GroupDimensionDescriptor" + cls = model.GroupDimensionDescriptor + + # Replace components with references + args["components"] = [ + dsd.dimensions.get(ref.target_id) + for ref in reader.pop_all("DimensionReference") + ] else: # SDMX-ML spec for, e.g. DimensionList: "The id attribute is # provided in this case for completeness. However, its value is # fixed to 'DimensionDescriptor'." - cls_name = elem.attrib.get("id", localname.replace("List", "Descriptor")) - args["id"] = cls_name - - # GroupDimensionDescriptor only - for ref in reader.pop_all("DimensionReference"): - args["components"].append(dsd.dimensions.get(ref.target_id)) + cls = class_for_tag(elem.tag) + args["id"] = elem.attrib.get("id", cls.__name__) - cl = reader.identifiable(get_sdmx_class(cls_name), elem, **args) + cl = reader.identifiable(cls, elem, **args) try: # DimensionDescriptor only @@ -1184,7 +1150,7 @@ def _avs(reader, elem): @end("gen:ObsKey gen:GroupKey gen:SeriesKey") def _key(reader, elem): - cls = get_sdmx_class(elem) + cls = class_for_tag(elem.tag) kv = {e.attrib["id"]: e.attrib["value"] for e in elem.iterchildren()} @@ -1298,16 +1264,17 @@ def _obs_ss(reader, elem): @start("mes:DataSet", only=False) def _ds_start(reader, elem): + # Create an instance of a DataSet subclass ds = reader.peek("DataSetClass")() # Store a reference to the DSD that structures the data set id = elem.attrib.get("structureRef", None) or elem.attrib.get( qname("data:structureRef"), None ) - if id: - ds.structured_by = reader.get_single(id) - else: - log.info("No DSD when creating DataSet {reader.stack}") + ds.structured_by = reader.get_single(id) + + if not ds.structured_by: # pragma: no cover + raise RuntimeError("No DSD when creating DataSet") reader.push("DataSet", ds) diff --git a/sdmx/tests/data/ECB_EXR/1/structure-full.xml b/sdmx/tests/data/ECB_EXR/1/structure-full.xml index 3f8201963..e5d6ff691 100644 --- a/sdmx/tests/data/ECB_EXR/1/structure-full.xml +++ b/sdmx/tests/data/ECB_EXR/1/structure-full.xml @@ -1 +1,7389 @@ -IDREF282261false2018-06-01T20:08:17SDMX Agency SchemeSDMXEuropean Central BankInternational Monetary FundEurostatEurostatBank for International SettlementsOrganisation for Economic Co-operation and DevelopmentExchange RatesCategorise: DATAFLOWECB:EXR(1.0)Collection indicator code listAverage of observations through periodBeginning of periodEnd of periodHighest in periodLowest in periodMiddle of periodSummed through periodUnknownOtherAnnualised summedCurrency code listAll currenciesNot specifiedNot applicableAndorran Franc (1-1 peg to the French franc)Andorran Peseta (1-1 peg to the Spanish peseta)United Arab Emirates dirhamAfghanistan afghani (old)Afghanistan, AfghanisAlbanian lekArmenian dramNetherlands Antillean guilderAngola, KwanzaAngolan kwanza (old)Angolan kwanza readjustadoArgentine pesoAustrian schillingAustralian dollarAruban florin/guilderAzerbaijanian manat (old)Azerbaijan, manatsBosnia-Hezergovinian convertible markBarbados dollarBangladesh takaBelgian francBelgian franc (financial)Bulgarian lev (old)Bulgarian levBahraini dinarBurundi francBermudian dollarBrunei dollarBolivian bolivianoMvdolBrasilian cruzeiro (old)Brazilian realBahamas dollarBitcoinBhutan ngultrumBotswana pulaBelarussian rouble (old)Belarusian rubleBelarusian ruble (old)Belize dollarEuropean Commission IC-36 group of currencies (European Union 27 Member States, i.e. BE, DE, EE, GR, ES, FR, IE, IT, CY, LU, NL, MT, AT, PT, SI, SK, FI, BG, CZ, DK, LV, LT, HU, PL, RO, SE, GB, and US, AU, CA, JP, MX, NZ, NO, CH, TR)Canadian dollarCongo franc (ex Zaire)WIR EuroSwiss francWIR FrancChile Unidades de fomentoChilean pesoChinese yuan offshoreChinese yuan renminbiColombian pesoUnidad de Valor RealCosta Rican colonSerbian dinarCuban convertible pesoCuban pesoCape Verde escudoCyprus poundCzech korunaGerman markDjibouti francDanish kroneDominican pesoAlgerian dinarEuro area changing composition and the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US)Euro area-18 countries and the EER-20 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LT, HU, PL, RO, HR and CN)Euro area-18 countries and the EER-19 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LT, HU, PL, RO, and CN)Euro area-18 countries and the EER-39 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LT, HU, PL, RO, CN, DZ, AR, BR, CL, HR, IS, IN, ID, IL, MY, MX, MA, NZ, PH, RU, ZA, TW, TH, TR and VE)Euro area-18 countries and the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US)Euro area-19 countries and the EER-19 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, HU, PL, RO, HR and CN)Euro area-19 countries and the EER-18 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, HU, PL, RO, and CN)Euro area-19 countries and the EER-38 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, HU, PL, RO, CN, DZ, AR, BR, CL, HR, IS, IN, ID, IL, MY, MX, MA, NZ, PH, RU, ZA, TW, TH, TR and VE)Euro area-19 countries and the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US)Ecuador sucreEstonian kroonEgyptian poundErytrean nafkaSpanish pesetaEthiopian birrEuroFinnish markkaFiji dollarFalkland Islands poundFrench francUK pound sterlingGeorgian lariGuernsey, PoundsGhana Cedi (old)Ghana CediGibraltar poundGambian dalasiGuinea francGreek drachmaGuatemalan quetzalGuinea-Bissau peso (old)Guyanan dollarEuro area 18 currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LV, MT, SK)ECB EER-38 group of currencies and Euro area (latest composition) currencies (FR,BE,LU,NL,DE,IT,IE,PT,ES,FI,AT,GR,SI,AU,CA,CN,DK,HK,JP,NO,SG,KR,SE,CH,GB,US,CY,CZ,EE,HU,LV,LT,MT,PL,SK,BG,RO,NZ,DZ,AR,BR,HR,IN,ID,IL,MY,MX,MA,PH,RU,ZA,TW,TH,TR,IS,CL,VE)ECB EER-19 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR)ECB EER-12 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LV, MT, SK, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US)ECB EER-19 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO)European Commission IC-36 group of currencies (European Union 27 Member States, i.e. BE, DE, EE, GR, ES, FR, IE, IT, CY, LU, NL, MT, AT, PT, SI, SK, FI, BG, CZ, DK, LV, LT, HU, PL, RO, SE, GB, and US, AU, CA, JP, MX, NZ, NO, CH, TR)European Commission IC-37 group of currencies (European Union 28 Member States, i.e. BE, DE, EE, GR, ES, FR, IE, IT, CY, LU, NL, MT, AT, PT, SI, SK, FI, BG, CZ, DK, HR, LV, LT, HU, PL, RO, SE, GB, and US, AU, CA, JP, MX, NZ, NO, CH, TR)ECB EER-39 group of currencies and Euro area (latest composition) currencies (FR,BE,LU,NL,DE,IT,IE,PT,ES,FI,AT,GR,SI,AU,CA,CN,DK,HK,JP,NO,SG,KR,SE,CH,GB,US,CY,CZ,EE,HU,LV,LT,MT,PL,SK,BG,RO,NZ,DZ,AR,BR,HR,IN,ID,IL,MY,MX,MA,PH,RU,ZA,TW,TH,TR,IS,CL,VE)European Commission IC-42 group of currencies (European Union 28 Member States, i.e. BE,DE,EE,GR,ES,FR,IE,IT,CY,LU,NL,MT,AT,PT,SI,SK,FI,BG,CZ,DK,HR,LV,LT,HU,PL,RO,SE,GB, and US,AU,CA,JP,MX,NZ,NO,CH,TR,KR,CN,HK,RU,BR)ECB EER-20 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR)ECB EER-12 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR, TR and RU)Euro area 19 currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LT, LV, MT, SK)ECB EER-12 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LT, LV, MT, SK, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US)ECB EER-18 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO)Hong Kong dollarHong Kong dollar (old)Honduran lempiraCroatian kunaHaitian gourdeHungarian forintIndonesian rupiahIrish poundIsraeli shekelIsle of Man, PoundsIndian rupeeIraqi dinarIranian rialIceland kronaItalian liraJersey, PoundsJamaican dollarJordanian dinarJapanese yenKenyan shillingKyrgyzstan somKampuchean real (Cambodian)Comoros francKorean won (North)Korean won (Republic)Kuwait dinarCayman Islands dollarKazakstan tengeLao kipLebanese poundSri Lanka rupeeLiberian dollarLesotho lotiLithuanian litasLuxembourg francLatvian latsLibyan dinarMoroccan dirhamMoldovian leuMadagascar, AriaryMalagasy francMacedonian denarMyanmar kyatMongolian tugrikMacau patacaMauritanian ouguiyaMauritania ouguiyaMaltese liraMauritius rupeeMaldive rufiyaaMalawi kwachaMexican pesoMexican peso (old)Mexican Unidad de Inversion (UDI)Malaysian ringgitMozambique metical (old)Mozambique, MeticaisNamibian dollarNigerian nairaNicaraguan cordobaNetherlands guilderNorwegian kroneNepaleese rupeeNew Zealand dollarOman Sul rialPanama balboaPeru nuevo solPapua New Guinea kinaPhilippine pisoPakistan rupeePolish zlotyPolish zloty (old)Portuguese escudoParaguay guaraniQatari rialRomanian leu (old)Romanian leuSerbian dinarRussian roubleRussian ruble (old)Rwanda francSaudi riyalSolomon Islands dollarSeychelles rupeeSudanese dinarSudan, DinarsSudanese pound (old)Swedish kronaSingapore dollarSt. Helena poundSlovenian tolarSlovak korunaSierra Leone leoneSomali shillingSeborga, LuiginiSuriname, DollarsSuriname guilderSouth sudanese poundSao Tome and Principe dobraDobraEl Salvador colonSyrian poundSwaziland lilangeniThai bahtTajikistan roubleTajikistan, SomoniTurkmenistan manat (old)Turkmenistan manatTunisian dinarTongan paangaEast Timor escudoTurkish lira (old)Turkish liraTrinidad and Tobago dollarTuvalu, Tuvalu DollarsNew Taiwan dollarTanzania shillingEuro and domestic currencyUkraine hryvniaUganda ShillingUS dollarUS Dollar (Next day)Uruguay Peso en Unidades IndexadasUruguayan pesoUzbekistan sumVenezuelan bolivar (old)Venezuelan bolivarVietnamese dongVanuatu vatuSamoan talaAll currencies except national currencyAll currencies except USDAll currencies except EURAll currencies except EUR, USDAll currencies except EUR, JPY, USDAll currencies except EUR, CHF, GBP, JPY, USDAll currencies except EUR, USD, JPY, GBP, CHF, domestic currencyCFA franc / BEACSilverGoldEuropean composite unitEuropean Monetary unit EC-6European Unit of Account 9 (E.U.A.-9)European Unit of Account 17 (E.U.A.-17)Eastern Caribbean dollarCurrencies included in the SDR basket, gold and SDRsDomestic currency (incl. conversion to current currency made using a fixed parity)Domestic currency (incl. conversion to current currency made using market exchange rate)Domestic currency (currency previously used by a country before joining a Monetary Union)Other currencies not included in the SDR basket, excluding gold and SDRsSpecial Drawing Rights (SDR)European Currency Unit (E.C.U.)Gold-FrancUIC-FrancGold fine troy ouncesEuro area non-participating foreign currencyCFA franc / BCEAOEuro area participating foreign currencyPalladium OuncesPacific francPlatinum, OuncesRhodiumSucreCodes specifically reserved for testing purposesADB Unit of AccountTransactions where no currency is involvedYemeni rialYugoslav dinarAll currencies combinedEuro and euro area national currenciesOther EU currencies combinedOther currencies than EU combinedAll currencies other than EU, EUR, USD, CHF, JPYNon-Euro and non-euro area currencies combinedAll currencies other than domestic, Euro and euro area currenciesECB EER-12 group of currencies (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US), changing composition of the euro areaEER broad group of currencies including also Greece until 01 january 2001Not applicableEER-12 group of currencies (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US)EER broad group of currencies (excluding Greece)Euro and Euro Area countries currencies (including Greece)Other EU currencies combined (MU12; excluding GRD)Other currencies than EU15 and EUR combinedAll currencies other than EU15, EUR, USD, CHF, JPYNon-MU12 currencies combinedECB EER-12 group of currencies and Euro Area countries currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US)ECB EER broad group of currencies and Euro Area countries currenciesECB EER-12 group of currencies and Euro area 11 countries currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US)ECB EER-12 group of currencies (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US) - Euro area 15ECB EER broad group, regional breakdown, industrialised countriesECB EER broad group, regional breakdown, non-Japan AsiaECB EER broad group, regional breakdown, Latin AmericaECB EER broad group, regional breakdown, Central and Eastern Europe (CEEC)ECB EER broad group, regional breakdown, other countriesEuro area 15 countries currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, MT and CY)ECB EER-12 group of currencies and Euro area 15 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US)Euro area-16 countries (BE, DE, IE, GR, ES, FR, IT, CY, LU, MT, NL, AT, PT, SI, SK and FI)Euro area-16 countries vis-a-vis the EER-12 group of trading partners and other euro area countries (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BE, DE, IE, GR, ES, FR, IT, CY, LU, MT, NL, AT, PT, SI, SK and FI)EER-23 group of currencies (CZ, CY, DK, EE, LV, LT, HU, MT, PL, SI, SK, SE, GB, AU, CA, CN, HK, JP, NO, SG, KR, CH, US)EER-42 group of currencies (CZ, CY, DK, EE, LV, LT, HU, MT, PL, SI, SK, SE, GB, AU, CA, CN, HK, JP, NO, SG, KR, CH, US, DZ, AR, BR, BG, HR, IN, ID, IL, MY, MX, MA, NZ, PH, RO, RU, ZA, TW, TH, TR)Euro area-17 countries (BE, DE, EE, IE, GR, ES, FR, IT, CY, LU, MT, NL, AT, PT, SI, SK and FI)Euro area-17 countries vis-a-vis the EER-12 group of trading partners and other euro area countries (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BE, DE, EE, IE, GR, ES, FR, IT, CY, LU, MT, NL, AT, PT, SI, SK and FI)ECB EER-23 group of currencies and Euro Area countries currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, CZ, CY, DK, EE, LV, LT, HU, MT, PL, SI, SK, SE, GB, AU, CA, CN, HK, JP, NO, SG, KR, CH, US)ECB EER-42 group of currencies and Euro Area countries currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, CZ, CY, DK, EE, LV, LT, HU, MT, PL, SI, SK, SE, GB, AU, CA, CN, HK, JP, NO, SG, KR, CH, US, DZ, AR, BR, BG, HR, IN, ID, IL, MY, MX, MA, NZ, PH, RO, RU, ZA, TW, TH, TR)ECB EER-12 group of currencies (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US)All currencies other than domesticAll currencies other than EUR, USD, GBP, CHF, JPY and domesticOther currencies than EU15, EUR and domesticAll currencies other than EU15, EUR, USD, CHF, JPY and domesticAll currencies other than EUR, USD, GBP and JPYECB EER-24 group of currencies (AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO)ECB EER-44 group of currencies (AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, NZ, DZ, AR, BR, HR, IN, ID, IL, MY, MX, MA, PH, RU, ZA, TW, TH, TR, IS, CL, VE)Euro and Euro area 13 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI)Non-euro area 13 currencies combined (all currencies other than those related to FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI)ECB EER-22 group of currencies (AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US,CZ, EE, HU, LV, LT, PL, SK, BG, RO) - Euro area 15ECB EER-42 group of currencies (AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CZ, EE, HU, LV, LT, PL, SK, BG, RO, NZ, DZ, AR, BR, HR, IN, ID, IL, MY, MX, MA, PH, RU, ZA, TW, TH, TR, IS, CL, VE) - Euro area 15ECB EER-12 group of currencies and Euro area country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US)ECB EER-20 group of currencies and Euro area 17 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO)ECB EER-40 group of currencies and Euro area 17 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, NZ, DZ, AR, BR, HR, IN, ID, IL, MY, MX, MA, PH, RU, ZA, TW, TH, TR, IS, CL, VE)Euro area-16 countries vis-a-vis the EER-21 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, EE, LV, LT, HU, PL, RO and CN)Euro area-16 countries vis-a-vis the EER-41 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, EE, LV, LT, HU, PL, RO, CN, DZ, AR, BR, CL, HR, IS, IN, ID, IL, MY, MX, MA, NZ, PH, RU, ZA, TW, TH, TR and VE)ECB EER-21 group of currencies and Euro area 17 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR)Euro and Euro area 15 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT)Non-euro area 15 currencies combined (all currencies other than those related to FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT)Euro area-17 countries vis-a-vis the EER-20 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LV, LT, HU, PL, RO and CN)Euro area-17 countries vis-a-vis the EER-40 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LV, LT, HU, PL, RO, CN, DZ, AR, BR, CL, HR, IS, IN, ID, IL, MY, MX, MA, NZ, PH, RU, ZA, TW, TH, TR and VE)Euro area-17 countries vis-a-vis the EER-21 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LV, LT, HU, PL, RO, HR and CN)Euro area-16 countries vis-a-vis the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US)Euro area-17 countries vis-a-vis the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US)Euro area-17 countries vis-a-vis the EER-23 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LV, LT, HU, PL, RO, HR, TR, RU and CN)ECB EER-23 group of currencies and Euro area 17 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR, TR and RU)Euro and Euro area 16 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT, SK)Non-euro area 16 currencies combined (all currencies other than those related to FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT, SK)Euro and Euro area 17 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT, SK, EE)Non-euro area 17 currencies combined (all currencies other than those related to FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT, SK, EE)South African randZambian kwachaNew zambian kwachaZimbabwe dollarFourth Zimbabwe dollarZimbabwe, Zimbabwe DollarsThird Zimbabwe dollarDecimals code listZeroOneTenElevenTwelveThirteenFourteenFifteenTwoThreeFourFiveSixSevenEightNineExch. rate series variation code listAverageEnd-of-periodGrowth rate to previous periodAnnual rate of changePercentage change since December 1998 (1998Q4 for quarterly data)3-year percentage changeExchange rate type code listReal bilateral exchange rate, CPI deflatedCentral rateReal effective exch. rate deflator based on CPIReal effective exch. rate deflator based on retail pricesReal effective exch. rate deflator based on GDP deflatorReal effective exch. rate deflator based on import unit valuesReal effective exch. rate deflator based on producer pricesReal effective exch. rate deflator based on ULC manufacturingReal effective exch. rate deflator based on ULC total economyReal effective exch. rate deflator based on wholesale pricesReal effective exch. rate deflator based on export unit valuesNominal effective exch. rateConstant (real) exchange rateReal effective exch. rate CPI deflatedReal effective exch. rate retail prices deflatedReal effective exch. rate GDP deflators deflatedReal effective exch. rate import unit values deflatedReal effective exch. rate producer prices deflatedReal effective exch. rate ULC manufacturing deflatedReal effective exch. rate ULC total economy deflatedReal effective exch. rate wholesale prices deflatedReal effective exch. rate export unit values deflated1m-forward3m-forward6m-forward12m-forwardIndicative rateNominal harmonised competitiveness indicator (ECB terminology), Nominal effective exchange rate (EC terminology)Real harmonised competitiveness indicator CPI deflated (ECB terminology), Real effective exchange rate (EC terminology)Real harmonised competitiveness indicator GDP deflators deflatedReal harmonised competitiveness indicator Producer Prices deflatedReal harmonised competitiveness indicator ULC manufacturing deflatedReal harmonised competitiveness indicator ULC in total economy deflatedOfficial fixingReference rateSpotFrequency code listAnnualBusinessDailyEvent (not supported)Half-yearlyMonthlyMinutelyQuarterlyHalf Yearly, semester (value H exists but change to S in 2009, move from H to this new value to be agreed in ESCB context)WeeklyObservation confidentiality code listPrimary confidentiality due to small countsConfidential statistical informationSecondary confidentiality set by the sender, not for publicationFreePrimary confidentiality due to dominance by one or two unitsPrimary confidentiality due to data declared confidential based on other measures of concentrationNot for publication, restricted for internal use onlyPrimary confidentiality due to dominance by one unitPrimary confidentiality due to dominance by two unitsObservation status code listNormal valueTime series breakDefinition differsEstimated valueForecast valueExperimental valueMissing value; holiday or weekendImputed value (CCSA definition)DerogationMissing value; data exist but were not collectedMissing value; data cannot existNot significantProvisional valueMissing value; suppressedStrike and any special eventsLow reliabilityUnvalidated valueOrganisation code listInternational organisationsUN organisationsInternational Monetary Fund (IMF)World Trade OrganisationInternational Bank for Reconstruction and DevelopmentInternational Development AssociationOther UN Organisations (includes 1H, 1J-1T)UNESCO (United Nations Educational, Scientific and Cultural Organisation)FAO (Food and Agriculture Organisation)WHO (World Health Organisation)IFAD (International Fund for Agricultural Development)IFC (International Finance Corporation)MIGA (Multilateral Investment Guarantee Agency)UNICEF (United Nations Children Fund)UNHCR (United Nations High Commissioner for Refugees)UNRWA (United Nations Relief and Works Agency for Palestine)IAEA (International Atomic Energy Agency)ILO (International Labour Organisation)ITU (International Telecommunication Union)UNECE (United Nations Economic Commission for Europe)Universal Postal UnionWorld BankRest of UN Organisations n.i.e.European Community Institutions, Organs and OrganismsEMS (European Monetary System)European Investment BankStatistical Office of the European Commission (Eurostat)European Commission (including Eurostat)European Development FundEuropean Central Bank (ECB)DG-E, ECB Survey of Professional Forecasters (SPF)EIF (European Investment Fund)European Community of Steel and CoalNeighbourhood Investment FacilityOther EC Institutions, Organs and Organisms covered by General budgetEuropean ParliamentCouncil of the European UnionCourt of JusticeCourt of AuditorsEuropean CouncilEconomic and Social CommitteeCommittee of RegionsOther European Community Institutions, Organs and OrganismsAgency for the Cooperation of Energy RegulatorsEuropean Centre for Disease Prevention and ControlEuropean Centre for the Development of Vocational TrainingEuropean Chemicals AgencyEuropean Data Protection SupervisorEuropean Defence AgencyEuropean Environment AgencyEuropean External Action ServiceEuropean Fisheries Control AgencyEuropean Food Safety AuthorityEuropean Foundation for the Improvement of Living and Working ConditionsBody of European Regulators for Electronic CommunicationsEuropean GNSS AgencyEuropean Institute for Gender EqualityEuropean Institute of Innovation and TechnologyEuropean Maritime Safety AgencyEuropean Medicines AgencyEuropean Monitoring Centre for Drugs and Drug AddictionEuropean Network and Information Security AgencyEuropean OmbudsmanEuropean Personnel Selection OfficeEuropean Police CollegeCommunity Plant Variety OfficeEuropean Police OfficeEuropean Public Prosecutor`s Office (in preparation)European Railway AgencyEuropean School of AdministrationEuropean Training FoundationEuropean Union Agency for Fundamental RightsEuropean Union Institute for Security StudiesEuropean Union Intellectual Property OfficeEuropean Union Satellite CentrePublications Office of the European UnionComputer Emergency Response TeamThe European Union` s Judicial Cooperation UnitTranslation Centre for the Bodies of the European UnionATHENA MechanismEuropean Agency for Safety and Health at WorkEuropean Agency for the Management of Operational Cooperation at the External BordersEuropean Agency for the operational management of large-scale IT systems in the area of freedom, security and justiceEuropean Asylum Support OfficeEuropean Aviation Safety AgencySRB (Single Resolution Board)European Stability Mechanism (ESM)Joint Committee of the European Supervisory Authorities (ESAs)European Banking Agency (EBA, European Supervisory Authority)EBA (European Banking Authority)European Insurance and Occupational Pensions Authority (EIOPA, European Supervisory Authority)ESMA (European Securities and Markets Authority)European Securities and Markets Agency (ESMA, European Supervisory Authority)EIOPA (European Insurance and Occupational Pensions Authority)FEMIP (Facility for Euro-Mediterranean Investment and Partnership)All the European Union Institutions including the ECB and ESMOther European Community Institutions, Organs and OrganismsOrganisation for Economic Cooperation and Development (OECD)Bank for International Settlements (BIS)Inter-American Development BankAfrican Development BankAsian Development BankEuropean Bank for Reconstruction and DevelopmentIIC (Inter-American Investment Corporation)NIB (Nordic Investment Bank)Eastern Caribbean Central Bank (ECCB)IBEC (International Bank for Economic Co-operation)IIB (International Investment Bank)CDB (Caribbean Development Bank)AMF (Arab Monetary Fund)BADEA (Banque arabe pour le developpement economique en Afrique)Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO)CASDB (Central African States Development Bank)African Development FundAsian Development FundFonds special unifie de developpementCABEI (Central American Bank for Economic Integration)ADC (Andean Development Corporation)Other International Organisations (financial institutions)Banque des Etats de l`Afrique Centrale (BEAC)Communaute economique et Monetaire de l`Afrique Centrale (CEMAC)Eastern Caribbean Currency Union (ECCU)Other International Financial Organisations n.i.e.Africa Finance CorporationInternational Civil Aviation OrganisationInternational Cocoa OrganisationInternational Coffee OrganisationInternational Copper Study GroupInternational Cotton Advisory CommitteeInternational Grains CouncilInternational Jute Study GroupInternational Lead and Zinc Study GroupInternational Maritime OrganisationInternational Maritime Satellite OrganisationAfrican Development Bank GroupInternational Olive Oil CouncilInternational Rubber Study GroupInternational Sugar OrganisationLatin American and the Caribbean Economic SystemLatin American Energy OrganisationLatin American Integration AssociationLeague of Arab StatesOrganisation of Eastern Caribbean StatesOrganisation of American StatesOrganisation of Arab Petroleum Exporting CountriesArab Fund for Economic and Social DevelopmentOrganisation of Central American StatesOrganisation of the Petroleum Exporting CountriesSouth Asian Association for Regional CooperationUnited Nations Conference on Trade and DevelopmentWest African Economic CommunityWest African Health OrganisationWest African Monetary AgencyWest African Monetary InstituteWorld Council of ChurchesAsian Clearing UnionWorld Intellectual Property OrganisationWorld Meteorological OrganisationWorld Tourism OrganisationColombo PlanEconomic Community of West African StatesEuropean Free Trade AssociationFusion for EnergyIntergovernmental Council of Copper Exporting CountriesOther International Organisations (non-financial institutions)African UnionAssociation of Southeast Asian NationsCaribbean Community and Common MarketCentral American Common MarketEast African Development BankECOWAS Bank for Investment and DevelopmentLatin American Association of Development Financing InstitutionsOPEC Fund for International DevelopmentNATO (North Atlantic Treaty Organisation)Council of EuropeICRC (International Committee of the Red Cross)ESA (European Space Agency)EPO (European Patent Office)EUROCONTROL (European Organisation for the Safety of Air Navigation)EUTELSAT (European Telecommunications Satellite Organisation)EMBL (European Molecular Biology Laboratory)INTELSAT (International Telecommunications Satellite Organisation)EBU/UER (European Broadcasting Union/Union europeenne de radio-television)EUMETSAT (European Organisation for the Exploitation of Meteorological Satellites)ESO (European Southern Observatory)ECMWF (European Centre for Medium-Range Weather Forecasts)Organisation for Economic Cooperation and Development (OECD)CERN (European Organisation for Nuclear Research)IOM (International Organisation for Migration)Islamic Development Bank (IDB)Eurasian Development Bank (EDB)Paris Club Creditor InstitutionsOther International Non-Financial Organisations n.i.e.WAEMU (West African Economic and Monetary Union)IDB (Islamic Development Bank)EDB (Eurasian Development Bank )Paris Club Creditor InstitutionsCEB (Council of Europe Development Bank)International Union of Credit and Investment InsurersBlack Sea Trade and Development BanksAFREXIMBANK (African Export-Import Bank)BLADEX (Banco Latino Americano De Comercio Exterior)FLAR (Fondo Latino Americano de Reservas)Fonds Belgo-Congolais d Amortissement et de GestionIFFIm (International finance Facility for Immunisation)EUROFIMA (European Company for the Financing of Railroad Rolling Stock)Development Bank of Latin America (Banco de Desarrollo de America Latina)The Eastern and Southern African Trade and Development BankInternational Organisations excl. European Community Institutions (4A)International Union of Credit and Investment InsurersInternational Organisations excl. European Community Institutions (4Y)Andorra Finance instituteCentral Statistical Organization, part of the Ministry of Economy and Planning (United Arab Emirates)Central Bank of the United Arab EmiratesMinistry of Finance and Industry (United Arab Emirates)Da Afghanistan BankMinistry of Finance (Afghanistan, Islamic State of)Eastern Caribbean Central Bank (ECCB) (Antigua and Barbuda)Ministry of Finance (Antigua and Barbuda)Central Statistical Office (Anguilla)Ministry of Finance (Anguilla)Other competent National Authority (Anguilla)Institution of Statistics (Albania)Bank of AlbaniaMinistere des Finances (Albania)State National Statistics Service (Armenia)Central Bank of ArmeniaMinistry of Finance and Economy (Armenia)Other competent National Authority (Armenia, Republic of)Central Bureau of Statistics (Netherlands Antilles)Bank of the Netherlands AntillesOther competent National Authority (Netherlands Antilles)National Institute of Statistics (Angola)Banco Nacional de AngolaMinisterio das Financas (Angola)Instituto Nacional de Estadistica y Censos (Argentina)Banco Central de la Republica ArgentinaMinisterio de Economia (Argentina)Other competent National Authority (Argentina)Statistik Osterreich (Austria)Oesterreichische Nationalbank (Austria)FMA (Austria Financial Market Authority)Other competent National Authority (Austria)Australian Bureau of StatisticsReserve Bank of AustraliaAustralian Prudential Regulation AuthorityDepartment of the Treasury (Australia)Other competent National Authority (Australia)Central Bureau of Statistics (Aruba)Centrale Bank van ArubaOther competent National Authority (Aruba)State Statistics Committee of the Azerbaijan RepublicNational Bank of AzerbaijanMinistry of Finance (Azerbaijan)Other competent National Authority (Azerbaijan, Republic of)EU 15 central banksEU 25 central banksEU 27 central banksEU 28 central banksEU27 central banks [fixed composition) as of brexitInstitute of Statistics (Bosnia and Herzegovina)Central Bank of Bosnia and HerzegovinaMinistry of Finance for the Federation of Bosnia and HerzegovinaOther competent National Authority (Bosnia and Herzegovina)Barbados Statistical ServiceCentral Bank of BarbadosMinistry of Finance and Economic Affairs (Barbados)Other competent National Authority (Barbados)Bangladesh Bureau of StatisticsBangladesh BankMinistry of Finance (Bangladesh)Institut National de Statistiques de Belgique (Belgium)Banque Nationale de Belgique (Belgium)Federal Public Service Budget (Belgium)Bureau van DijkOther competent National Authority (Belgium)Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Burkina Faso)Ministere de l`Economie et des Finances (Burkina Faso)National Statistical Institute of BulgariaBulgarian National BankPrime Ministers Office (Bulgaria)Ministry of Finance (Bulgaria)Other competent National Authority (Bulgaria)Directorate of Statistics (Bahrain)Bahrain Monetary AuthorityMinistry of Finance and National Economy (Bahrain)Other competent National Authority (Bahrain, Kingdom of)Banque de la Republique du BurundiMinistere du Plan (Burundi)Ministere des finances (Burundi)Institut National de la Statistique et de l`Analyse Economique (Benin)Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Benin)Ministere des Finances (Benin)Other competent National Authority (Benin)Bermuda Government - Department of StatisticsBermuda Monetary AuthorityOther competent National Authority (Bermuda)Department of Statistics (Brunei Darussalam)Brunei Currency and Monetary Board (BCMB)Department of Economic Planning and Development (DEPD) (Brunei Darussalam)Ministry of Finance (Brunei Darussalam)Other competent National Authority (Brunei Darussalam)Instituto Nacional de Estadistica (Bolivia)Banco Central de BoliviaSecretaria Nacional de Hacienda (Bolivia)Ministerio de Hacienda (Bolivia)Other competent National Authority (Bolivia)Brazilian Institute of Statistics and Geography (IBGE) (Brazil)Banco Central do BrasilMinistry of Industry, Commerce and Tourism, Secretariat of Foreign Commerce (SECEX) (Brazil)Ministerio da Fazenda (Brazil)Department of Statistics (Bahamas)The Central Bank of the BahamasMinistry of Finance (Bahamas)Other competent National Authority (Bahamas, The)Central Statistical Office (Bhutan)Royal Monetary Authority of BhutanMinistry of Finance (Bhutan)Central Statistics Office (Botswana)Bank of BotswanaDepartment of Customs and Excise (Botswana)Ministry of Finance and Development Planning (Botswana)Ministry of Statistics and Analysis of the Republic of BelarusNational Bank of BelarusMinistry of Finance of the Republic of BelarusOther competent National Authority (Belarus)Central Statistical Office (Belize)Central Bank of BelizeMinistry of Foreign Affairs (Belize)Ministry of Finance (Belize)Other competent National Authority (Belize)Central banks of the new EU Member States 2004 (CY,CZ,EE,HU,LV,LT,MT,PL,SK,SI)Statistics CanadaBank of CanadaOther competent National Authority (Canada)Institute National de la Statistique (Congo, Dem. Rep. of)Banque Centrale du Congo (Congo, Dem. Rep. of)Ministry of Finance and Budget (Congo, Dem. Rep. of)National Office of Research and Development (Congo, Dem. Rep. of)Other competent National Authority (Congo, Democratic Republic of)Banque des Etats de l`Afrique Centrale (BEAC) (Central African Republic)Presidence de la Republique (Central African Republic)Ministere des Finances, du Plan et de la Cooperation International (Central African Republic)Centre National de la Statistique et des Etudes Economiques (CNSEE) (Congo, Rep of)Banque des Etats de l`Afrique Centrale (BEAC) (Congo, Rep. of)Ministere de l`economie, des finances et du budget (Congo, Rep of)Other competent National Authority (Congo, Republic of)Swiss Federal Statistical OfficeSchweizerische Nationalbank (Switzerland)Direction generale des douanes (Switzerland)Swiss Federal Finance Administration (Switzerland)Other competent National Authority (Switzerland)Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Cote d`Ivoire)Ministere de l`Economie et des Finances (Cote d`Ivoire)Cook Islands Statistics OfficeCook Islands Ministry of FinanceBanco Central de ChileMinisterio de Hacienda (Chile)Banque des Etats de l`Afrique Centrale (BEAC) (Cameroon)Ministere du Plan et de l`Amenagement du Territoire (Cameroon)Ministere de l`economie et des finances (Cameroon)State National Bureau of Statistics (China, P.R. Mainland)The Peoples Bank of ChinaState Administration of Foreign Exchange (China, P.R. Mainland)Ministry of Finance (China, P.R. Mainland)General Administration of Customs (China, P.R. Mainland)Other competent National Authority (China, P.R., Mainland)Centro Administrativo Nacional (Colombia)Banco de la Republica (Colombia)Ministerio de Hacienda y Credito Publico (Colombia)Other competent National Authority (Colombia)Banco Central de Costa RicaMinisterio de Hacienda (Costa Rica)Federal Statistical Office (Serbia and Montenegro)National Bank of Serbia and MontenegroFederal Ministry of Finance (Serbia and Montenegro)Other competent National Authority (Serbia and Montenegro)Oficina National de Estadisticas (Cuba)Banco Central de CubaOther competent National Authority (Cuba)Instituto Nacional de Estatistica (Cape Verde)Banco de Cabo Verde (Cape Verde)Ministere de la coordination economique (Cape Verde)Ministerio das Financas (Cape Verde)Other competent National Authority (Cape Verde)Central Bureau of Statistics (Curacao)Central Bank of Curacao and Sint MaartenOther competent National Authority (Curacao)Cyprus, Department of Statistics and Research (Ministry of Finance)Central Bank of CyprusMinistry of Finance (Cyprus)Other competent National Authority (Cyprus)Czech Statistical OfficeCzech National BankMinistry of Transport and Communications/Transport Policy (Czech Republic)Ministry of Finance of the Czech RepublicOther competent National Authority (Czech Republic)EU 15 central banksEU 25 central banksCentral banks of the new EU Member States 2004 (CY,CZ,EE,HU,LV,LT,MT,PL,SK,SI)Statistisches Bundesamt (Germany)Deutsche Bundesbank (Germany)Kraftfahrt-Bundesamt (Germany)Bundesministerium der Finanzen (Germany)BAFIN (Germany Federal Financial Supervisory Authority)IFO Institut fur Wirtschaftsforschung (Germany)Zentrum fur Europaische Wirtschaftsforschnung (ZEW, Germany)Other competent National Authority (Germany)Direction Nationale de la Statistique (National Department of Statistics) (Djibouti)Banque Nationale de DjiboutiTresor National (Djibouti)Ministere de l`Economie et des Finances (Djibouti)Danmarks Statistik (Denmark)Danmarks Nationalbank (Denmark)Danish Civil Aviation AdministrationOther competent National Authority (Denmark)Central Statistical Office (Dominica)Eastern Caribbean Central Bank (ECCB) (Dominica)Ministry of Finance (Dominica)Other competent National Authority (Dominica)Banco Central de la Republica DominicanaOffice National des Statistiques (Algeria)Banque d`AlgerieMinistere des Finances (Algeria)Other competent National Authority (Algeria)Instituto Nacional de Estadistica y Censos (Ecuador)Banco Central del EcuadorMinisterio de Finanzas y Credito Publico (Ecuador)Other competent National Authority (Ecuador)Estonia, State Statistical OfficeBank of EstoniaMinistry of Finance (Estonia)Other competent National Authority (Estonia)Central Agency for Public Mobilization and Stats. (Egypt)Central Bank of EgyptMinistry of Finance (Egypt)Other competent National Authority (Egypt)Bank of EritreaMinistry of Finance (Eritrea)Instituto Nacional de Statistica (Spain)Banco de Espana (Spain)Departamento de Aduanas (Spain)Ministerio de Economia y Hacienda (Spain)Ministerio de Industria, Tourismo y Comerco (Spain)Puertos del Estado/Portel SpainMinisterio de Fomento - AENAOther competent National Authority (Spain)National Bank of EthiopiaCustoms and Excise Administration (Ethiopia)Ministry of Finance (Ethiopia)Statistics Finland (Finland)Bank of Finland (Finland)National Board of Customs (Finland)Ministry of Finance ((Finland)Finnish Maritime AdministrationFinavia(Civil Aviation Administration)Other competent National Authority (Finland)Bureau of Statistics (Fiji)Reserve Bank of FijiMinistry of Finance and National Planning (Fiji)Other competent National Authority (Fiji)Office of Planning and Statistics (Micronesia, Federated States of)Federal States of Micronesia Banking Board (Micronesia, Federated States of)Other competent National Authority (Micronesia, Federated States of)Institut National de la Statistique et des Etudes Economiques - INSEE (France)Banque de France (France)Ministere de l Equipement, des Transports et du Logement (France)Ministere de l`Economie et des Finances (France)Direction generale des douanes (France)National Council of Credit (France)DTMPL FranceDGAC(Direction General de l`Aviation Civil)Other competent National Authority (France)Banque des Etats de l`Afrique Centrale (BEAC) (Gabon)Ministere du Plan (Gabon)Ministry of Economy, Finance and Privatization (Gabon)Tresorier-Payeur General du GabonOffice for National Statistics (United Kingdom)Bank of England (United Kingdom)Department of Environment, Transport and the Regions (United Kingdom)Department of Trade and Industry (United Kingdom)Markit (United Kingdom)CAA (Civil Aviation Authority)Other competent National Authority (United Kingdom)Eastern Caribbean Central Bank (ECCB) (Grenada)Ministry of Finance (Grenada)State Department for Statistics of GeorgiaNational Bank of GeorgiaMinistry of Finance (Georgia)Other competent National Authority (Georgia)Institut National de la Statistique et des Etudes Economiques - INSEE - Service regional (Guiana, French)Other competent National Authority (Guiana, French)Financial Services Commission, Guernsey (GG)Ghana Statistical ServiceBank of GhanaMinistry of Finance (Ghana)Other competent National Authority (Ghana)Central Statistics Division (Gambia)Central Bank of The GambiaMinistry of Finance and Economic Affairs (Gambia)Service de la Statistique generale et de la Mecanographie (Guinea)Banque Centrale de la Republique de GuineeMinistere de l`Economie et des Finances (Guinea)Other competent National Authority (Guinea)Institut National de la Statistique et des Etudes Economiques - INSEE -Service regional (Guadeloupe)Other competent National Authority (Guadeloupe)Banque des Etats de l`Afrique Centrale (BEAC) (Equatorial Guinea)Ministerio de Economia y Hacienda (Equatorial Guinea)National Statistical Service of Greece (Greece)Bank of Greece (Greece)Ministry of Economy and Finance (Greece)Civil Aviation AuthorityOther competent National Authority (Greece)Instituto Nacional de Estadistica (Guatemala)Banco de GuatemalaMinisterio de Finanzas Publicas (Guatemala)Other competent National Authority (Guatemala)Guam Bureau of StatisticsBanque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Guinea-Bissau)Ministere de l`Economie et des Finances (Guinea-Bissau)Statistical Bureau / Ministry of Planning (Guyana)Bank of GuyanaMinistry of Finance (Guyana)Other competent National Authority (Guyana)Census and Statistics Department (China, P.R. Hong Kong)Hong Kong Monetary AuthorityFinancial Services and the Treasury Bureau (Treasury) (China, P.R. Hong Kong)Other competent National Authority (Hong Kong)Direccion General de Censos y Estadisticas (Honduras)Banco Central de HondurasMinisterio de Hacienda y Credito Publico (Honduras)Other competent National Authority (Honduras)Central Bureau of Statistics (Croatia)Croatian National BankMinistry of Finance (Croatia)Other competent National Authority (Croatia)Institut Haitien de Statistique et d`Informatique (Haiti)Banque de la Republique dHaitiMinistere de l`Economie et des Finances (Haiti)Other competent National Authority (Haiti)Hungarian Central Statistical OfficeNational Bank of HungaryMinistry of Finance (Hungary)Other competent National Authority (Hungary)Euro area 12 central banksEuro area 13 central banksEuro area 15 central banksEuro area 16 central banksEuro area 17 central banksEuro area 18 central banksEuro area 19 central banksBPS-Statistics IndonesiaBank IndonesiaMinistry of Finance (Indonesia)Other competent National Authority (Indonesia)Central Statistical Office (Ireland)Central Bank of Ireland (Ireland)The Office of the Revenue Commissioners (Ireland)Department of Finance (Ireland)Other competent National Authority (Ireland)Central Bureau of Statistics (Israel)Bank of IsraelOther competent National Authority (Israel)Financial Supervision Commission, Isle of Man (IM)Reserve Bank of IndiaMinistry of Finance (India)Central Bank of IraqMinistry of Finance (Iraq)The Central Bank of the Islamic Republic of IranStatistics IcelandCentral Bank of IcelandCivil Aviation AdministrationOther competent National Authority (Iceland)Instituto Nazionale di Statistica - ISTAT (Italy)Banca d` Italia (Italy)Ufficio Italiano dei Cambi (Italy)Ministerio de Tesore (Italy)Instituto di Studi e Analisi Economica (Italy)Other competent National Authority (Italy)Financial Services Commission, Jersey (JE)Statistical Institute of JamaicaBank of JamaicaMinistry of Finance and Planning (Jamaica)Other competent National Authority (Jamaica)Department of Statistics (Jordon)Central Bank of JordanMinistry of Finance (Jordon)Other competent National Authority (Jordan)Bureau of Statistics (Japan)Bank of JapanMinistry of Finance (Japan)Financial Services Agency (Japan)Central Bureau of Statistics (Kenya)Central Bank of KenyaMinistry of Planning and National Development (Kenya)Office of the Vice President and Ministry of Finance (Kenya)Other competent National Authority (Kenya)National Statistical Committee of Kyrgyz RepublicNational Bank of the Kyrgyz RepublicMinistry of Finance (Kyrgyz Republic)Other competent National Authority (Kyrgyz Republic)National Institute of Statistics (Cambodia)National Bank of CambodiaMinistere de l`economie et des finances (Cambodia)Bank of Kiribati, LtdMinistry of Finance and Economic Planning (Kiribati)Banque Centrale des ComorosMinistere des Finances, du budget et du plan (Comoros)Statistical Office (St. Kitts and Nevis)Eastern Caribbean Central Bank (ECCB) (St. Kitts and Nevis)Ministry of Finance (St. Kitts and Nevis)Korea National Statistical Office (KNSO)The Bank of KoreaEconomic Planning Board (Korea, Republic of)Ministry of Finance and Economy (Korea, Republic of)Statistics and Information Technology Sector (Kuwait)Central Bank of KuwaitMinistry of Finance (Kuwait)Other competent National Authority (Kuwait)Department of Finance and Development / Statistical Office (Cayman Islands)Cayman Islands Monetary AuthorityOther competent National Authority (Cayman Islands)National Statistical Agency / Ministry of Economy and Trade of the Republic of KazakhstanNational Bank of the Republic of KazakhstanMinistry of Finance (Kazakhstan)Other competent National Authority (Kazakhstan)Bank of the Lao P.D.R.Ministry of Finance (Lao Peoples Democratic Republic)Central Administration of Statistics (Lebanon)Banque du Liban (Lebanon)Ministere des finances (Lebanon)Other competent National Authority (Lebanon)Statistical Office (St. Lucia)Eastern Caribbean Central Bank (ECCB) (St. Lucia)Ministry of Finance, International Financial Services and Economic Affairs (St. Lucia)Amt fur VolkswirtschaftOther competent National Authority (Liechtenstein)Central Bank of Sri LankaMinistry of Planning and Economic Affairs (Liberia)Central Bank of LiberiaMinistry of Finance (Liberia)Other competent National Authority (Liberia)Bureau of Statistics (Lesotho)Central Bank of LesothoMinistry of Finance (Lesotho)Lithuania, Department of StatisticsBank of LithuaniaMinistry of Finance (Lithuania)Other competent National Authority (Lithuania)STATEC - Service central de la statistique et des etudes economiques du LuxembourgBanque centrale du LuxembourgCSSF (Luxembourg Financial Sector Surveillance Commission)Other competent National Authority (Luxembourg)Central Statistical Bureau of LatviaBank of LatviaThe Treasury of the Republic of LatviaFCMC (Latvia Financial and Capital Market Commission)Other competent National Authority (Latvia)The National Corporation for Information and Documentation (Libya)Central Bank of LibyaGeneral Peoples Secretariat of the Treasury (Libya)General Directorate for Economic and Social Planning (Libya)The National Corporation for Information and Documentation (Libya)Other competent National Authority (Libya)Ministere de la Prevision Economique et du Plan (Morocco)Bank Al-Maghrib (Morocco)Ministere de l`Economie, des Finances, de la Privatisation et du Tourisme (Morocco)Office des Changes (Morocco)Other competent National Authority (Morocco)Statistical Office (Monaco)Monaco National Central BankOther competent National Authority (Monaco)State Depart. of Statist. of the Rep. of MoldovaNational Bank of MoldovaMinistry of Finance (Moldova)Other competent National Authority (Moldova)Statistical Office (Montenegro)Central Bank of MontenegroINSTAT/Exchanges Commerciaux et des Services (Madagascar)Banque Centrale de MadagascarMinistere des finances de l`Economie (Madagascar)Other competent National Authority (Madagascar)Ministry of Finance (Marshall Islands, Rep)State Statistical Office (Macedonia)National Bank of the Republic of MacedoniaMinistry of Finance (Macedonia)Other competent National Authority (Macedonia, FYR)Direction Nationale de la Statistique et de l`Informatique (DNSI) (Mali)Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Mali)Ministere des Finances et du Commerce (Mali)Other competent National Authority (Mali)Central Statistical Organization (Myanmar)Central Bank of MyanmarMinistry of Finance and Revenue (Myanmar)Other competent National Authority (Myanmar)National Statistical Office (Mongolia)Bank of MongoliaMinistry of Finance and Economy (Mongolia)Other competent National Authority (Mongolia)Statistics and Census Department (China, P.R. Macao)Monetary Authority of Macau (China, P.R. Macao)Revenue Bureau of MacaoDepartamento de Estudos e Planeamento Financeiro (China, P.R. Macao)Other competent National Authority (China,P.R., Macao)Department of Statistics (Martinique)Other competent National Authority (Martinique)Department of Statistics and Economic Studies (Mauritania)Banque Centrale de MauritanieMinistere du Plan (Mauritania)Ministere des Finances (Mauritania)Malta - Central Office of StatisticsCentral Bank of MaltaMinistry of Finance (Malta)MFSA (Malta Financial Services Authority)Malta Maritime AuthorityMalta International AirportOther competent National Authority (Malta)Central Statistical Office (Mauritius)Bank of MauritiusOther competent National Authority (Mauritius)Maldives Monetary Authority (Maldives)Ministry of Planning and Development (Maldives)Ministry of Finance and Treasury (Maldives)National Statistical Office (Malawi)Reserve Bank of MalawiMinistry of Finance (Malawi)Other competent National Authority (Malawi)Instituto Nacional de Estadisticas (INEGI) (Mexico)Banco de MexicoSecretaria de Hacienda y Credito Publico (Mexico)Other competent National Authority (Mexico)Department of Statistics MalaysiaBank Negara MalaysiaOther competent National Authority (Malaysia)Direccao Nacional de Estatistica (Mozambique)Banco de MocambiqueMinistry of Planning and Finance (Mozambique)Other competent National Authority (Mozambique)Central Bureau of Statistics (Namibia)Bank of NamibiaMinistry of Finance (Namibia)Institut Territorial de la Statistique et des Etudes Economiques (New Caledonia)Other competent National Authority (French Territories, New Caledonia)Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Niger)Ministere du Plan (Niger)Ministere des Finances (Niger)Federal Office of Statistics (Nigeria)Central Bank of NigeriaFederal Ministry of Finance (Nigeria)Other competent National Authority (Nigeria)Banco Central de NicaraguaMinisterio de Hacienda y Credito Publico (Nicaragua)Central Bureau voor de Statistiek (Netherlands)Nederlandse Bank (Netherlands)Ministry of Finance (Netherlands)Other competent National Authority (Netherlands)Statistics NorwayNorges Bank (Norway)Avinor (Civil Aviation Administration)Other competent National Authority (Norway)Central Bureau of Statistics (Nepal)Nepal Rastra BankMinistry of Finance (Nepal)Nauru Bureau of Statistics (Nauru)Ministry of Finance (Nauru)Other competent National Authority (Nauru)Statistics Offie NiueStatistics New ZealandReserve Bank of New ZealandOther competent National Authority (New Zealand)Central Bank of OmanMinistry of Finance (Oman)Directorate of Statistics and Census (Panama)Banco Nacional de PanamaOffice of the Controller General (Panama)Superintendencia de Bancos (Panama)Banco Central de Reserva del PeruMinisterio de Economia y Finanzas (Peru)National Statistical Office (Papua New Guinea)Bank of Papua New GuineaOther competent National Authority (Papua New Guinea)Central Bank of the PhilippinesBureau of the Treasury (Philippines)Federal Bureau of Statistics (Pakistan)State Bank of PakistanMinistry of Finance and Revenue (Pakistan)Other competent National Authority (Pakistan)Central Statistical Office of PolandBank of PolandMinistry of Finance (Poland)Other competent National Authority (Poland)Palestinian Central Bureau of StatisticsPalestine Monetary AuthorityOther competent National Authority (West Bank and Gaza)Instituto Nacional de Estatistica (Portugal)Banco de Portugal (Portugal)Direccao Geral do Orcamento (DGO) (Portugal)Ministerio Das Financas (Portugal)Other competent National Authority (Portugal)Statistical office (Palau)Other competent National Authority (Palau)Banco Central del ParaguayMinisterio de Hacienda (Paraguay)Qatar Central BankCustoms Department (Qatar)Ministry of Finance, Economy and Commerce (Qatar)Romania, National Commission for StatisticsNational Bank of RomaniaMinistere des Finances Public (Romania)Other competent National Authority (Romania)Statistical Office of the Republic of SerbiaNational Bank of Serbia (NBS) (Serbia, Rep. of)State Committee of the Russian Federation on StatisticsCentral Bank of Russian FederationState Customs Committee of the Russian FederationMinistry of Finance (Russian Federation)Other competent National Authority (Russian Federation)General Office of Statistics (Rwanda)Banque Nationale Du RwandaMinistere des Finances et Planification Economie (Rwanda)Central Department of Statistics (Saudi Arabia)Saudi Arabian Monetary AgencyMinistry of Finance (Saudi Arabia)Other competent National Authority (Saudi Arabia)Statistical Office (Solomon Islands)Central Bank of Solomon IslandsMinistry of Finance and Treasury (Solomon Islands)Central Bank of SeychellesMinistry of Finance (Seychelles)Ministry of Administration and Manpower, Management and Information Systems Division (Seychelles)Central Bureau of Statistics (Sudan)Bank of SudanMinistry of Finance and National Economy (Sudan)Other competent National Authority (Sudan)Statistics Sweden (Sweden)Sveriges Riksbank (Sweden)Sika Swedish Institute for Transport and Communications AnalysisBanverket (National Rail Administration) SwedenNational Institute of Economic Research (Sweden)Other competent National Authority (Sweden)Ministry of Trade and Industry / Department of Statistics (Singapore)Monetary Authority of SingaporeInternational Enterprise SingaporeMinistry of Finance (Singapore)Other competent National Authority (Singapore)Saint Helena Statistical OfficeStatistical Office of the Republic of SloveniaBank of SloveniaMinistry of Finance (Slovenia)Other competent National Authority (Slovenia)Statistical Office of the Slovak RepublicNational Bank of SlovakiaMinistry of Finance of the Slovak RepublicOther competent National Authority (Slovak Republic)Bank of Sierra LeoneOffice of Economic Planning and Data Processing Center and Statistics (San Marino)Instituto di Credito Sammarinese / Central Bank (San Marino)Ministry of Finance and Budget (San Marino)Direction de la Prevision et de la Statistique (Senegal)Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Senegal)Ministere de l`Economie et des Finances (Senegal)Other competent National Authority (Senegal)Central Bank of SomaliaGeneral Bureau of Statistics (Suriname)Centrale Bank van SurinameMinistry of Finance (Suriname)Other competent National Authority (Suriname)National Bureau of Statistics (South Sudan)Central bank of South SudanOther competent National Authority (South Sudan)Banco Central de Sao Tome e PrincipeMinistry of Planning and Financing (Sao Tome and Principe)Banco Central de Reserva de El SalvadorMinisterio de Hacienda (El Salvador)Bureau for Statistics Sint MaartenOther competent National Authority (Sint Maarten)Central Bureau of Statistics (Syria Arab Rep.)Central Bank of SyriaMinistry of Finance (Syrian Arab Rep.)Other competent National Authority (Syrian Arab Republic)Central Statistical Office (Swaziland)Central Bank of SwazilandMinistry of Finance (Swaziland)Ministry of Finance (Turks and Caicos)Other competent National Authority (Turks and Caicos)Institut de la Statistique (INSDEE) (Chad)Banque des Etats de l`Afrique Centrale (BEAC) (Chad)Ministere des finances (Chad)Other competent National Authority (Chad)Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Togo)Ministere du Plan (Togo)Ministere de l`Economie des Finances (Togo)Bank of ThailandMinistry of Finance (Thailand)National Economic and Social Development Board (Thailand)State Statistical Agency of TajikistanNational Bank of TajikistanMinistry of Finance (Tajikistan)Other competent National Authority (Tajikistan)Statistical Office (Timor Leste)Banco Central de Timor-LesteMinistry of Finance (Timor-Leste)Other competent National Authority (Timor-Leste)National Institute of State Statistics and Information (Turkmenistan)Central Bank of TurkmenistanMinistry of Economy and Finance (Turkmenistan)Other competent National Authority (Turkmenistan)National Institute of Statistics (Tunisia)Banque centrale de TunisieMinistere des Finances (Tunisia)Statistics Department (Tongo)National Reserve Bank of TongaMinistry of Finance (Tongo)Other competent National Authority (Tonga)State Institute of Statistics (Turkey)Central Bank of the Republic of TurkeyHazine Mustesarligi (Turkish Treasury)State Airports AuthorityOther competent National Authority (Turkey)Central Statistical Office (Trinidad and Tobago)Central Bank of Trinidad and TobagoMinistry of Finance (Trinidad and Tobago)Tuvalu StatisticsCentral Bank of China, TaipeiCentral Statistical Bureau (Tanzania)Bank of TanzaniaMinistry of Finance (Tanzania)Other competent National Authority (Tanzania)Central banks belonging to the Euro areaEU central banks not belonging to the Euro areaState Statistics Committee of UkraineNational Bank of UkraineMinistry of Finance (Ukraine)Other competent National Authority (Ukraine)Uganda Bureau of StatisticsBank of UgandaMinistry of Finance, Planning and Economic Development (Uganda)Other competent National Authority (Uganda)Federal Reserve Bank of New York (USA)Board of Governors of the Federal Reserve System (USA)U.S. Department of Treasury (USA)U.S. Department of Commerce (USA)Bureau of Labor StatisticsBureau of CensusBureau of Economic AnalysisBanco Central del UruguayMinisterio de Economia y Finanzas (Uruguay)Goskomprognozstat (Uzbekistan)Ministry of Economy (Uzbekistan)Ministry of Finance (Uzbekistan)Other competent National Authority (Uzbekistan)EU 27 central banksEU 28 central banksHoly See (Vatican City State) National Central BankStatistical Unit (St. Vincent and Grenadines)Eastern Caribbean Central Bank (ECCB) (St. Vincent and Grenadines)Ministry of Finance and Planning (St. Vincent and the Grenadines)Banco Central de VenezuelaMinisterio de Finanzas (Venezuela)Other competent National Authority (Virgin Islands, British)Other competent National Authority (Virgin Islands, US)General Statistics Office (Vietnam)State Bank of VietnamOther competent National Authority (Vietnam)Statistical Office (Vanuatu)Reserve Bank of VanuatuMinistry of Finance and Economic Management (Vanuatu)Other competent National Authority (Vanuatu)Department of Statistics (Samoa)Central Bank of SamoaSamoa Treasury DepartmentOther competent National Authority (Samoa)Kosovo National statistical OfficeKosovo National BankMinistry of Finance (Kosovo)Other competent National Authority (Kosovo)Central Statistical Organization (Yemen)Central Bank of YemenMinistry of Finance (Yemen)Other competent National Authority (Yemen, Republic of)South African Reserve ServiceSouth African Reserve BankDepartment of Customs and Excise (South Africa)Other competent National Authority (South Africa)Central Statistical Office (Zambia)Bank of ZambiaOther competent National Authority (Zambia)Central Statistical Office (Zimbabwe)Reserve Bank of ZimbabweMinistry of Finance, Economic Planning and Development (Zimbabwe)Other competent National Authority (Zimbabwe)Unspecified (e.g. any, dissemination, internal exchange etc)Unit code listAll currencies of denominationNot specifiedNot applicableAndorran franc (1-1 peg to the French franc)Andorran peseta (1-1 peg to the Spanish peseta)United Arab Emirates dirhamAfghanistan afghani (old)Afghanistan, AfghanisAlbanian lekArmenian dramNetherlands Antillean guilderAngolan kwanzaAngolan kwanza (old)Angolan kwanza readjustadoArgentine pesoAustrian schillingAustralian dollarAruban florin/guilderAzerbaijanian manat (old)Azerbaijan, manatsBosnia-Hezergovinian convertible markBarbados dollarBangladesh takaBelgian francBelgian franc (financial)Bulgarian lev (old)Bulgarian levBahraini dinarBurundi francBermudian dollarBrunei dollarBolivian bolivianoMvdolBrasilian cruzeiro (old)Brazilian realBahamas dollarBitcoinBhutan ngultrumBotswana pulaBelarussian rouble (old)Belarusian rubleBelarusian ruble (old)Belize dollarEuropean Commission IC-36 group of currencies (European Union 27 Member States, i.e. BE, DE, EE, GR, ES, FR, IE, IT, CY, LU, NL, MT, AT, PT, SI, SK, FI, BG, CZ, DK, LV, LT, HU, PL, RO, SE, GB, and US, AU, CA, JP, MX, NZ, NO, CH, TR)Canadian dollarNational currency per US dollar (unit for exchange rates and PPP)Congo franc (ex Zaire)National currency per Euro (unit for exchange rates and PPP)WIR EuroSwiss francWIR FrancChile Unidades de fomentoChilean pesoChinese yuan offshoreChinese yuan renminbiColombian pesoUnidad de Valor RealCosta Rican colonSerbian dinarCuban convertible pesoCuban pesoCape Verde escudoCypriot poundCzech korunaDaysGerman markDjibouti francDanish kroneDominican pesoDaysAlgerian dinarEuro area changing composition and the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US)Euro area-18 countries and the EER-20 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LT, HU, PL, RO, HR and CN)Euro area-18 countries and the EER-19 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LT, HU, PL, RO, and CN)Euro area-18 countries and the EER-39 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LT, HU, PL, RO, CN, DZ, AR, BR, CL, HR, IS, IN, ID, IL, MY, MX, MA, NZ, PH, RU, ZA, TW, TH, TR and VE)Euro area-18 countries and the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US)Euro area-19 countries and the EER-19 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, HU, PL, RO, HR and CN)Euro area-19 countries and the EER-18 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, HU, PL, RO, and CN)Euro area-19 countries and the EER-38 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, HU, PL, RO, CN, DZ, AR, BR, CL, HR, IS, IN, ID, IL, MY, MX, MA, NZ, PH, RU, ZA, TW, TH, TR and VE)Euro area-19 countries and the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US)Ecuador sucreEstonian kroonEgyptian poundErytrean nafkaSpanish pesetaEthiopian birrEuroFinnish markkaFiji dollarFalkland Islands poundFrench francFull time equivalentUK pound sterlingGeorgian lariGuernsey, PoundsGhana Cedi (old)Ghana CediGibraltar poundGambian dalasiGuinea francGramsGreek drachmaGuatemalan quetzalGuinea-Bissau Peso (old)Guyanan dollarEuro area 18 currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LV, MT, SK)ECB EER-38 group of currencies and Euro area (latest composition) currencies (FR,BE,LU,NL,DE,IT,IE,PT,ES,FI,AT,GR,SI,AU,CA,CN,DK,HK,JP,NO,SG,KR,SE,CH,GB,US,CY,CZ,EE,HU,LV,LT,MT,PL,SK,BG,RO,NZ,DZ,AR,BR,HR,IN,ID,IL,MY,MX,MA,PH,RU,ZA,TW,TH,TR,IS,CL,VE)ECB EER-19 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR)ECB EER-12 group of currencies and Euro areas (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LV, MT, SK, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US)ECB EER-19 group of currencies and Euro areas (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO)European Commission IC-36 group of currencies (European Union 27 Member States, i.e. BE, DE, EE, GR, ES, FR, IE, IT, CY, LU, NL, MT, AT, PT, SI, SK, FI, BG, CZ, DK, LV, LT, HU, PL, RO, SE, GB, and US, AU, CA, JP, MX, NZ, NO, CH, TR)European Commission IC-37 group of currencies (European Union 28 Member States, i.e. BE, DE, EE, GR, ES, FR, IE, IT, CY, LU, NL, MT, AT, PT, SI, SK, FI, BG, CZ, DK, HR, LV, LT, HU, PL, RO, SE, GB, and US, AU, CA, JP, MX, NZ, NO, CH, TR)ECB EER-39 group of currencies and Euro areas (latest composition) currencies (FR,BE,LU,NL,DE,IT,IE,PT,ES,FI,AT,GR,SI,AU,CA,CN,DK,HK,JP,NO,SG,KR,SE,CH,GB,US,CY,CZ,EE,HU,LV,LT,MT,PL,SK,BG,RO,NZ,DZ,AR,BR,HR,IN,ID,IL,MY,MX,MA,PH,RU,ZA,TW,TH,TR,IS,CL,VE)European Commission IC-42 group of currencies (European Union 28 Member States, i.e. BE,DE,EE,GR,ES,FR,IE,IT,CY,LU,NL,MT,AT,PT,SI,SK,FI,BG,CZ,DK,HR,LV,LT,HU,PL,RO,SE,GB, and US,AU,CA,JP,MX,NZ,NO,CH,TR,KR,CN,HK,RU,BR)ECB EER-20 group of currencies and Euro areas (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR)ECB EER-12 group of currencies and Euro areas (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR, TR and RU)Euro area 19 currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LT, LV, MT, SK)ECB EER-12 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LT, LV, MT, SK, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US)ECB EER-18 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO)Hong Kong dollarHong Kong dollar (old)Honduran lempiraHoursHoursCroatian kunaHaitian gourdeHungarian forintHours workedIndonesian rupiahIrish poundIsraeli shekelIsle of Man, PoundsIndian rupeeIraqi dinarIranian rialIceland kronaItalian liraIndexJobsJersey, PoundsJamaican dollarJordanian dinarJapanese yenKenyan shillingKilogramsKyrgyzstan somKampuchean real (Cambodian)Kilograms deprecatedKilolitresKilolitres deprecatedComoros francKorean won (North)Korean won (Republic)Kuwait dinarCayman Islands dollarKazakstan tengeLao kipLebanese poundLitres deprecatedSri Lanka rupeeLiberian dollarLesotho lotiLitresLithuanian litasLuxembourg francLatvian latsLibyan dinarMoroccan dirhamMan DaysMoldovian leuMadagascar, AriaryMalagasy francMonthsMacedonian denarMyanmar kyatMongolian tugrikMonthsMacau patacaSquare MetresMauritanian ouguiyaOuguiyaMaltese liraMauritius rupeeMaldive rufiyaaMalawi kwachaMexican pesoMexican peso (old)Mexican Unidad de Inversion (UDI)Man YearsMalaysian ringgitMozambique metical (old)Mozambique, MeticaisNamibian dollarNational currencyNigerian nairaNicaraguan cordobaNetherlands guilderNorwegian kroneNepaleese rupeeNew Zealand dollarOman Sul rialOuncesOuncesPercent per annumPanama balboaPercentPercentage changePercent per annumPercentage change (code value to be discontinued)Percentage pointsEuro, converted using purchasing power paritiesPeru nuevo solPersonsPapua New Guinea kinaPhilippine pisoPakistan rupeePolish zlotyPolish zloty (old)Per thousandPure numberPointsPointsPurchasing power paritiesPersonsPercentPortuguese escudoUS dollar, converted using purchasing power paritiesPure numberParaguay guaraniQatari rialRatioRomanian leu (old)Romanian leuSerbian dinarInterest rateRussian roubleRussian ruble (old)Rwanda francSaudi riyalSolomon Islands dollarSeychelles rupeeSudanese dinarSudan, DinarsSudanese pound (old)Swedish kronaSingapore dollarSt. Helena poundSlovenian tolarSlovak korunaSierra Leone leoneSomali shillingSeborga, LuiginiSquare Metres deprecatedSuriname, DollarsSuriname guilderSouth sudanese poundSao Tome and Principe dobraSao Tome and Principe dobraEl Salvador colonSyrian poundSwaziland lilangeniThai bahtTajikistan roubleTajikistan, SomoniTurkmenistan manat (old)Turkmenistan manatTonnesTunisian dinarTonnes deprecatedTongan paangaEast Timor escudoTurkish lira (old)Turkish liraTrinidad and Tobago dollarTuvalu, Tuvalu DollarsNew Taiwan dollarTanzania shillingUkraine hryvniaUganda ShillingUnit described in titleUS dollarUS Dollar (Next day)Unit described in titleUruguay Peso en Unidades IndexadasUruguayan pesoUzbekistan sumVenezuelan bolivar (old)Venezuelan bolivarVietnamese dongVanuatu vatuSamoan talaAll currencies except national currencyAll currencies except USDAll currencies except EURAll currencies except EUR, USDAll currencies except EUR, JPY, USDAll currencies except EUR, CHF, GBP, JPY, USDAll currencies except EUR, USD, JPY, GBP, CHF, domestic currencyCFA franc / BEACSilverGoldEuropean composite unitEuropean Monetary unit EC-6European Unit of Account 9 (E.U.A.-9)European Unit of Account 17 (E.U.A.-17)Eastern Caribbean dollarCurrencies included in the SDR basket, gold and SDRsDomestic currency (incl. conversion to current currency made using a fixed parity)Domestic currency (incl. conversion to current currency made using a fixed parity); ratio to net value addedDomestic currency (incl. conversion to current currency made using a fixed parity); ratio to annual moving sum of sector specific net value addedDomestic currency (incl. conversion to current currency made using a fixed parity); ratio to total expenditure in social protectionDomestic currency (incl. conversion to current currency made using a fixed parity); ratio to Euro area 19Domestic currency (incl. conversion to current currency made using market exchange rate)Domestic currency (currency previously used by a country before joining a Monetary Union)Other currencies not included in the SDR basket, excluding gold and SDRsSpecial Drawing Rights (S.D.R.)European Currency Unit (E.C.U.)Gold-FrancUIC-FrancGold fine troy ouncesEuro area non-participating foreign currencyCFA franc / BCEAOEuro area participating foreign currencyPalladium OuncesPacific francPlatinum, OuncesRhodiumSucreCodes specifically reserved for testing purposesADB Unit of AccountTransactions where no currency is involvedYearsYemeni rialYearsYugoslav dinarSouth African randZambian kwachaNew zambian kwachaZimbabwe dollarFourth Zimbabwe dollarZimbabwe, Zimbabwe DollarsThird Zimbabwe dollarUnit multiplier code listUnitsTensTenthsTens of billionsTen-billionthsHundreds of billionsHundred-billionthsTrillionsTrillionthsTens of trillionsTen-trillionthsHundreds of trillionsHundred-trillionthsQuadrillionsQuadrillionthsHundredsHundredthThousandsThousandthsTens of thousandsTen-thousandthsHundreds of thousandsHundred-thousandthsMillionsMillionthsTens of millionsTen-millionthsHundreds of millionsHundred-millionthsBillionsBillionthsECB conceptsCounterpart areaCurrencyData type in the PDF contextOECD QNA suffixTransactions and other flowsProduct breakdown -TRD contextInterest rate typeBusiness demography itemDerived data suffixSAFE questionBanking indicatorSecurities valuationBanknote or coinConcept - STS contextOutstanding amountDerived data economic conceptMaturity categoryObservation statusInstitution originating the data flowCBD valuation methodPSS data typeFinancial market providerInformation type in securities settlement, clearing, trading contextProjection database itemCoupon rate of the bondNon-resident economic activityReporting countryOFI reporting sectorValuationBS counterpart sectorEffect domainCounterpart areaEmbargoMethodology publicationReporting delayCreditor user assets sectorMUFA sourceAmeco referenceDerived data transformationBanknote/coin seriesWEO itemBLS aggregation methodConsolidationSource detailBalance of Payment itemSeries variation -SHI contextPublication source 2Firm turnover (SAFE)Investment funds reporting sectorType of accounts in TARGET2Compiliation methodologyAssets and liabilities item in financial vehicle corporation contextObservation valueSeries variation - STS contextCBD exposure typeArea definitionOriginal maturity/Period of notice/Initial rate fixationBond maturityPortfolio categoryAmeco reference areaCollection explanation detailSource detail 2Participation of the issuer in the reporting groupRepo counterpartyCompilationMethodology detailMUFA debtor areaNUTS 3 regional classificationForecast topicOECD MEI subjectReporting sectorSAFE answerProjection database season exerciseData type - MUFAs contextBLS counterpart motivationSeries suffix - SEC contextVis-a-vis countrySAFE question related itemReal time database series denominationConfidentiality statusBanknote & coin data typeData type - LIG contextOFI balance sheet itemReference sectorUnit index baseSeries suffix - ESA95 contextCounterpart sectorMUFA itemValue & time bands for TARGET2 operationsBanking reference BS/P&L ItemIFI input-output dataObservation commentPSS entry pointStock/flowIFS counterpart areaOption type in the PDF contextProjection database data originDenomination in SAFE contextUnit of measureSeries variation - ICP contextStrike price of the optionsStocks, Transactions, Other FlowsAdjustment indicatorInternational accounts itemAdjustment detailUnit multiplierInstrument in securities settlement, clearing and trading contextResidual maturityESA95 accountPrice baseDBI suffixData type - IFI contextExternal titlePublication row valueActivity/product/other brkdwnsBS reference sector breakdownNominal currency of the securityLot size unitsPublication sub-report valueBasis, measureHolder sectorReference period detailData type (vis-a-vis sector / maturity / risk transfers etc.)Series unit - ESA95 contextPrice typeThird party holdings flagOrganisationESA95 breakdownFirm size (SAFE)Compiling organisationSource of property price statisticsReporting sector in financial vehicle corporation contextUnitOECD MEI measureOECD MEI & QNA reference areaBanking reference institutionSource publication (Euro area only)Issuer domicile countryFinancial market provider identifierTransaction type in the Money Market contextLarge insurance group related itemsExternal trade flowMarket roleReporting institutional sectorPeriod of the projection horizon - monthly NIPE, quarterly (B)MPETitle complement, detailed description of the seriesTime period collectionCurrency purchase - holdingMaturity typePSS instrumentMUFA creditor areaUnit detailData type - DBI contextPublication item valueExternal unit multiplierAmeco aggregation methodFXS market type transactionPublication sourceProperty types in CPP contextSource publication (public)Classification - ICP contextSeries denominat/spec calculAmeco itemEAPlus flagInstrument type in the Money Market contextRaw statistical data sourceStructural housing indicatorsIssuer ESA 2010 sectorInterest rate type (fix/var)OECD A16 codeCBD reporting frameworkWeekly oil bulletin taxationInternational Financial Statistics blockCounterpart sectorFlows and stocks indicatorSecurities data typeBIS economic phenomenonEONIA bankOECD QNA measureMUFA creditor sectorOEO codePre-break valueDebt typeReal time database itemESCB flagReference areaCBD reference sector breakdownAccounting entriesResource or liability sectorReporting groupTitle complementCurrency breakdownMacro-adjustment flagoptions typeFinancial instrument IdentifierSAFE filter - applicable answerType of payments in TARGET2Insurance corporations and pension funds assets and liabilitiesResident economic activityAdjustment detailValuationCompilation approach indicatorFirm other breakdowns (ownership, export) (SAFE)Contract month/expired dateOECD QNA subjectOECD SNA measureQuarter of the projection exerciseUses and resourcesAggregation equationsCollateralAmeco transformationBIS suffixCounterpart areaGroup typeData type - BoP related dataReference table numberInsurance corporations operations itemFinancial market data typeData type in money market contextFrequencyActivityCBD reference sector sizeCurrency denominatorForecaster identifierClassification - STS contextProperty data series variationData dissemination organisationFirm economic activity (SAFE)System in the central counterparty clearing contextEmbargo detailsBalance sheet itemEONIA itemTime horizonBreaksDebtor resource liabil sectorSource agency 2Originator sector in financial vehicle corporation contextOversight IndicatorsCurrency of transactionMFI categorySeries variation - EXR contextHolder countryBKN denomination breakdownMaturityMoney market segmentFinancial market instrumentComments to the observation valueDomestic series idsSeries variation - GST contextSecurities itemValuation - GST contextForecast histograph breakdownFloating rate baseWeekly oil bulletin conceptData typeSecurities issuing sectorCurrency saleInvestment funds itemNational language titleBank lending survey itemType of reporting banksPSS information typeExternal reference areaPre-break observation valueBoP data collection basisMFI interest rate data typeModel assumption errorSeries variation -TRD contextType of insurance businessMUFAs valuationCBD portfolioOil productSystem in securities settlement and clearing contextMethodology referenceSource agencyForecast horizonWEO reference areaData type in FXS contextNat accounts price referenceIFS codeStructural statist indicatorECB publicationBanknote & coin related itemsMethodological explanationIs in EADBBalance sheet suffixTransaction typeCounterpart institution sectorPublication column valueProperty indicatorMoney market bankMUFA debtor sectorFirm age (SAFE)Underlying compilationMethodology agencyDenominationSource publication (ECB only)Property geographical coverageSeries variation - RPP contextAvailabilityConsolidated banking data itemAsset/instr classificationMFI statusProgramme credit ratingBLS contract counterpartSeries variation - IR contextIR business coverageObservation confidentialitySecurity typeInstrument and assets classificationExchange rate typeFrequency of the surveyCoverageUnit price baseUse or asset sectorESA item - GST contextDecimalsOriginal maturityIndividual MFI listAncillary systems settling in TARGET2Method in CPP contextExternal unitProduct breakdownCollection indicatorType of residential propertyAmount categoryBank selectionInsurance corporations operations unitSplit into EMU/non-EMU issuerTitleOECD SNA subjectOperation type in FXS contextSystem in securities exchange (trading) contextAsset securitisation typeTime format codeFunctional categoryWeight in trade flowsOECD Economic Outlook subjectAmeco unitTime period or rangeExchange RatesConstraints for the EXR dataflow.NRP0NN00NRD0NRU1NRC0ERU0EN00ERD0ERU1ERC0SP00ERP0PARSTEAQDHMATSCHFHRKITLMXNLVLMTLCLPZARXAUAUDILSIDRTRYCYPHKDTWDEURDKKCADMYRBGNEEKNOKRONMADCZKIEPGRDSEKSITPTEARSLTLNLGINRCNYTHBKRWJPYPLNGBPHUFPHPLUFRUBISKBEFESPUSDFIMDEMDZDSGDSKKVEFNZDFRFBRLCHFHRKMXNLVLMTLZARE0AUDE5E6ILSE7E8IDRTRYCYPHKDTWDEURDKKCADMYRBGNEEKNOKH37RONMADCZKGRDSEKSITARSLTLH42INRCNYTHBKRWJPYPLNGBPHUFPHPRUBISKH10USDH11DZDEGPH7H8H9SGDSKKNZDBRL \ No newline at end of file + + + + IDREF282261 + false + 2018-06-01T20:08:17 + + + + + + + SDMX Agency Scheme + + SDMX + + + European Central Bank + + + International Monetary Fund + + + Eurostat + + + Eurostat + + + Bank for International Settlements + + + Organisation for Economic Co-operation and Development + + + + + + Exchange Rates + + + + + + + + Categorise: DATAFLOWECB:EXR(1.0) + + + + + + + + + + + Collection indicator code list + + Average of observations through period + + + Beginning of period + + + End of period + + + Highest in period + + + Lowest in period + + + Middle of period + + + Summed through period + + + Unknown + + + Other + + + Annualised summed + + + + Currency code list + + All currencies + + + Not specified + + + Not applicable + + + Andorran Franc (1-1 peg to the French franc) + + + Andorran Peseta (1-1 peg to the Spanish peseta) + + + United Arab Emirates dirham + + + Afghanistan afghani (old) + + + Afghanistan, Afghanis + + + Albanian lek + + + Armenian dram + + + Netherlands Antillean guilder + + + Angola, Kwanza + + + Angolan kwanza (old) + + + Angolan kwanza readjustado + + + Argentine peso + + + Austrian schilling + + + Australian dollar + + + Aruban florin/guilder + + + Azerbaijanian manat (old) + + + Azerbaijan, manats + + + Bosnia-Hezergovinian convertible mark + + + Barbados dollar + + + Bangladesh taka + + + Belgian franc + + + Belgian franc (financial) + + + Bulgarian lev (old) + + + Bulgarian lev + + + Bahraini dinar + + + Burundi franc + + + Bermudian dollar + + + Brunei dollar + + + Bolivian boliviano + + + Mvdol + + + Brasilian cruzeiro (old) + + + Brazilian real + + + Bahamas dollar + + + Bitcoin + + + Bhutan ngultrum + + + Botswana pula + + + Belarussian rouble (old) + + + Belarusian ruble + + + Belarusian ruble (old) + + + Belize dollar + + + European Commission IC-36 group of currencies (European Union 27 Member States, i.e. BE, DE, EE, GR, ES, FR, IE, IT, CY, LU, NL, MT, AT, PT, SI, SK, FI, BG, CZ, DK, LV, LT, HU, PL, RO, SE, GB, and US, AU, CA, JP, MX, NZ, NO, CH, TR) + + + Canadian dollar + + + Congo franc (ex Zaire) + + + WIR Euro + + + Swiss franc + + + WIR Franc + + + Chile Unidades de fomento + + + Chilean peso + + + Chinese yuan offshore + + + Chinese yuan renminbi + + + Colombian peso + + + Unidad de Valor Real + + + Costa Rican colon + + + Serbian dinar + + + Cuban convertible peso + + + Cuban peso + + + Cape Verde escudo + + + Cyprus pound + + + Czech koruna + + + German mark + + + Djibouti franc + + + Danish krone + + + Dominican peso + + + Algerian dinar + + + Euro area changing composition and the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US) + + + Euro area-18 countries and the EER-20 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LT, HU, PL, RO, HR and CN) + + + Euro area-18 countries and the EER-19 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LT, HU, PL, RO, and CN) + + + Euro area-18 countries and the EER-39 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LT, HU, PL, RO, CN, DZ, AR, BR, CL, HR, IS, IN, ID, IL, MY, MX, MA, NZ, PH, RU, ZA, TW, TH, TR and VE) + + + Euro area-18 countries and the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US) + + + Euro area-19 countries and the EER-19 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, HU, PL, RO, HR and CN) + + + Euro area-19 countries and the EER-18 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, HU, PL, RO, and CN) + + + Euro area-19 countries and the EER-38 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, HU, PL, RO, CN, DZ, AR, BR, CL, HR, IS, IN, ID, IL, MY, MX, MA, NZ, PH, RU, ZA, TW, TH, TR and VE) + + + Euro area-19 countries and the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US) + + + Ecuador sucre + + + Estonian kroon + + + Egyptian pound + + + Erytrean nafka + + + Spanish peseta + + + Ethiopian birr + + + Euro + + + Finnish markka + + + Fiji dollar + + + Falkland Islands pound + + + French franc + + + UK pound sterling + + + Georgian lari + + + Guernsey, Pounds + + + Ghana Cedi (old) + + + Ghana Cedi + + + Gibraltar pound + + + Gambian dalasi + + + Guinea franc + + + Greek drachma + + + Guatemalan quetzal + + + Guinea-Bissau peso (old) + + + Guyanan dollar + + + Euro area 18 currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LV, MT, SK) + + + ECB EER-38 group of currencies and Euro area (latest composition) currencies (FR,BE,LU,NL,DE,IT,IE,PT,ES,FI,AT,GR,SI,AU,CA,CN,DK,HK,JP,NO,SG,KR,SE,CH,GB,US,CY,CZ,EE,HU,LV,LT,MT,PL,SK,BG,RO,NZ,DZ,AR,BR,HR,IN,ID,IL,MY,MX,MA,PH,RU,ZA,TW,TH,TR,IS,CL,VE) + + + ECB EER-19 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR) + + + ECB EER-12 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LV, MT, SK, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US) + + + ECB EER-19 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO) + + + European Commission IC-36 group of currencies (European Union 27 Member States, i.e. BE, DE, EE, GR, ES, FR, IE, IT, CY, LU, NL, MT, AT, PT, SI, SK, FI, BG, CZ, DK, LV, LT, HU, PL, RO, SE, GB, and US, AU, CA, JP, MX, NZ, NO, CH, TR) + + + European Commission IC-37 group of currencies (European Union 28 Member States, i.e. BE, DE, EE, GR, ES, FR, IE, IT, CY, LU, NL, MT, AT, PT, SI, SK, FI, BG, CZ, DK, HR, LV, LT, HU, PL, RO, SE, GB, and US, AU, CA, JP, MX, NZ, NO, CH, TR) + + + ECB EER-39 group of currencies and Euro area (latest composition) currencies (FR,BE,LU,NL,DE,IT,IE,PT,ES,FI,AT,GR,SI,AU,CA,CN,DK,HK,JP,NO,SG,KR,SE,CH,GB,US,CY,CZ,EE,HU,LV,LT,MT,PL,SK,BG,RO,NZ,DZ,AR,BR,HR,IN,ID,IL,MY,MX,MA,PH,RU,ZA,TW,TH,TR,IS,CL,VE) + + + European Commission IC-42 group of currencies (European Union 28 Member States, i.e. BE,DE,EE,GR,ES,FR,IE,IT,CY,LU,NL,MT,AT,PT,SI,SK,FI,BG,CZ,DK,HR,LV,LT,HU,PL,RO,SE,GB, and US,AU,CA,JP,MX,NZ,NO,CH,TR,KR,CN,HK,RU,BR) + + + ECB EER-20 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR) + + + ECB EER-12 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR, TR and RU) + + + Euro area 19 currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LT, LV, MT, SK) + + + ECB EER-12 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LT, LV, MT, SK, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US) + + + ECB EER-18 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO) + + + Hong Kong dollar + + + Hong Kong dollar (old) + + + Honduran lempira + + + Croatian kuna + + + Haitian gourde + + + Hungarian forint + + + Indonesian rupiah + + + Irish pound + + + Israeli shekel + + + Isle of Man, Pounds + + + Indian rupee + + + Iraqi dinar + + + Iranian rial + + + Iceland krona + + + Italian lira + + + Jersey, Pounds + + + Jamaican dollar + + + Jordanian dinar + + + Japanese yen + + + Kenyan shilling + + + Kyrgyzstan som + + + Kampuchean real (Cambodian) + + + Comoros franc + + + Korean won (North) + + + Korean won (Republic) + + + Kuwait dinar + + + Cayman Islands dollar + + + Kazakstan tenge + + + Lao kip + + + Lebanese pound + + + Sri Lanka rupee + + + Liberian dollar + + + Lesotho loti + + + Lithuanian litas + + + Luxembourg franc + + + Latvian lats + + + Libyan dinar + + + Moroccan dirham + + + Moldovian leu + + + Madagascar, Ariary + + + Malagasy franc + + + Macedonian denar + + + Myanmar kyat + + + Mongolian tugrik + + + Macau pataca + + + Mauritanian ouguiya + + + Mauritania ouguiya + + + Maltese lira + + + Mauritius rupee + + + Maldive rufiyaa + + + Malawi kwacha + + + Mexican peso + + + Mexican peso (old) + + + Mexican Unidad de Inversion (UDI) + + + Malaysian ringgit + + + Mozambique metical (old) + + + Mozambique, Meticais + + + Namibian dollar + + + Nigerian naira + + + Nicaraguan cordoba + + + Netherlands guilder + + + Norwegian krone + + + Nepaleese rupee + + + New Zealand dollar + + + Oman Sul rial + + + Panama balboa + + + Peru nuevo sol + + + Papua New Guinea kina + + + Philippine piso + + + Pakistan rupee + + + Polish zloty + + + Polish zloty (old) + + + Portuguese escudo + + + Paraguay guarani + + + Qatari rial + + + Romanian leu (old) + + + Romanian leu + + + Serbian dinar + + + Russian rouble + + + Russian ruble (old) + + + Rwanda franc + + + Saudi riyal + + + Solomon Islands dollar + + + Seychelles rupee + + + Sudanese dinar + + + Sudan, Dinars + + + Sudanese pound (old) + + + Swedish krona + + + Singapore dollar + + + St. Helena pound + + + Slovenian tolar + + + Slovak koruna + + + Sierra Leone leone + + + Somali shilling + + + Seborga, Luigini + + + Suriname, Dollars + + + Suriname guilder + + + South sudanese pound + + + Sao Tome and Principe dobra + + + Dobra + + + El Salvador colon + + + Syrian pound + + + Swaziland lilangeni + + + Thai baht + + + Tajikistan rouble + + + Tajikistan, Somoni + + + Turkmenistan manat (old) + + + Turkmenistan manat + + + Tunisian dinar + + + Tongan paanga + + + East Timor escudo + + + Turkish lira (old) + + + Turkish lira + + + Trinidad and Tobago dollar + + + Tuvalu, Tuvalu Dollars + + + New Taiwan dollar + + + Tanzania shilling + + + Euro and domestic currency + + + Ukraine hryvnia + + + Uganda Shilling + + + US dollar + + + US Dollar (Next day) + + + Uruguay Peso en Unidades Indexadas + + + Uruguayan peso + + + Uzbekistan sum + + + Venezuelan bolivar (old) + + + Venezuelan bolivar + + + Vietnamese dong + + + Vanuatu vatu + + + Samoan tala + + + All currencies except national currency + + + All currencies except USD + + + All currencies except EUR + + + All currencies except EUR, USD + + + All currencies except EUR, JPY, USD + + + All currencies except EUR, CHF, GBP, JPY, USD + + + All currencies except EUR, USD, JPY, GBP, CHF, domestic currency + + + CFA franc / BEAC + + + Silver + + + Gold + + + European composite unit + + + European Monetary unit EC-6 + + + European Unit of Account 9 (E.U.A.-9) + + + European Unit of Account 17 (E.U.A.-17) + + + Eastern Caribbean dollar + + + Currencies included in the SDR basket, gold and SDRs + + + Domestic currency (incl. conversion to current currency made using a fixed parity) + + + Domestic currency (incl. conversion to current currency made using market exchange rate) + + + Domestic currency (currency previously used by a country before joining a Monetary Union) + + + Other currencies not included in the SDR basket, excluding gold and SDRs + + + Special Drawing Rights (SDR) + + + European Currency Unit (E.C.U.) + + + Gold-Franc + + + UIC-Franc + + + Gold fine troy ounces + + + Euro area non-participating foreign currency + + + CFA franc / BCEAO + + + Euro area participating foreign currency + + + Palladium Ounces + + + Pacific franc + + + Platinum, Ounces + + + Rhodium + + + Sucre + + + Codes specifically reserved for testing purposes + + + ADB Unit of Account + + + Transactions where no currency is involved + + + Yemeni rial + + + Yugoslav dinar + + + All currencies combined + + + Euro and euro area national currencies + + + Other EU currencies combined + + + Other currencies than EU combined + + + All currencies other than EU, EUR, USD, CHF, JPY + + + Non-Euro and non-euro area currencies combined + + + All currencies other than domestic, Euro and euro area currencies + + + ECB EER-12 group of currencies (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US), changing composition of the euro area + + + EER broad group of currencies including also Greece until 01 january 2001 + + + Not applicable + + + EER-12 group of currencies (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US) + + + EER broad group of currencies (excluding Greece) + + + Euro and Euro Area countries currencies (including Greece) + + + Other EU currencies combined (MU12; excluding GRD) + + + Other currencies than EU15 and EUR combined + + + All currencies other than EU15, EUR, USD, CHF, JPY + + + Non-MU12 currencies combined + + + ECB EER-12 group of currencies and Euro Area countries currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US) + + + ECB EER broad group of currencies and Euro Area countries currencies + + + ECB EER-12 group of currencies and Euro area 11 countries currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US) + + + ECB EER-12 group of currencies (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US) - Euro area 15 + + + ECB EER broad group, regional breakdown, industrialised countries + + + ECB EER broad group, regional breakdown, non-Japan Asia + + + ECB EER broad group, regional breakdown, Latin America + + + ECB EER broad group, regional breakdown, Central and Eastern Europe (CEEC) + + + ECB EER broad group, regional breakdown, other countries + + + Euro area 15 countries currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, MT and CY) + + + ECB EER-12 group of currencies and Euro area 15 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US) + + + Euro area-16 countries (BE, DE, IE, GR, ES, FR, IT, CY, LU, MT, NL, AT, PT, SI, SK and FI) + + + Euro area-16 countries vis-a-vis the EER-12 group of trading partners and other euro area countries (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BE, DE, IE, GR, ES, FR, IT, CY, LU, MT, NL, AT, PT, SI, SK and FI) + + + EER-23 group of currencies (CZ, CY, DK, EE, LV, LT, HU, MT, PL, SI, SK, SE, GB, AU, CA, CN, HK, JP, NO, SG, KR, CH, US) + + + EER-42 group of currencies (CZ, CY, DK, EE, LV, LT, HU, MT, PL, SI, SK, SE, GB, AU, CA, CN, HK, JP, NO, SG, KR, CH, US, DZ, AR, BR, BG, HR, IN, ID, IL, MY, MX, MA, NZ, PH, RO, RU, ZA, TW, TH, TR) + + + Euro area-17 countries (BE, DE, EE, IE, GR, ES, FR, IT, CY, LU, MT, NL, AT, PT, SI, SK and FI) + + + Euro area-17 countries vis-a-vis the EER-12 group of trading partners and other euro area countries (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BE, DE, EE, IE, GR, ES, FR, IT, CY, LU, MT, NL, AT, PT, SI, SK and FI) + + + ECB EER-23 group of currencies and Euro Area countries currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, CZ, CY, DK, EE, LV, LT, HU, MT, PL, SI, SK, SE, GB, AU, CA, CN, HK, JP, NO, SG, KR, CH, US) + + + ECB EER-42 group of currencies and Euro Area countries currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, CZ, CY, DK, EE, LV, LT, HU, MT, PL, SI, SK, SE, GB, AU, CA, CN, HK, JP, NO, SG, KR, CH, US, DZ, AR, BR, BG, HR, IN, ID, IL, MY, MX, MA, NZ, PH, RO, RU, ZA, TW, TH, TR) + + + ECB EER-12 group of currencies (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US) + + + All currencies other than domestic + + + All currencies other than EUR, USD, GBP, CHF, JPY and domestic + + + Other currencies than EU15, EUR and domestic + + + All currencies other than EU15, EUR, USD, CHF, JPY and domestic + + + All currencies other than EUR, USD, GBP and JPY + + + ECB EER-24 group of currencies (AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO) + + + ECB EER-44 group of currencies (AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, NZ, DZ, AR, BR, HR, IN, ID, IL, MY, MX, MA, PH, RU, ZA, TW, TH, TR, IS, CL, VE) + + + Euro and Euro area 13 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI) + + + Non-euro area 13 currencies combined (all currencies other than those related to FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI) + + + ECB EER-22 group of currencies (AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US,CZ, EE, HU, LV, LT, PL, SK, BG, RO) - Euro area 15 + + + ECB EER-42 group of currencies (AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CZ, EE, HU, LV, LT, PL, SK, BG, RO, NZ, DZ, AR, BR, HR, IN, ID, IL, MY, MX, MA, PH, RU, ZA, TW, TH, TR, IS, CL, VE) - Euro area 15 + + + ECB EER-12 group of currencies and Euro area country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US) + + + ECB EER-20 group of currencies and Euro area 17 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO) + + + ECB EER-40 group of currencies and Euro area 17 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, NZ, DZ, AR, BR, HR, IN, ID, IL, MY, MX, MA, PH, RU, ZA, TW, TH, TR, IS, CL, VE) + + + Euro area-16 countries vis-a-vis the EER-21 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, EE, LV, LT, HU, PL, RO and CN) + + + Euro area-16 countries vis-a-vis the EER-41 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, EE, LV, LT, HU, PL, RO, CN, DZ, AR, BR, CL, HR, IS, IN, ID, IL, MY, MX, MA, NZ, PH, RU, ZA, TW, TH, TR and VE) + + + ECB EER-21 group of currencies and Euro area 17 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR) + + + Euro and Euro area 15 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT) + + + Non-euro area 15 currencies combined (all currencies other than those related to FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT) + + + Euro area-17 countries vis-a-vis the EER-20 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LV, LT, HU, PL, RO and CN) + + + Euro area-17 countries vis-a-vis the EER-40 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LV, LT, HU, PL, RO, CN, DZ, AR, BR, CL, HR, IS, IN, ID, IL, MY, MX, MA, NZ, PH, RU, ZA, TW, TH, TR and VE) + + + Euro area-17 countries vis-a-vis the EER-21 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LV, LT, HU, PL, RO, HR and CN) + + + Euro area-16 countries vis-a-vis the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US) + + + Euro area-17 countries vis-a-vis the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US) + + + Euro area-17 countries vis-a-vis the EER-23 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LV, LT, HU, PL, RO, HR, TR, RU and CN) + + + ECB EER-23 group of currencies and Euro area 17 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR, TR and RU) + + + Euro and Euro area 16 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT, SK) + + + Non-euro area 16 currencies combined (all currencies other than those related to FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT, SK) + + + Euro and Euro area 17 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT, SK, EE) + + + Non-euro area 17 currencies combined (all currencies other than those related to FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT, SK, EE) + + + South African rand + + + Zambian kwacha + + + New zambian kwacha + + + Zimbabwe dollar + + + Fourth Zimbabwe dollar + + + Zimbabwe, Zimbabwe Dollars + + + Third Zimbabwe dollar + + + + Decimals code list + + Zero + + + One + + + Ten + + + Eleven + + + Twelve + + + Thirteen + + + Fourteen + + + Fifteen + + + Two + + + Three + + + Four + + + Five + + + Six + + + Seven + + + Eight + + + Nine + + + + Exch. rate series variation code list + + Average + + + End-of-period + + + Growth rate to previous period + + + Annual rate of change + + + Percentage change since December 1998 (1998Q4 for quarterly data) + + + 3-year percentage change + + + + Exchange rate type code list + + Real bilateral exchange rate, CPI deflated + + + Central rate + + + Real effective exch. rate deflator based on CPI + + + Real effective exch. rate deflator based on retail prices + + + Real effective exch. rate deflator based on GDP deflator + + + Real effective exch. rate deflator based on import unit values + + + Real effective exch. rate deflator based on producer prices + + + Real effective exch. rate deflator based on ULC manufacturing + + + Real effective exch. rate deflator based on ULC total economy + + + Real effective exch. rate deflator based on wholesale prices + + + Real effective exch. rate deflator based on export unit values + + + Nominal effective exch. rate + + + Constant (real) exchange rate + + + Real effective exch. rate CPI deflated + + + Real effective exch. rate retail prices deflated + + + Real effective exch. rate GDP deflators deflated + + + Real effective exch. rate import unit values deflated + + + Real effective exch. rate producer prices deflated + + + Real effective exch. rate ULC manufacturing deflated + + + Real effective exch. rate ULC total economy deflated + + + Real effective exch. rate wholesale prices deflated + + + Real effective exch. rate export unit values deflated + + + 1m-forward + + + 3m-forward + + + 6m-forward + + + 12m-forward + + + Indicative rate + + + Nominal harmonised competitiveness indicator (ECB terminology), Nominal effective exchange rate (EC terminology) + + + Real harmonised competitiveness indicator CPI deflated (ECB terminology), Real effective exchange rate (EC terminology) + + + Real harmonised competitiveness indicator GDP deflators deflated + + + Real harmonised competitiveness indicator Producer Prices deflated + + + Real harmonised competitiveness indicator ULC manufacturing deflated + + + Real harmonised competitiveness indicator ULC in total economy deflated + + + Official fixing + + + Reference rate + + + Spot + + + + Frequency code list + + Annual + + + Business + + + Daily + + + Event (not supported) + + + Half-yearly + + + Monthly + + + Minutely + + + Quarterly + + + Half Yearly, semester (value H exists but change to S in 2009, move from H to this new value to be agreed in ESCB context) + + + Weekly + + + + Observation confidentiality code list + + Primary confidentiality due to small counts + + + Confidential statistical information + + + Secondary confidentiality set by the sender, not for publication + + + Free + + + Primary confidentiality due to dominance by one or two units + + + Primary confidentiality due to data declared confidential based on other measures of concentration + + + Not for publication, restricted for internal use only + + + Primary confidentiality due to dominance by one unit + + + Primary confidentiality due to dominance by two units + + + + Observation status code list + + Normal value + + + Time series break + + + Definition differs + + + Estimated value + + + Forecast value + + + Experimental value + + + Missing value; holiday or weekend + + + Imputed value (CCSA definition) + + + Derogation + + + Missing value; data exist but were not collected + + + Missing value; data cannot exist + + + Not significant + + + Provisional value + + + Missing value; suppressed + + + Strike and any special events + + + Low reliability + + + Unvalidated value + + + + Organisation code list + + International organisations + + + UN organisations + + + International Monetary Fund (IMF) + + + World Trade Organisation + + + International Bank for Reconstruction and Development + + + International Development Association + + + Other UN Organisations (includes 1H, 1J-1T) + + + UNESCO (United Nations Educational, Scientific and Cultural Organisation) + + + FAO (Food and Agriculture Organisation) + + + WHO (World Health Organisation) + + + IFAD (International Fund for Agricultural Development) + + + IFC (International Finance Corporation) + + + MIGA (Multilateral Investment Guarantee Agency) + + + UNICEF (United Nations Children Fund) + + + UNHCR (United Nations High Commissioner for Refugees) + + + UNRWA (United Nations Relief and Works Agency for Palestine) + + + IAEA (International Atomic Energy Agency) + + + ILO (International Labour Organisation) + + + ITU (International Telecommunication Union) + + + UNECE (United Nations Economic Commission for Europe) + + + Universal Postal Union + + + World Bank + + + Rest of UN Organisations n.i.e. + + + European Community Institutions, Organs and Organisms + + + EMS (European Monetary System) + + + European Investment Bank + + + Statistical Office of the European Commission (Eurostat) + + + European Commission (including Eurostat) + + + European Development Fund + + + European Central Bank (ECB) + + + DG-E, ECB Survey of Professional Forecasters (SPF) + + + EIF (European Investment Fund) + + + European Community of Steel and Coal + + + Neighbourhood Investment Facility + + + Other EC Institutions, Organs and Organisms covered by General budget + + + European Parliament + + + Council of the European Union + + + Court of Justice + + + Court of Auditors + + + European Council + + + Economic and Social Committee + + + Committee of Regions + + + Other European Community Institutions, Organs and Organisms + + + Agency for the Cooperation of Energy Regulators + + + European Centre for Disease Prevention and Control + + + European Centre for the Development of Vocational Training + + + European Chemicals Agency + + + European Data Protection Supervisor + + + European Defence Agency + + + European Environment Agency + + + European External Action Service + + + European Fisheries Control Agency + + + European Food Safety Authority + + + European Foundation for the Improvement of Living and Working Conditions + + + Body of European Regulators for Electronic Communications + + + European GNSS Agency + + + European Institute for Gender Equality + + + European Institute of Innovation and Technology + + + European Maritime Safety Agency + + + European Medicines Agency + + + European Monitoring Centre for Drugs and Drug Addiction + + + European Network and Information Security Agency + + + European Ombudsman + + + European Personnel Selection Office + + + European Police College + + + Community Plant Variety Office + + + European Police Office + + + European Public Prosecutor`s Office (in preparation) + + + European Railway Agency + + + European School of Administration + + + European Training Foundation + + + European Union Agency for Fundamental Rights + + + European Union Institute for Security Studies + + + European Union Intellectual Property Office + + + European Union Satellite Centre + + + Publications Office of the European Union + + + Computer Emergency Response Team + + + The European Union` s Judicial Cooperation Unit + + + Translation Centre for the Bodies of the European Union + + + ATHENA Mechanism + + + European Agency for Safety and Health at Work + + + European Agency for the Management of Operational Cooperation at the External Borders + + + European Agency for the operational management of large-scale IT systems in the area of freedom, security and justice + + + European Asylum Support Office + + + European Aviation Safety Agency + + + SRB (Single Resolution Board) + + + European Stability Mechanism (ESM) + + + Joint Committee of the European Supervisory Authorities (ESAs) + + + European Banking Agency (EBA, European Supervisory Authority) + + + EBA (European Banking Authority) + + + European Insurance and Occupational Pensions Authority (EIOPA, European Supervisory Authority) + + + ESMA (European Securities and Markets Authority) + + + European Securities and Markets Agency (ESMA, European Supervisory Authority) + + + EIOPA (European Insurance and Occupational Pensions Authority) + + + FEMIP (Facility for Euro-Mediterranean Investment and Partnership) + + + All the European Union Institutions including the ECB and ESM + + + Other European Community Institutions, Organs and Organisms + + + Organisation for Economic Cooperation and Development (OECD) + + + Bank for International Settlements (BIS) + + + Inter-American Development Bank + + + African Development Bank + + + Asian Development Bank + + + European Bank for Reconstruction and Development + + + IIC (Inter-American Investment Corporation) + + + NIB (Nordic Investment Bank) + + + Eastern Caribbean Central Bank (ECCB) + + + IBEC (International Bank for Economic Co-operation) + + + IIB (International Investment Bank) + + + CDB (Caribbean Development Bank) + + + AMF (Arab Monetary Fund) + + + BADEA (Banque arabe pour le developpement economique en Afrique) + + + Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) + + + CASDB (Central African States Development Bank) + + + African Development Fund + + + Asian Development Fund + + + Fonds special unifie de developpement + + + CABEI (Central American Bank for Economic Integration) + + + ADC (Andean Development Corporation) + + + Other International Organisations (financial institutions) + + + Banque des Etats de l`Afrique Centrale (BEAC) + + + Communaute economique et Monetaire de l`Afrique Centrale (CEMAC) + + + Eastern Caribbean Currency Union (ECCU) + + + Other International Financial Organisations n.i.e. + + + Africa Finance Corporation + + + International Civil Aviation Organisation + + + International Cocoa Organisation + + + International Coffee Organisation + + + International Copper Study Group + + + International Cotton Advisory Committee + + + International Grains Council + + + International Jute Study Group + + + International Lead and Zinc Study Group + + + International Maritime Organisation + + + International Maritime Satellite Organisation + + + African Development Bank Group + + + International Olive Oil Council + + + International Rubber Study Group + + + International Sugar Organisation + + + Latin American and the Caribbean Economic System + + + Latin American Energy Organisation + + + Latin American Integration Association + + + League of Arab States + + + Organisation of Eastern Caribbean States + + + Organisation of American States + + + Organisation of Arab Petroleum Exporting Countries + + + Arab Fund for Economic and Social Development + + + Organisation of Central American States + + + Organisation of the Petroleum Exporting Countries + + + South Asian Association for Regional Cooperation + + + United Nations Conference on Trade and Development + + + West African Economic Community + + + West African Health Organisation + + + West African Monetary Agency + + + West African Monetary Institute + + + World Council of Churches + + + Asian Clearing Union + + + World Intellectual Property Organisation + + + World Meteorological Organisation + + + World Tourism Organisation + + + Colombo Plan + + + Economic Community of West African States + + + European Free Trade Association + + + Fusion for Energy + + + Intergovernmental Council of Copper Exporting Countries + + + Other International Organisations (non-financial institutions) + + + African Union + + + Association of Southeast Asian Nations + + + Caribbean Community and Common Market + + + Central American Common Market + + + East African Development Bank + + + ECOWAS Bank for Investment and Development + + + Latin American Association of Development Financing Institutions + + + OPEC Fund for International Development + + + NATO (North Atlantic Treaty Organisation) + + + Council of Europe + + + ICRC (International Committee of the Red Cross) + + + ESA (European Space Agency) + + + EPO (European Patent Office) + + + EUROCONTROL (European Organisation for the Safety of Air Navigation) + + + EUTELSAT (European Telecommunications Satellite Organisation) + + + EMBL (European Molecular Biology Laboratory) + + + INTELSAT (International Telecommunications Satellite Organisation) + + + EBU/UER (European Broadcasting Union/Union europeenne de radio-television) + + + EUMETSAT (European Organisation for the Exploitation of Meteorological Satellites) + + + ESO (European Southern Observatory) + + + ECMWF (European Centre for Medium-Range Weather Forecasts) + + + Organisation for Economic Cooperation and Development (OECD) + + + CERN (European Organisation for Nuclear Research) + + + IOM (International Organisation for Migration) + + + Islamic Development Bank (IDB) + + + Eurasian Development Bank (EDB) + + + Paris Club Creditor Institutions + + + Other International Non-Financial Organisations n.i.e. + + + WAEMU (West African Economic and Monetary Union) + + + IDB (Islamic Development Bank) + + + EDB (Eurasian Development Bank ) + + + Paris Club Creditor Institutions + + + CEB (Council of Europe Development Bank) + + + International Union of Credit and Investment Insurers + + + Black Sea Trade and Development Banks + + + AFREXIMBANK (African Export-Import Bank) + + + BLADEX (Banco Latino Americano De Comercio Exterior) + + + FLAR (Fondo Latino Americano de Reservas) + + + Fonds Belgo-Congolais d Amortissement et de Gestion + + + IFFIm (International finance Facility for Immunisation) + + + EUROFIMA (European Company for the Financing of Railroad Rolling Stock) + + + Development Bank of Latin America (Banco de Desarrollo de America Latina) + + + The Eastern and Southern African Trade and Development Bank + + + International Organisations excl. European Community Institutions (4A) + + + International Union of Credit and Investment Insurers + + + International Organisations excl. European Community Institutions (4Y) + + + Andorra Finance institute + + + Central Statistical Organization, part of the Ministry of Economy and Planning (United Arab Emirates) + + + Central Bank of the United Arab Emirates + + + Ministry of Finance and Industry (United Arab Emirates) + + + Da Afghanistan Bank + + + Ministry of Finance (Afghanistan, Islamic State of) + + + Eastern Caribbean Central Bank (ECCB) (Antigua and Barbuda) + + + Ministry of Finance (Antigua and Barbuda) + + + Central Statistical Office (Anguilla) + + + Ministry of Finance (Anguilla) + + + Other competent National Authority (Anguilla) + + + Institution of Statistics (Albania) + + + Bank of Albania + + + Ministere des Finances (Albania) + + + State National Statistics Service (Armenia) + + + Central Bank of Armenia + + + Ministry of Finance and Economy (Armenia) + + + Other competent National Authority (Armenia, Republic of) + + + Central Bureau of Statistics (Netherlands Antilles) + + + Bank of the Netherlands Antilles + + + Other competent National Authority (Netherlands Antilles) + + + National Institute of Statistics (Angola) + + + Banco Nacional de Angola + + + Ministerio das Financas (Angola) + + + Instituto Nacional de Estadistica y Censos (Argentina) + + + Banco Central de la Republica Argentina + + + Ministerio de Economia (Argentina) + + + Other competent National Authority (Argentina) + + + Statistik Osterreich (Austria) + + + Oesterreichische Nationalbank (Austria) + + + FMA (Austria Financial Market Authority) + + + Other competent National Authority (Austria) + + + Australian Bureau of Statistics + + + Reserve Bank of Australia + + + Australian Prudential Regulation Authority + + + Department of the Treasury (Australia) + + + Other competent National Authority (Australia) + + + Central Bureau of Statistics (Aruba) + + + Centrale Bank van Aruba + + + Other competent National Authority (Aruba) + + + State Statistics Committee of the Azerbaijan Republic + + + National Bank of Azerbaijan + + + Ministry of Finance (Azerbaijan) + + + Other competent National Authority (Azerbaijan, Republic of) + + + EU 15 central banks + + + EU 25 central banks + + + EU 27 central banks + + + EU 28 central banks + + + EU27 central banks [fixed composition) as of brexit + + + Institute of Statistics (Bosnia and Herzegovina) + + + Central Bank of Bosnia and Herzegovina + + + Ministry of Finance for the Federation of Bosnia and Herzegovina + + + Other competent National Authority (Bosnia and Herzegovina) + + + Barbados Statistical Service + + + Central Bank of Barbados + + + Ministry of Finance and Economic Affairs (Barbados) + + + Other competent National Authority (Barbados) + + + Bangladesh Bureau of Statistics + + + Bangladesh Bank + + + Ministry of Finance (Bangladesh) + + + Institut National de Statistiques de Belgique (Belgium) + + + Banque Nationale de Belgique (Belgium) + + + Federal Public Service Budget (Belgium) + + + Bureau van Dijk + + + Other competent National Authority (Belgium) + + + Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Burkina Faso) + + + Ministere de l`Economie et des Finances (Burkina Faso) + + + National Statistical Institute of Bulgaria + + + Bulgarian National Bank + + + Prime Ministers Office (Bulgaria) + + + Ministry of Finance (Bulgaria) + + + Other competent National Authority (Bulgaria) + + + Directorate of Statistics (Bahrain) + + + Bahrain Monetary Authority + + + Ministry of Finance and National Economy (Bahrain) + + + Other competent National Authority (Bahrain, Kingdom of) + + + Banque de la Republique du Burundi + + + Ministere du Plan (Burundi) + + + Ministere des finances (Burundi) + + + Institut National de la Statistique et de l`Analyse Economique (Benin) + + + Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Benin) + + + Ministere des Finances (Benin) + + + Other competent National Authority (Benin) + + + Bermuda Government - Department of Statistics + + + Bermuda Monetary Authority + + + Other competent National Authority (Bermuda) + + + Department of Statistics (Brunei Darussalam) + + + Brunei Currency and Monetary Board (BCMB) + + + Department of Economic Planning and Development (DEPD) (Brunei Darussalam) + + + Ministry of Finance (Brunei Darussalam) + + + Other competent National Authority (Brunei Darussalam) + + + Instituto Nacional de Estadistica (Bolivia) + + + Banco Central de Bolivia + + + Secretaria Nacional de Hacienda (Bolivia) + + + Ministerio de Hacienda (Bolivia) + + + Other competent National Authority (Bolivia) + + + Brazilian Institute of Statistics and Geography (IBGE) (Brazil) + + + Banco Central do Brasil + + + Ministry of Industry, Commerce and Tourism, Secretariat of Foreign Commerce (SECEX) (Brazil) + + + Ministerio da Fazenda (Brazil) + + + Department of Statistics (Bahamas) + + + The Central Bank of the Bahamas + + + Ministry of Finance (Bahamas) + + + Other competent National Authority (Bahamas, The) + + + Central Statistical Office (Bhutan) + + + Royal Monetary Authority of Bhutan + + + Ministry of Finance (Bhutan) + + + Central Statistics Office (Botswana) + + + Bank of Botswana + + + Department of Customs and Excise (Botswana) + + + Ministry of Finance and Development Planning (Botswana) + + + Ministry of Statistics and Analysis of the Republic of Belarus + + + National Bank of Belarus + + + Ministry of Finance of the Republic of Belarus + + + Other competent National Authority (Belarus) + + + Central Statistical Office (Belize) + + + Central Bank of Belize + + + Ministry of Foreign Affairs (Belize) + + + Ministry of Finance (Belize) + + + Other competent National Authority (Belize) + + + Central banks of the new EU Member States 2004 (CY,CZ,EE,HU,LV,LT,MT,PL,SK,SI) + + + Statistics Canada + + + Bank of Canada + + + Other competent National Authority (Canada) + + + Institute National de la Statistique (Congo, Dem. Rep. of) + + + Banque Centrale du Congo (Congo, Dem. Rep. of) + + + Ministry of Finance and Budget (Congo, Dem. Rep. of) + + + National Office of Research and Development (Congo, Dem. Rep. of) + + + Other competent National Authority (Congo, Democratic Republic of) + + + Banque des Etats de l`Afrique Centrale (BEAC) (Central African Republic) + + + Presidence de la Republique (Central African Republic) + + + Ministere des Finances, du Plan et de la Cooperation International (Central African Republic) + + + Centre National de la Statistique et des Etudes Economiques (CNSEE) (Congo, Rep of) + + + Banque des Etats de l`Afrique Centrale (BEAC) (Congo, Rep. of) + + + Ministere de l`economie, des finances et du budget (Congo, Rep of) + + + Other competent National Authority (Congo, Republic of) + + + Swiss Federal Statistical Office + + + Schweizerische Nationalbank (Switzerland) + + + Direction generale des douanes (Switzerland) + + + Swiss Federal Finance Administration (Switzerland) + + + Other competent National Authority (Switzerland) + + + Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Cote d`Ivoire) + + + Ministere de l`Economie et des Finances (Cote d`Ivoire) + + + Cook Islands Statistics Office + + + Cook Islands Ministry of Finance + + + Banco Central de Chile + + + Ministerio de Hacienda (Chile) + + + Banque des Etats de l`Afrique Centrale (BEAC) (Cameroon) + + + Ministere du Plan et de l`Amenagement du Territoire (Cameroon) + + + Ministere de l`economie et des finances (Cameroon) + + + State National Bureau of Statistics (China, P.R. Mainland) + + + The Peoples Bank of China + + + State Administration of Foreign Exchange (China, P.R. Mainland) + + + Ministry of Finance (China, P.R. Mainland) + + + General Administration of Customs (China, P.R. Mainland) + + + Other competent National Authority (China, P.R., Mainland) + + + Centro Administrativo Nacional (Colombia) + + + Banco de la Republica (Colombia) + + + Ministerio de Hacienda y Credito Publico (Colombia) + + + Other competent National Authority (Colombia) + + + Banco Central de Costa Rica + + + Ministerio de Hacienda (Costa Rica) + + + Federal Statistical Office (Serbia and Montenegro) + + + National Bank of Serbia and Montenegro + + + Federal Ministry of Finance (Serbia and Montenegro) + + + Other competent National Authority (Serbia and Montenegro) + + + Oficina National de Estadisticas (Cuba) + + + Banco Central de Cuba + + + Other competent National Authority (Cuba) + + + Instituto Nacional de Estatistica (Cape Verde) + + + Banco de Cabo Verde (Cape Verde) + + + Ministere de la coordination economique (Cape Verde) + + + Ministerio das Financas (Cape Verde) + + + Other competent National Authority (Cape Verde) + + + Central Bureau of Statistics (Curacao) + + + Central Bank of Curacao and Sint Maarten + + + Other competent National Authority (Curacao) + + + Cyprus, Department of Statistics and Research (Ministry of Finance) + + + Central Bank of Cyprus + + + Ministry of Finance (Cyprus) + + + Other competent National Authority (Cyprus) + + + Czech Statistical Office + + + Czech National Bank + + + Ministry of Transport and Communications/Transport Policy (Czech Republic) + + + Ministry of Finance of the Czech Republic + + + Other competent National Authority (Czech Republic) + + + EU 15 central banks + + + EU 25 central banks + + + Central banks of the new EU Member States 2004 (CY,CZ,EE,HU,LV,LT,MT,PL,SK,SI) + + + Statistisches Bundesamt (Germany) + + + Deutsche Bundesbank (Germany) + + + Kraftfahrt-Bundesamt (Germany) + + + Bundesministerium der Finanzen (Germany) + + + BAFIN (Germany Federal Financial Supervisory Authority) + + + IFO Institut fur Wirtschaftsforschung (Germany) + + + Zentrum fur Europaische Wirtschaftsforschnung (ZEW, Germany) + + + Other competent National Authority (Germany) + + + Direction Nationale de la Statistique (National Department of Statistics) (Djibouti) + + + Banque Nationale de Djibouti + + + Tresor National (Djibouti) + + + Ministere de l`Economie et des Finances (Djibouti) + + + Danmarks Statistik (Denmark) + + + Danmarks Nationalbank (Denmark) + + + Danish Civil Aviation Administration + + + Other competent National Authority (Denmark) + + + Central Statistical Office (Dominica) + + + Eastern Caribbean Central Bank (ECCB) (Dominica) + + + Ministry of Finance (Dominica) + + + Other competent National Authority (Dominica) + + + Banco Central de la Republica Dominicana + + + Office National des Statistiques (Algeria) + + + Banque d`Algerie + + + Ministere des Finances (Algeria) + + + Other competent National Authority (Algeria) + + + Instituto Nacional de Estadistica y Censos (Ecuador) + + + Banco Central del Ecuador + + + Ministerio de Finanzas y Credito Publico (Ecuador) + + + Other competent National Authority (Ecuador) + + + Estonia, State Statistical Office + + + Bank of Estonia + + + Ministry of Finance (Estonia) + + + Other competent National Authority (Estonia) + + + Central Agency for Public Mobilization and Stats. (Egypt) + + + Central Bank of Egypt + + + Ministry of Finance (Egypt) + + + Other competent National Authority (Egypt) + + + Bank of Eritrea + + + Ministry of Finance (Eritrea) + + + Instituto Nacional de Statistica (Spain) + + + Banco de Espana (Spain) + + + Departamento de Aduanas (Spain) + + + Ministerio de Economia y Hacienda (Spain) + + + Ministerio de Industria, Tourismo y Comerco (Spain) + + + Puertos del Estado/Portel Spain + + + Ministerio de Fomento - AENA + + + Other competent National Authority (Spain) + + + National Bank of Ethiopia + + + Customs and Excise Administration (Ethiopia) + + + Ministry of Finance (Ethiopia) + + + Statistics Finland (Finland) + + + Bank of Finland (Finland) + + + National Board of Customs (Finland) + + + Ministry of Finance ((Finland) + + + Finnish Maritime Administration + + + Finavia(Civil Aviation Administration) + + + Other competent National Authority (Finland) + + + Bureau of Statistics (Fiji) + + + Reserve Bank of Fiji + + + Ministry of Finance and National Planning (Fiji) + + + Other competent National Authority (Fiji) + + + Office of Planning and Statistics (Micronesia, Federated States of) + + + Federal States of Micronesia Banking Board (Micronesia, Federated States of) + + + Other competent National Authority (Micronesia, Federated States of) + + + Institut National de la Statistique et des Etudes Economiques - INSEE (France) + + + Banque de France (France) + + + Ministere de l Equipement, des Transports et du Logement (France) + + + Ministere de l`Economie et des Finances (France) + + + Direction generale des douanes (France) + + + National Council of Credit (France) + + + DTMPL France + + + DGAC(Direction General de l`Aviation Civil) + + + Other competent National Authority (France) + + + Banque des Etats de l`Afrique Centrale (BEAC) (Gabon) + + + Ministere du Plan (Gabon) + + + Ministry of Economy, Finance and Privatization (Gabon) + + + Tresorier-Payeur General du Gabon + + + Office for National Statistics (United Kingdom) + + + Bank of England (United Kingdom) + + + Department of Environment, Transport and the Regions (United Kingdom) + + + Department of Trade and Industry (United Kingdom) + + + Markit (United Kingdom) + + + CAA (Civil Aviation Authority) + + + Other competent National Authority (United Kingdom) + + + Eastern Caribbean Central Bank (ECCB) (Grenada) + + + Ministry of Finance (Grenada) + + + State Department for Statistics of Georgia + + + National Bank of Georgia + + + Ministry of Finance (Georgia) + + + Other competent National Authority (Georgia) + + + Institut National de la Statistique et des Etudes Economiques - INSEE - Service regional (Guiana, French) + + + Other competent National Authority (Guiana, French) + + + Financial Services Commission, Guernsey (GG) + + + Ghana Statistical Service + + + Bank of Ghana + + + Ministry of Finance (Ghana) + + + Other competent National Authority (Ghana) + + + Central Statistics Division (Gambia) + + + Central Bank of The Gambia + + + Ministry of Finance and Economic Affairs (Gambia) + + + Service de la Statistique generale et de la Mecanographie (Guinea) + + + Banque Centrale de la Republique de Guinee + + + Ministere de l`Economie et des Finances (Guinea) + + + Other competent National Authority (Guinea) + + + Institut National de la Statistique et des Etudes Economiques - INSEE -Service regional (Guadeloupe) + + + Other competent National Authority (Guadeloupe) + + + Banque des Etats de l`Afrique Centrale (BEAC) (Equatorial Guinea) + + + Ministerio de Economia y Hacienda (Equatorial Guinea) + + + National Statistical Service of Greece (Greece) + + + Bank of Greece (Greece) + + + Ministry of Economy and Finance (Greece) + + + Civil Aviation Authority + + + Other competent National Authority (Greece) + + + Instituto Nacional de Estadistica (Guatemala) + + + Banco de Guatemala + + + Ministerio de Finanzas Publicas (Guatemala) + + + Other competent National Authority (Guatemala) + + + Guam Bureau of Statistics + + + Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Guinea-Bissau) + + + Ministere de l`Economie et des Finances (Guinea-Bissau) + + + Statistical Bureau / Ministry of Planning (Guyana) + + + Bank of Guyana + + + Ministry of Finance (Guyana) + + + Other competent National Authority (Guyana) + + + Census and Statistics Department (China, P.R. Hong Kong) + + + Hong Kong Monetary Authority + + + Financial Services and the Treasury Bureau (Treasury) (China, P.R. Hong Kong) + + + Other competent National Authority (Hong Kong) + + + Direccion General de Censos y Estadisticas (Honduras) + + + Banco Central de Honduras + + + Ministerio de Hacienda y Credito Publico (Honduras) + + + Other competent National Authority (Honduras) + + + Central Bureau of Statistics (Croatia) + + + Croatian National Bank + + + Ministry of Finance (Croatia) + + + Other competent National Authority (Croatia) + + + Institut Haitien de Statistique et d`Informatique (Haiti) + + + Banque de la Republique dHaiti + + + Ministere de l`Economie et des Finances (Haiti) + + + Other competent National Authority (Haiti) + + + Hungarian Central Statistical Office + + + National Bank of Hungary + + + Ministry of Finance (Hungary) + + + Other competent National Authority (Hungary) + + + Euro area 12 central banks + + + Euro area 13 central banks + + + Euro area 15 central banks + + + Euro area 16 central banks + + + Euro area 17 central banks + + + Euro area 18 central banks + + + Euro area 19 central banks + + + BPS-Statistics Indonesia + + + Bank Indonesia + + + Ministry of Finance (Indonesia) + + + Other competent National Authority (Indonesia) + + + Central Statistical Office (Ireland) + + + Central Bank of Ireland (Ireland) + + + The Office of the Revenue Commissioners (Ireland) + + + Department of Finance (Ireland) + + + Other competent National Authority (Ireland) + + + Central Bureau of Statistics (Israel) + + + Bank of Israel + + + Other competent National Authority (Israel) + + + Financial Supervision Commission, Isle of Man (IM) + + + Reserve Bank of India + + + Ministry of Finance (India) + + + Central Bank of Iraq + + + Ministry of Finance (Iraq) + + + The Central Bank of the Islamic Republic of Iran + + + Statistics Iceland + + + Central Bank of Iceland + + + Civil Aviation Administration + + + Other competent National Authority (Iceland) + + + Instituto Nazionale di Statistica - ISTAT (Italy) + + + Banca d` Italia (Italy) + + + Ufficio Italiano dei Cambi (Italy) + + + Ministerio de Tesore (Italy) + + + Instituto di Studi e Analisi Economica (Italy) + + + Other competent National Authority (Italy) + + + Financial Services Commission, Jersey (JE) + + + Statistical Institute of Jamaica + + + Bank of Jamaica + + + Ministry of Finance and Planning (Jamaica) + + + Other competent National Authority (Jamaica) + + + Department of Statistics (Jordon) + + + Central Bank of Jordan + + + Ministry of Finance (Jordon) + + + Other competent National Authority (Jordan) + + + Bureau of Statistics (Japan) + + + Bank of Japan + + + Ministry of Finance (Japan) + + + Financial Services Agency (Japan) + + + Central Bureau of Statistics (Kenya) + + + Central Bank of Kenya + + + Ministry of Planning and National Development (Kenya) + + + Office of the Vice President and Ministry of Finance (Kenya) + + + Other competent National Authority (Kenya) + + + National Statistical Committee of Kyrgyz Republic + + + National Bank of the Kyrgyz Republic + + + Ministry of Finance (Kyrgyz Republic) + + + Other competent National Authority (Kyrgyz Republic) + + + National Institute of Statistics (Cambodia) + + + National Bank of Cambodia + + + Ministere de l`economie et des finances (Cambodia) + + + Bank of Kiribati, Ltd + + + Ministry of Finance and Economic Planning (Kiribati) + + + Banque Centrale des Comoros + + + Ministere des Finances, du budget et du plan (Comoros) + + + Statistical Office (St. Kitts and Nevis) + + + Eastern Caribbean Central Bank (ECCB) (St. Kitts and Nevis) + + + Ministry of Finance (St. Kitts and Nevis) + + + Korea National Statistical Office (KNSO) + + + The Bank of Korea + + + Economic Planning Board (Korea, Republic of) + + + Ministry of Finance and Economy (Korea, Republic of) + + + Statistics and Information Technology Sector (Kuwait) + + + Central Bank of Kuwait + + + Ministry of Finance (Kuwait) + + + Other competent National Authority (Kuwait) + + + Department of Finance and Development / Statistical Office (Cayman Islands) + + + Cayman Islands Monetary Authority + + + Other competent National Authority (Cayman Islands) + + + National Statistical Agency / Ministry of Economy and Trade of the Republic of Kazakhstan + + + National Bank of the Republic of Kazakhstan + + + Ministry of Finance (Kazakhstan) + + + Other competent National Authority (Kazakhstan) + + + Bank of the Lao P.D.R. + + + Ministry of Finance (Lao Peoples Democratic Republic) + + + Central Administration of Statistics (Lebanon) + + + Banque du Liban (Lebanon) + + + Ministere des finances (Lebanon) + + + Other competent National Authority (Lebanon) + + + Statistical Office (St. Lucia) + + + Eastern Caribbean Central Bank (ECCB) (St. Lucia) + + + Ministry of Finance, International Financial Services and Economic Affairs (St. Lucia) + + + Amt fur Volkswirtschaft + + + Other competent National Authority (Liechtenstein) + + + Central Bank of Sri Lanka + + + Ministry of Planning and Economic Affairs (Liberia) + + + Central Bank of Liberia + + + Ministry of Finance (Liberia) + + + Other competent National Authority (Liberia) + + + Bureau of Statistics (Lesotho) + + + Central Bank of Lesotho + + + Ministry of Finance (Lesotho) + + + Lithuania, Department of Statistics + + + Bank of Lithuania + + + Ministry of Finance (Lithuania) + + + Other competent National Authority (Lithuania) + + + STATEC - Service central de la statistique et des etudes economiques du Luxembourg + + + Banque centrale du Luxembourg + + + CSSF (Luxembourg Financial Sector Surveillance Commission) + + + Other competent National Authority (Luxembourg) + + + Central Statistical Bureau of Latvia + + + Bank of Latvia + + + The Treasury of the Republic of Latvia + + + FCMC (Latvia Financial and Capital Market Commission) + + + Other competent National Authority (Latvia) + + + The National Corporation for Information and Documentation (Libya) + + + Central Bank of Libya + + + General Peoples Secretariat of the Treasury (Libya) + + + General Directorate for Economic and Social Planning (Libya) + + + The National Corporation for Information and Documentation (Libya) + + + Other competent National Authority (Libya) + + + Ministere de la Prevision Economique et du Plan (Morocco) + + + Bank Al-Maghrib (Morocco) + + + Ministere de l`Economie, des Finances, de la Privatisation et du Tourisme (Morocco) + + + Office des Changes (Morocco) + + + Other competent National Authority (Morocco) + + + Statistical Office (Monaco) + + + Monaco National Central Bank + + + Other competent National Authority (Monaco) + + + State Depart. of Statist. of the Rep. of Moldova + + + National Bank of Moldova + + + Ministry of Finance (Moldova) + + + Other competent National Authority (Moldova) + + + Statistical Office (Montenegro) + + + Central Bank of Montenegro + + + INSTAT/Exchanges Commerciaux et des Services (Madagascar) + + + Banque Centrale de Madagascar + + + Ministere des finances de l`Economie (Madagascar) + + + Other competent National Authority (Madagascar) + + + Ministry of Finance (Marshall Islands, Rep) + + + State Statistical Office (Macedonia) + + + National Bank of the Republic of Macedonia + + + Ministry of Finance (Macedonia) + + + Other competent National Authority (Macedonia, FYR) + + + Direction Nationale de la Statistique et de l`Informatique (DNSI) (Mali) + + + Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Mali) + + + Ministere des Finances et du Commerce (Mali) + + + Other competent National Authority (Mali) + + + Central Statistical Organization (Myanmar) + + + Central Bank of Myanmar + + + Ministry of Finance and Revenue (Myanmar) + + + Other competent National Authority (Myanmar) + + + National Statistical Office (Mongolia) + + + Bank of Mongolia + + + Ministry of Finance and Economy (Mongolia) + + + Other competent National Authority (Mongolia) + + + Statistics and Census Department (China, P.R. Macao) + + + Monetary Authority of Macau (China, P.R. Macao) + + + Revenue Bureau of Macao + + + Departamento de Estudos e Planeamento Financeiro (China, P.R. Macao) + + + Other competent National Authority (China,P.R., Macao) + + + Department of Statistics (Martinique) + + + Other competent National Authority (Martinique) + + + Department of Statistics and Economic Studies (Mauritania) + + + Banque Centrale de Mauritanie + + + Ministere du Plan (Mauritania) + + + Ministere des Finances (Mauritania) + + + Malta - Central Office of Statistics + + + Central Bank of Malta + + + Ministry of Finance (Malta) + + + MFSA (Malta Financial Services Authority) + + + Malta Maritime Authority + + + Malta International Airport + + + Other competent National Authority (Malta) + + + Central Statistical Office (Mauritius) + + + Bank of Mauritius + + + Other competent National Authority (Mauritius) + + + Maldives Monetary Authority (Maldives) + + + Ministry of Planning and Development (Maldives) + + + Ministry of Finance and Treasury (Maldives) + + + National Statistical Office (Malawi) + + + Reserve Bank of Malawi + + + Ministry of Finance (Malawi) + + + Other competent National Authority (Malawi) + + + Instituto Nacional de Estadisticas (INEGI) (Mexico) + + + Banco de Mexico + + + Secretaria de Hacienda y Credito Publico (Mexico) + + + Other competent National Authority (Mexico) + + + Department of Statistics Malaysia + + + Bank Negara Malaysia + + + Other competent National Authority (Malaysia) + + + Direccao Nacional de Estatistica (Mozambique) + + + Banco de Mocambique + + + Ministry of Planning and Finance (Mozambique) + + + Other competent National Authority (Mozambique) + + + Central Bureau of Statistics (Namibia) + + + Bank of Namibia + + + Ministry of Finance (Namibia) + + + Institut Territorial de la Statistique et des Etudes Economiques (New Caledonia) + + + Other competent National Authority (French Territories, New Caledonia) + + + Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Niger) + + + Ministere du Plan (Niger) + + + Ministere des Finances (Niger) + + + Federal Office of Statistics (Nigeria) + + + Central Bank of Nigeria + + + Federal Ministry of Finance (Nigeria) + + + Other competent National Authority (Nigeria) + + + Banco Central de Nicaragua + + + Ministerio de Hacienda y Credito Publico (Nicaragua) + + + Central Bureau voor de Statistiek (Netherlands) + + + Nederlandse Bank (Netherlands) + + + Ministry of Finance (Netherlands) + + + Other competent National Authority (Netherlands) + + + Statistics Norway + + + Norges Bank (Norway) + + + Avinor (Civil Aviation Administration) + + + Other competent National Authority (Norway) + + + Central Bureau of Statistics (Nepal) + + + Nepal Rastra Bank + + + Ministry of Finance (Nepal) + + + Nauru Bureau of Statistics (Nauru) + + + Ministry of Finance (Nauru) + + + Other competent National Authority (Nauru) + + + Statistics Offie Niue + + + Statistics New Zealand + + + Reserve Bank of New Zealand + + + Other competent National Authority (New Zealand) + + + Central Bank of Oman + + + Ministry of Finance (Oman) + + + Directorate of Statistics and Census (Panama) + + + Banco Nacional de Panama + + + Office of the Controller General (Panama) + + + Superintendencia de Bancos (Panama) + + + Banco Central de Reserva del Peru + + + Ministerio de Economia y Finanzas (Peru) + + + National Statistical Office (Papua New Guinea) + + + Bank of Papua New Guinea + + + Other competent National Authority (Papua New Guinea) + + + Central Bank of the Philippines + + + Bureau of the Treasury (Philippines) + + + Federal Bureau of Statistics (Pakistan) + + + State Bank of Pakistan + + + Ministry of Finance and Revenue (Pakistan) + + + Other competent National Authority (Pakistan) + + + Central Statistical Office of Poland + + + Bank of Poland + + + Ministry of Finance (Poland) + + + Other competent National Authority (Poland) + + + Palestinian Central Bureau of Statistics + + + Palestine Monetary Authority + + + Other competent National Authority (West Bank and Gaza) + + + Instituto Nacional de Estatistica (Portugal) + + + Banco de Portugal (Portugal) + + + Direccao Geral do Orcamento (DGO) (Portugal) + + + Ministerio Das Financas (Portugal) + + + Other competent National Authority (Portugal) + + + Statistical office (Palau) + + + Other competent National Authority (Palau) + + + Banco Central del Paraguay + + + Ministerio de Hacienda (Paraguay) + + + Qatar Central Bank + + + Customs Department (Qatar) + + + Ministry of Finance, Economy and Commerce (Qatar) + + + Romania, National Commission for Statistics + + + National Bank of Romania + + + Ministere des Finances Public (Romania) + + + Other competent National Authority (Romania) + + + Statistical Office of the Republic of Serbia + + + National Bank of Serbia (NBS) (Serbia, Rep. of) + + + State Committee of the Russian Federation on Statistics + + + Central Bank of Russian Federation + + + State Customs Committee of the Russian Federation + + + Ministry of Finance (Russian Federation) + + + Other competent National Authority (Russian Federation) + + + General Office of Statistics (Rwanda) + + + Banque Nationale Du Rwanda + + + Ministere des Finances et Planification Economie (Rwanda) + + + Central Department of Statistics (Saudi Arabia) + + + Saudi Arabian Monetary Agency + + + Ministry of Finance (Saudi Arabia) + + + Other competent National Authority (Saudi Arabia) + + + Statistical Office (Solomon Islands) + + + Central Bank of Solomon Islands + + + Ministry of Finance and Treasury (Solomon Islands) + + + Central Bank of Seychelles + + + Ministry of Finance (Seychelles) + + + Ministry of Administration and Manpower, Management and Information Systems Division (Seychelles) + + + Central Bureau of Statistics (Sudan) + + + Bank of Sudan + + + Ministry of Finance and National Economy (Sudan) + + + Other competent National Authority (Sudan) + + + Statistics Sweden (Sweden) + + + Sveriges Riksbank (Sweden) + + + Sika Swedish Institute for Transport and Communications Analysis + + + Banverket (National Rail Administration) Sweden + + + National Institute of Economic Research (Sweden) + + + Other competent National Authority (Sweden) + + + Ministry of Trade and Industry / Department of Statistics (Singapore) + + + Monetary Authority of Singapore + + + International Enterprise Singapore + + + Ministry of Finance (Singapore) + + + Other competent National Authority (Singapore) + + + Saint Helena Statistical Office + + + Statistical Office of the Republic of Slovenia + + + Bank of Slovenia + + + Ministry of Finance (Slovenia) + + + Other competent National Authority (Slovenia) + + + Statistical Office of the Slovak Republic + + + National Bank of Slovakia + + + Ministry of Finance of the Slovak Republic + + + Other competent National Authority (Slovak Republic) + + + Bank of Sierra Leone + + + Office of Economic Planning and Data Processing Center and Statistics (San Marino) + + + Instituto di Credito Sammarinese / Central Bank (San Marino) + + + Ministry of Finance and Budget (San Marino) + + + Direction de la Prevision et de la Statistique (Senegal) + + + Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Senegal) + + + Ministere de l`Economie et des Finances (Senegal) + + + Other competent National Authority (Senegal) + + + Central Bank of Somalia + + + General Bureau of Statistics (Suriname) + + + Centrale Bank van Suriname + + + Ministry of Finance (Suriname) + + + Other competent National Authority (Suriname) + + + National Bureau of Statistics (South Sudan) + + + Central bank of South Sudan + + + Other competent National Authority (South Sudan) + + + Banco Central de Sao Tome e Principe + + + Ministry of Planning and Financing (Sao Tome and Principe) + + + Banco Central de Reserva de El Salvador + + + Ministerio de Hacienda (El Salvador) + + + Bureau for Statistics Sint Maarten + + + Other competent National Authority (Sint Maarten) + + + Central Bureau of Statistics (Syria Arab Rep.) + + + Central Bank of Syria + + + Ministry of Finance (Syrian Arab Rep.) + + + Other competent National Authority (Syrian Arab Republic) + + + Central Statistical Office (Swaziland) + + + Central Bank of Swaziland + + + Ministry of Finance (Swaziland) + + + Ministry of Finance (Turks and Caicos) + + + Other competent National Authority (Turks and Caicos) + + + Institut de la Statistique (INSDEE) (Chad) + + + Banque des Etats de l`Afrique Centrale (BEAC) (Chad) + + + Ministere des finances (Chad) + + + Other competent National Authority (Chad) + + + Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Togo) + + + Ministere du Plan (Togo) + + + Ministere de l`Economie des Finances (Togo) + + + Bank of Thailand + + + Ministry of Finance (Thailand) + + + National Economic and Social Development Board (Thailand) + + + State Statistical Agency of Tajikistan + + + National Bank of Tajikistan + + + Ministry of Finance (Tajikistan) + + + Other competent National Authority (Tajikistan) + + + Statistical Office (Timor Leste) + + + Banco Central de Timor-Leste + + + Ministry of Finance (Timor-Leste) + + + Other competent National Authority (Timor-Leste) + + + National Institute of State Statistics and Information (Turkmenistan) + + + Central Bank of Turkmenistan + + + Ministry of Economy and Finance (Turkmenistan) + + + Other competent National Authority (Turkmenistan) + + + National Institute of Statistics (Tunisia) + + + Banque centrale de Tunisie + + + Ministere des Finances (Tunisia) + + + Statistics Department (Tongo) + + + National Reserve Bank of Tonga + + + Ministry of Finance (Tongo) + + + Other competent National Authority (Tonga) + + + State Institute of Statistics (Turkey) + + + Central Bank of the Republic of Turkey + + + Hazine Mustesarligi (Turkish Treasury) + + + State Airports Authority + + + Other competent National Authority (Turkey) + + + Central Statistical Office (Trinidad and Tobago) + + + Central Bank of Trinidad and Tobago + + + Ministry of Finance (Trinidad and Tobago) + + + Tuvalu Statistics + + + Central Bank of China, Taipei + + + Central Statistical Bureau (Tanzania) + + + Bank of Tanzania + + + Ministry of Finance (Tanzania) + + + Other competent National Authority (Tanzania) + + + Central banks belonging to the Euro area + + + EU central banks not belonging to the Euro area + + + State Statistics Committee of Ukraine + + + National Bank of Ukraine + + + Ministry of Finance (Ukraine) + + + Other competent National Authority (Ukraine) + + + Uganda Bureau of Statistics + + + Bank of Uganda + + + Ministry of Finance, Planning and Economic Development (Uganda) + + + Other competent National Authority (Uganda) + + + Federal Reserve Bank of New York (USA) + + + Board of Governors of the Federal Reserve System (USA) + + + U.S. Department of Treasury (USA) + + + U.S. Department of Commerce (USA) + + + Bureau of Labor Statistics + + + Bureau of Census + + + Bureau of Economic Analysis + + + Banco Central del Uruguay + + + Ministerio de Economia y Finanzas (Uruguay) + + + Goskomprognozstat (Uzbekistan) + + + Ministry of Economy (Uzbekistan) + + + Ministry of Finance (Uzbekistan) + + + Other competent National Authority (Uzbekistan) + + + EU 27 central banks + + + EU 28 central banks + + + Holy See (Vatican City State) National Central Bank + + + Statistical Unit (St. Vincent and Grenadines) + + + Eastern Caribbean Central Bank (ECCB) (St. Vincent and Grenadines) + + + Ministry of Finance and Planning (St. Vincent and the Grenadines) + + + Banco Central de Venezuela + + + Ministerio de Finanzas (Venezuela) + + + Other competent National Authority (Virgin Islands, British) + + + Other competent National Authority (Virgin Islands, US) + + + General Statistics Office (Vietnam) + + + State Bank of Vietnam + + + Other competent National Authority (Vietnam) + + + Statistical Office (Vanuatu) + + + Reserve Bank of Vanuatu + + + Ministry of Finance and Economic Management (Vanuatu) + + + Other competent National Authority (Vanuatu) + + + Department of Statistics (Samoa) + + + Central Bank of Samoa + + + Samoa Treasury Department + + + Other competent National Authority (Samoa) + + + Kosovo National statistical Office + + + Kosovo National Bank + + + Ministry of Finance (Kosovo) + + + Other competent National Authority (Kosovo) + + + Central Statistical Organization (Yemen) + + + Central Bank of Yemen + + + Ministry of Finance (Yemen) + + + Other competent National Authority (Yemen, Republic of) + + + South African Reserve Service + + + South African Reserve Bank + + + Department of Customs and Excise (South Africa) + + + Other competent National Authority (South Africa) + + + Central Statistical Office (Zambia) + + + Bank of Zambia + + + Other competent National Authority (Zambia) + + + Central Statistical Office (Zimbabwe) + + + Reserve Bank of Zimbabwe + + + Ministry of Finance, Economic Planning and Development (Zimbabwe) + + + Other competent National Authority (Zimbabwe) + + + Unspecified (e.g. any, dissemination, internal exchange etc) + + + + Unit code list + + All currencies of denomination + + + Not specified + + + Not applicable + + + Andorran franc (1-1 peg to the French franc) + + + Andorran peseta (1-1 peg to the Spanish peseta) + + + United Arab Emirates dirham + + + Afghanistan afghani (old) + + + Afghanistan, Afghanis + + + Albanian lek + + + Armenian dram + + + Netherlands Antillean guilder + + + Angolan kwanza + + + Angolan kwanza (old) + + + Angolan kwanza readjustado + + + Argentine peso + + + Austrian schilling + + + Australian dollar + + + Aruban florin/guilder + + + Azerbaijanian manat (old) + + + Azerbaijan, manats + + + Bosnia-Hezergovinian convertible mark + + + Barbados dollar + + + Bangladesh taka + + + Belgian franc + + + Belgian franc (financial) + + + Bulgarian lev (old) + + + Bulgarian lev + + + Bahraini dinar + + + Burundi franc + + + Bermudian dollar + + + Brunei dollar + + + Bolivian boliviano + + + Mvdol + + + Brasilian cruzeiro (old) + + + Brazilian real + + + Bahamas dollar + + + Bitcoin + + + Bhutan ngultrum + + + Botswana pula + + + Belarussian rouble (old) + + + Belarusian ruble + + + Belarusian ruble (old) + + + Belize dollar + + + European Commission IC-36 group of currencies (European Union 27 Member States, i.e. BE, DE, EE, GR, ES, FR, IE, IT, CY, LU, NL, MT, AT, PT, SI, SK, FI, BG, CZ, DK, LV, LT, HU, PL, RO, SE, GB, and US, AU, CA, JP, MX, NZ, NO, CH, TR) + + + Canadian dollar + + + National currency per US dollar (unit for exchange rates and PPP) + + + Congo franc (ex Zaire) + + + National currency per Euro (unit for exchange rates and PPP) + + + WIR Euro + + + Swiss franc + + + WIR Franc + + + Chile Unidades de fomento + + + Chilean peso + + + Chinese yuan offshore + + + Chinese yuan renminbi + + + Colombian peso + + + Unidad de Valor Real + + + Costa Rican colon + + + Serbian dinar + + + Cuban convertible peso + + + Cuban peso + + + Cape Verde escudo + + + Cypriot pound + + + Czech koruna + + + Days + + + German mark + + + Djibouti franc + + + Danish krone + + + Dominican peso + + + Days + + + Algerian dinar + + + Euro area changing composition and the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US) + + + Euro area-18 countries and the EER-20 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LT, HU, PL, RO, HR and CN) + + + Euro area-18 countries and the EER-19 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LT, HU, PL, RO, and CN) + + + Euro area-18 countries and the EER-39 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, LT, HU, PL, RO, CN, DZ, AR, BR, CL, HR, IS, IN, ID, IL, MY, MX, MA, NZ, PH, RU, ZA, TW, TH, TR and VE) + + + Euro area-18 countries and the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US) + + + Euro area-19 countries and the EER-19 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, HU, PL, RO, HR and CN) + + + Euro area-19 countries and the EER-18 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, HU, PL, RO, and CN) + + + Euro area-19 countries and the EER-38 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, BG, CZ, HU, PL, RO, CN, DZ, AR, BR, CL, HR, IS, IN, ID, IL, MY, MX, MA, NZ, PH, RU, ZA, TW, TH, TR and VE) + + + Euro area-19 countries and the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US) + + + Ecuador sucre + + + Estonian kroon + + + Egyptian pound + + + Erytrean nafka + + + Spanish peseta + + + Ethiopian birr + + + Euro + + + Finnish markka + + + Fiji dollar + + + Falkland Islands pound + + + French franc + + + Full time equivalent + + + UK pound sterling + + + Georgian lari + + + Guernsey, Pounds + + + Ghana Cedi (old) + + + Ghana Cedi + + + Gibraltar pound + + + Gambian dalasi + + + Guinea franc + + + Grams + + + Greek drachma + + + Guatemalan quetzal + + + Guinea-Bissau Peso (old) + + + Guyanan dollar + + + Euro area 18 currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LV, MT, SK) + + + ECB EER-38 group of currencies and Euro area (latest composition) currencies (FR,BE,LU,NL,DE,IT,IE,PT,ES,FI,AT,GR,SI,AU,CA,CN,DK,HK,JP,NO,SG,KR,SE,CH,GB,US,CY,CZ,EE,HU,LV,LT,MT,PL,SK,BG,RO,NZ,DZ,AR,BR,HR,IN,ID,IL,MY,MX,MA,PH,RU,ZA,TW,TH,TR,IS,CL,VE) + + + ECB EER-19 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR) + + + ECB EER-12 group of currencies and Euro areas (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LV, MT, SK, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US) + + + ECB EER-19 group of currencies and Euro areas (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO) + + + European Commission IC-36 group of currencies (European Union 27 Member States, i.e. BE, DE, EE, GR, ES, FR, IE, IT, CY, LU, NL, MT, AT, PT, SI, SK, FI, BG, CZ, DK, LV, LT, HU, PL, RO, SE, GB, and US, AU, CA, JP, MX, NZ, NO, CH, TR) + + + European Commission IC-37 group of currencies (European Union 28 Member States, i.e. BE, DE, EE, GR, ES, FR, IE, IT, CY, LU, NL, MT, AT, PT, SI, SK, FI, BG, CZ, DK, HR, LV, LT, HU, PL, RO, SE, GB, and US, AU, CA, JP, MX, NZ, NO, CH, TR) + + + ECB EER-39 group of currencies and Euro areas (latest composition) currencies (FR,BE,LU,NL,DE,IT,IE,PT,ES,FI,AT,GR,SI,AU,CA,CN,DK,HK,JP,NO,SG,KR,SE,CH,GB,US,CY,CZ,EE,HU,LV,LT,MT,PL,SK,BG,RO,NZ,DZ,AR,BR,HR,IN,ID,IL,MY,MX,MA,PH,RU,ZA,TW,TH,TR,IS,CL,VE) + + + European Commission IC-42 group of currencies (European Union 28 Member States, i.e. BE,DE,EE,GR,ES,FR,IE,IT,CY,LU,NL,MT,AT,PT,SI,SK,FI,BG,CZ,DK,HR,LV,LT,HU,PL,RO,SE,GB, and US,AU,CA,JP,MX,NZ,NO,CH,TR,KR,CN,HK,RU,BR) + + + ECB EER-20 group of currencies and Euro areas (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR) + + + ECB EER-12 group of currencies and Euro areas (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO, HR, TR and RU) + + + Euro area 19 currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LT, LV, MT, SK) + + + ECB EER-12 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LT, LV, MT, SK, AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US) + + + ECB EER-18 group of currencies and Euro area (latest composition) currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, AU, CA, CN, DK, HK, JP, NO, SG, KR, SE, CH, GB, US, CY, CZ, EE, HU, LV, LT, MT, PL, SK, BG, RO) + + + Hong Kong dollar + + + Hong Kong dollar (old) + + + Honduran lempira + + + Hours + + + Hours + + + Croatian kuna + + + Haitian gourde + + + Hungarian forint + + + Hours worked + + + Indonesian rupiah + + + Irish pound + + + Israeli shekel + + + Isle of Man, Pounds + + + Indian rupee + + + Iraqi dinar + + + Iranian rial + + + Iceland krona + + + Italian lira + + + Index + + + Jobs + + + Jersey, Pounds + + + Jamaican dollar + + + Jordanian dinar + + + Japanese yen + + + Kenyan shilling + + + Kilograms + + + Kyrgyzstan som + + + Kampuchean real (Cambodian) + + + Kilograms deprecated + + + Kilolitres + + + Kilolitres deprecated + + + Comoros franc + + + Korean won (North) + + + Korean won (Republic) + + + Kuwait dinar + + + Cayman Islands dollar + + + Kazakstan tenge + + + Lao kip + + + Lebanese pound + + + Litres deprecated + + + Sri Lanka rupee + + + Liberian dollar + + + Lesotho loti + + + Litres + + + Lithuanian litas + + + Luxembourg franc + + + Latvian lats + + + Libyan dinar + + + Moroccan dirham + + + Man Days + + + Moldovian leu + + + Madagascar, Ariary + + + Malagasy franc + + + Months + + + Macedonian denar + + + Myanmar kyat + + + Mongolian tugrik + + + Months + + + Macau pataca + + + Square Metres + + + Mauritanian ouguiya + + + Ouguiya + + + Maltese lira + + + Mauritius rupee + + + Maldive rufiyaa + + + Malawi kwacha + + + Mexican peso + + + Mexican peso (old) + + + Mexican Unidad de Inversion (UDI) + + + Man Years + + + Malaysian ringgit + + + Mozambique metical (old) + + + Mozambique, Meticais + + + Namibian dollar + + + National currency + + + Nigerian naira + + + Nicaraguan cordoba + + + Netherlands guilder + + + Norwegian krone + + + Nepaleese rupee + + + New Zealand dollar + + + Oman Sul rial + + + Ounces + + + Ounces + + + Percent per annum + + + Panama balboa + + + Percent + + + Percentage change + + + Percent per annum + + + Percentage change (code value to be discontinued) + + + Percentage points + + + Euro, converted using purchasing power parities + + + Peru nuevo sol + + + Persons + + + Papua New Guinea kina + + + Philippine piso + + + Pakistan rupee + + + Polish zloty + + + Polish zloty (old) + + + Per thousand + + + Pure number + + + Points + + + Points + + + Purchasing power parities + + + Persons + + + Percent + + + Portuguese escudo + + + US dollar, converted using purchasing power parities + + + Pure number + + + Paraguay guarani + + + Qatari rial + + + Ratio + + + Romanian leu (old) + + + Romanian leu + + + Serbian dinar + + + Interest rate + + + Russian rouble + + + Russian ruble (old) + + + Rwanda franc + + + Saudi riyal + + + Solomon Islands dollar + + + Seychelles rupee + + + Sudanese dinar + + + Sudan, Dinars + + + Sudanese pound (old) + + + Swedish krona + + + Singapore dollar + + + St. Helena pound + + + Slovenian tolar + + + Slovak koruna + + + Sierra Leone leone + + + Somali shilling + + + Seborga, Luigini + + + Square Metres deprecated + + + Suriname, Dollars + + + Suriname guilder + + + South sudanese pound + + + Sao Tome and Principe dobra + + + Sao Tome and Principe dobra + + + El Salvador colon + + + Syrian pound + + + Swaziland lilangeni + + + Thai baht + + + Tajikistan rouble + + + Tajikistan, Somoni + + + Turkmenistan manat (old) + + + Turkmenistan manat + + + Tonnes + + + Tunisian dinar + + + Tonnes deprecated + + + Tongan paanga + + + East Timor escudo + + + Turkish lira (old) + + + Turkish lira + + + Trinidad and Tobago dollar + + + Tuvalu, Tuvalu Dollars + + + New Taiwan dollar + + + Tanzania shilling + + + Ukraine hryvnia + + + Uganda Shilling + + + Unit described in title + + + US dollar + + + US Dollar (Next day) + + + Unit described in title + + + Uruguay Peso en Unidades Indexadas + + + Uruguayan peso + + + Uzbekistan sum + + + Venezuelan bolivar (old) + + + Venezuelan bolivar + + + Vietnamese dong + + + Vanuatu vatu + + + Samoan tala + + + All currencies except national currency + + + All currencies except USD + + + All currencies except EUR + + + All currencies except EUR, USD + + + All currencies except EUR, JPY, USD + + + All currencies except EUR, CHF, GBP, JPY, USD + + + All currencies except EUR, USD, JPY, GBP, CHF, domestic currency + + + CFA franc / BEAC + + + Silver + + + Gold + + + European composite unit + + + European Monetary unit EC-6 + + + European Unit of Account 9 (E.U.A.-9) + + + European Unit of Account 17 (E.U.A.-17) + + + Eastern Caribbean dollar + + + Currencies included in the SDR basket, gold and SDRs + + + Domestic currency (incl. conversion to current currency made using a fixed parity) + + + Domestic currency (incl. conversion to current currency made using a fixed parity); ratio to net value added + + + Domestic currency (incl. conversion to current currency made using a fixed parity); ratio to annual moving sum of sector specific net value added + + + Domestic currency (incl. conversion to current currency made using a fixed parity); ratio to total expenditure in social protection + + + Domestic currency (incl. conversion to current currency made using a fixed parity); ratio to Euro area 19 + + + Domestic currency (incl. conversion to current currency made using market exchange rate) + + + Domestic currency (currency previously used by a country before joining a Monetary Union) + + + Other currencies not included in the SDR basket, excluding gold and SDRs + + + Special Drawing Rights (S.D.R.) + + + European Currency Unit (E.C.U.) + + + Gold-Franc + + + UIC-Franc + + + Gold fine troy ounces + + + Euro area non-participating foreign currency + + + CFA franc / BCEAO + + + Euro area participating foreign currency + + + Palladium Ounces + + + Pacific franc + + + Platinum, Ounces + + + Rhodium + + + Sucre + + + Codes specifically reserved for testing purposes + + + ADB Unit of Account + + + Transactions where no currency is involved + + + Years + + + Yemeni rial + + + Years + + + Yugoslav dinar + + + South African rand + + + Zambian kwacha + + + New zambian kwacha + + + Zimbabwe dollar + + + Fourth Zimbabwe dollar + + + Zimbabwe, Zimbabwe Dollars + + + Third Zimbabwe dollar + + + + Unit multiplier code list + + Units + + + Tens + + + Tenths + + + Tens of billions + + + Ten-billionths + + + Hundreds of billions + + + Hundred-billionths + + + Trillions + + + Trillionths + + + Tens of trillions + + + Ten-trillionths + + + Hundreds of trillions + + + Hundred-trillionths + + + Quadrillions + + + Quadrillionths + + + Hundreds + + + Hundredth + + + Thousands + + + Thousandths + + + Tens of thousands + + + Ten-thousandths + + + Hundreds of thousands + + + Hundred-thousandths + + + Millions + + + Millionths + + + Tens of millions + + + Ten-millionths + + + Hundreds of millions + + + Hundred-millionths + + + Billions + + + Billionths + + + + + + ECB concepts + + Counterpart area + + + Currency + + + Data type in the PDF context + + + OECD QNA suffix + + + Transactions and other flows + + + Product breakdown -TRD context + + + Interest rate type + + + Business demography item + + + Derived data suffix + + + SAFE question + + + Banking indicator + + + Securities valuation + + + Banknote or coin + + + Concept - STS context + + + Outstanding amount + + + Derived data economic concept + + + Maturity category + + + Observation status + + + Institution originating the data flow + + + CBD valuation method + + + PSS data type + + + Financial market provider + + + Information type in securities settlement, clearing, trading context + + + Projection database item + + + Coupon rate of the bond + + + Non-resident economic activity + + + Reporting country + + + OFI reporting sector + + + Valuation + + + BS counterpart sector + + + Effect domain + + + Counterpart area + + + Embargo + + + Methodology publication + + + Reporting delay + + + Creditor user assets sector + + + MUFA source + + + Ameco reference + + + Derived data transformation + + + Banknote/coin series + + + WEO item + + + BLS aggregation method + + + Consolidation + + + Source detail + + + Balance of Payment item + + + Series variation -SHI context + + + Publication source 2 + + + Firm turnover (SAFE) + + + Investment funds reporting sector + + + Type of accounts in TARGET2 + + + Compiliation methodology + + + Assets and liabilities item in financial vehicle corporation context + + + Observation value + + + Series variation - STS context + + + CBD exposure type + + + Area definition + + + Original maturity/Period of notice/Initial rate fixation + + + Bond maturity + + + Portfolio category + + + Ameco reference area + + + Collection explanation detail + + + Source detail 2 + + + Participation of the issuer in the reporting group + + + Repo counterparty + + + Compilation + + + Methodology detail + + + MUFA debtor area + + + NUTS 3 regional classification + + + Forecast topic + + + OECD MEI subject + + + Reporting sector + + + SAFE answer + + + Projection database season exercise + + + Data type - MUFAs context + + + BLS counterpart motivation + + + Series suffix - SEC context + + + Vis-a-vis country + + + SAFE question related item + + + Real time database series denomination + + + Confidentiality status + + + Banknote & coin data type + + + Data type - LIG context + + + OFI balance sheet item + + + Reference sector + + + Unit index base + + + Series suffix - ESA95 context + + + Counterpart sector + + + MUFA item + + + Value & time bands for TARGET2 operations + + + Banking reference BS/P&L Item + + + IFI input-output data + + + Observation comment + + + PSS entry point + + + Stock/flow + + + IFS counterpart area + + + Option type in the PDF context + + + Projection database data origin + + + Denomination in SAFE context + + + Unit of measure + + + Series variation - ICP context + + + Strike price of the options + + + Stocks, Transactions, Other Flows + + + Adjustment indicator + + + International accounts item + + + Adjustment detail + + + Unit multiplier + + + Instrument in securities settlement, clearing and trading context + + + Residual maturity + + + ESA95 account + + + Price base + + + DBI suffix + + + Data type - IFI context + + + External title + + + Publication row value + + + Activity/product/other brkdwns + + + BS reference sector breakdown + + + Nominal currency of the security + + + Lot size units + + + Publication sub-report value + + + Basis, measure + + + Holder sector + + + Reference period detail + + + Data type (vis-a-vis sector / maturity / risk transfers etc.) + + + Series unit - ESA95 context + + + Price type + + + Third party holdings flag + + + Organisation + + + ESA95 breakdown + + + Firm size (SAFE) + + + Compiling organisation + + + Source of property price statistics + + + Reporting sector in financial vehicle corporation context + + + Unit + + + OECD MEI measure + + + OECD MEI & QNA reference area + + + Banking reference institution + + + Source publication (Euro area only) + + + Issuer domicile country + + + Financial market provider identifier + + + Transaction type in the Money Market context + + + Large insurance group related items + + + External trade flow + + + Market role + + + Reporting institutional sector + + + Period of the projection horizon - monthly NIPE, quarterly (B)MPE + + + Title complement, detailed description of the series + + + Time period collection + + + Currency purchase - holding + + + Maturity type + + + PSS instrument + + + MUFA creditor area + + + Unit detail + + + Data type - DBI context + + + Publication item value + + + External unit multiplier + + + Ameco aggregation method + + + FXS market type transaction + + + Publication source + + + Property types in CPP context + + + Source publication (public) + + + Classification - ICP context + + + Series denominat/spec calcul + + + Ameco item + + + EAPlus flag + + + Instrument type in the Money Market context + + + Raw statistical data source + + + Structural housing indicators + + + Issuer ESA 2010 sector + + + Interest rate type (fix/var) + + + OECD A16 code + + + CBD reporting framework + + + Weekly oil bulletin taxation + + + International Financial Statistics block + + + Counterpart sector + + + Flows and stocks indicator + + + Securities data type + + + BIS economic phenomenon + + + EONIA bank + + + OECD QNA measure + + + MUFA creditor sector + + + OEO code + + + Pre-break value + + + Debt type + + + Real time database item + + + ESCB flag + + + Reference area + + + CBD reference sector breakdown + + + Accounting entries + + + Resource or liability sector + + + Reporting group + + + Title complement + + + Currency breakdown + + + Macro-adjustment flag + + + options type + + + Financial instrument Identifier + + + SAFE filter - applicable answer + + + Type of payments in TARGET2 + + + Insurance corporations and pension funds assets and liabilities + + + Resident economic activity + + + Adjustment detail + + + Valuation + + + Compilation approach indicator + + + Firm other breakdowns (ownership, export) (SAFE) + + + Contract month/expired date + + + OECD QNA subject + + + OECD SNA measure + + + Quarter of the projection exercise + + + Uses and resources + + + Aggregation equations + + + Collateral + + + Ameco transformation + + + BIS suffix + + + Counterpart area + + + Group type + + + Data type - BoP related data + + + Reference table number + + + Insurance corporations operations item + + + Financial market data type + + + Data type in money market context + + + Frequency + + + Activity + + + CBD reference sector size + + + Currency denominator + + + Forecaster identifier + + + Classification - STS context + + + Property data series variation + + + Data dissemination organisation + + + Firm economic activity (SAFE) + + + System in the central counterparty clearing context + + + Embargo details + + + Balance sheet item + + + EONIA item + + + Time horizon + + + Breaks + + + Debtor resource liabil sector + + + Source agency 2 + + + Originator sector in financial vehicle corporation context + + + Oversight Indicators + + + Currency of transaction + + + MFI category + + + Series variation - EXR context + + + Holder country + + + BKN denomination breakdown + + + Maturity + + + Money market segment + + + Financial market instrument + + + Comments to the observation value + + + Domestic series ids + + + Series variation - GST context + + + Securities item + + + Valuation - GST context + + + Forecast histograph breakdown + + + Floating rate base + + + Weekly oil bulletin concept + + + Data type + + + Securities issuing sector + + + Currency sale + + + Investment funds item + + + National language title + + + Bank lending survey item + + + Type of reporting banks + + + PSS information type + + + External reference area + + + Pre-break observation value + + + BoP data collection basis + + + MFI interest rate data type + + + Model assumption error + + + Series variation -TRD context + + + Type of insurance business + + + MUFAs valuation + + + CBD portfolio + + + Oil product + + + System in securities settlement and clearing context + + + Methodology reference + + + Source agency + + + Forecast horizon + + + WEO reference area + + + Data type in FXS context + + + Nat accounts price reference + + + IFS code + + + Structural statist indicator + + + ECB publication + + + Banknote & coin related items + + + Methodological explanation + + + Is in EADB + + + Balance sheet suffix + + + Transaction type + + + Counterpart institution sector + + + Publication column value + + + Property indicator + + + Money market bank + + + MUFA debtor sector + + + Firm age (SAFE) + + + Underlying compilation + + + Methodology agency + + + Denomination + + + Source publication (ECB only) + + + Property geographical coverage + + + Series variation - RPP context + + + Availability + + + Consolidated banking data item + + + Asset/instr classification + + + MFI status + + + Programme credit rating + + + BLS contract counterpart + + + Series variation - IR context + + + IR business coverage + + + Observation confidentiality + + + Security type + + + Instrument and assets classification + + + Exchange rate type + + + Frequency of the survey + + + Coverage + + + Unit price base + + + Use or asset sector + + + ESA item - GST context + + + Decimals + + + Original maturity + + + Individual MFI list + + + Ancillary systems settling in TARGET2 + + + Method in CPP context + + + External unit + + + Product breakdown + + + Collection indicator + + + Type of residential property + + + Amount category + + + Bank selection + + + Insurance corporations operations unit + + + Split into EMU/non-EMU issuer + + + Title + + + OECD SNA subject + + + Operation type in FXS context + + + System in securities exchange (trading) context + + + Asset securitisation type + + + Time format code + + + Functional category + + + Weight in trade flows + + + OECD Economic Outlook subject + + + Ameco unit + + + Time period or range + + + + + + Exchange Rates + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Constraints for the EXR dataflow. + + + + + + + + NRP0 + NN00 + NRD0 + NRU1 + NRC0 + ERU0 + EN00 + ERD0 + ERU1 + ERC0 + SP00 + ERP0 + + + P + A + R + S + T + E + + + A + Q + D + H + M + + + ATS + CHF + HRK + ITL + MXN + LVL + MTL + CLP + ZAR + XAU + AUD + ILS + IDR + TRY + CYP + HKD + TWD + EUR + DKK + CAD + MYR + BGN + EEK + NOK + RON + MAD + CZK + IEP + GRD + SEK + SIT + PTE + ARS + LTL + NLG + INR + CNY + THB + KRW + JPY + PLN + GBP + HUF + PHP + LUF + RUB + ISK + BEF + ESP + USD + FIM + DEM + DZD + SGD + SKK + VEF + NZD + FRF + BRL + + + CHF + HRK + MXN + LVL + MTL + ZAR + E0 + AUD + E5 + E6 + ILS + E7 + E8 + IDR + TRY + CYP + HKD + TWD + EUR + DKK + CAD + MYR + BGN + EEK + NOK + H37 + RON + MAD + CZK + GRD + SEK + SIT + ARS + LTL + H42 + INR + CNY + THB + KRW + JPY + PLN + GBP + HUF + PHP + RUB + ISK + H10 + USD + H11 + DZD + EGP + H7 + H8 + H9 + SGD + SKK + NZD + BRL + + + + + + diff --git a/sdmx/tests/format/test_xml.py b/sdmx/tests/format/test_xml.py new file mode 100644 index 000000000..0d1ce220a --- /dev/null +++ b/sdmx/tests/format/test_xml.py @@ -0,0 +1,7 @@ +from sdmx import model +from sdmx.format import xml + + +def test_tag_for_class(): + # ItemScheme is never written to XML; no corresponding tag name + assert xml.tag_for_class(model.ItemScheme) is None diff --git a/sdmx/tests/test_message.py b/sdmx/tests/test_message.py index dc811be8d..2b15ad7e0 100644 --- a/sdmx/tests/test_message.py +++ b/sdmx/tests/test_message.py @@ -19,6 +19,7 @@ sender: source: fr: Banque de données macro-économiques test: False + Categorisation (1): CAT_IPI-2010_IPI-2010-A21 CategoryScheme (1): CLASSEMENT_DATAFLOWS Codelist (7): CL_FREQ CL_NAF2_A21 CL_NATURE CL_UNIT CL_AREA CL_TIME_C... ConceptScheme (1): CONCEPTS_INSEE diff --git a/sdmx/tests/test_model.py b/sdmx/tests/test_model.py index 8370b80f7..f92fec856 100644 --- a/sdmx/tests/test_model.py +++ b/sdmx/tests/test_model.py @@ -113,6 +113,25 @@ def test_identifiable(): assert hash(ad) == id(ad) +def test_nameable(caplog): + na1 = model.NameableArtefact( + name=dict(en="Name"), description=dict(en="Description"), + ) + na2 = model.NameableArtefact() + + assert not na1.compare(na2) + assert caplog.messages[-1] == "Not identical: name=[en: Name, ]" + + na2.name["en"] = "Name" + + assert not na1.compare(na2) + assert caplog.messages[-1] == "Not identical: description=[en: Description, ]" + + na2.description["en"] = "Description" + + assert na1.compare(na2) + + def test_maintainable(): urn = "urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=IT1:VARIAB_ALL(9.6)" ma = model.MaintainableArtefact(id="VARIAB_ALL", urn=urn) @@ -188,6 +207,11 @@ def test_internationalstring(): ) assert i4.name["FR"] == "Banque centrale européenne" + # Compares equal with same contents + is1 = model.InternationalString(en="Foo", fr="Le foo") + is2 = model.InternationalString(en="Foo", fr="Le foo") + assert is1 == is2 + def test_item(): # Add a tree of 10 items @@ -282,6 +306,19 @@ def test_itemscheme(): assert is0.get_hierarchical("foo0.bar1") == bar1 +def test_itemscheme_compare(caplog): + is0 = model.ItemScheme() + is1 = model.ItemScheme() + + is0.append(model.Item(id="foo", name="Foo")) + is1.append(model.Item(id="foo", name="Bar")) + + assert not is0.compare(is1) + + # Log shows that items with same ID have different name + assert caplog.messages[-1] == "[, ]" + + def test_key(): # Construct with a dict k1 = Key({"foo": 1, "bar": 2}) @@ -363,3 +400,8 @@ def test_observation(): av = AttributeValue(value_for=da, value="baz") obs.attached_attribute[da.id] = av assert obs.attrib[da.id] == "baz" + + +def test_get_class(): + with pytest.raises(ValueError, match="Package 'codelist' invalid for Category"): + model.get_class(name="Category", package="codelist") diff --git a/sdmx/tests/writer/conftest.py b/sdmx/tests/writer/conftest.py index b62ddd917..f43240297 100644 --- a/sdmx/tests/writer/conftest.py +++ b/sdmx/tests/writer/conftest.py @@ -3,6 +3,12 @@ from sdmx.message import StructureMessage from sdmx.model import Agency, Annotation, Code, Codelist +CL_ITEMS = [ + dict(id="A", name={"en": "Average of observations through period"}), + dict(id="B", name={"en": "Beginning of period"}), + dict(id="B1", name={"en": "Child code of B"}), +] + @pytest.fixture def codelist(): @@ -18,11 +24,14 @@ def codelist(): name={"en": "Collection indicator code list"}, ) - cl.items["A"] = Code(id="A", name={"en": "Average of observations through period"}) - cl.items["B"] = Code(id="B", name={"en": "Beginning of period"}) - cl.items["B1"] = Code(id="B1", name={"en": "Child code of B"}) + # Add items + for info in CL_ITEMS: + cl.items[info["id"]] = Code(**info) + + # Add a hierarchical relationship cl.items["B"].append_child(cl.items["B1"]) + # Add an annotation cl.items["A"].annotations.append( Annotation(id="A1", type="NOTE", text={"en": "Text annotation on Code A."}) ) diff --git a/sdmx/tests/writer/test_writer_xml.py b/sdmx/tests/writer/test_writer_xml.py index 8dd3735ca..f7df8176d 100644 --- a/sdmx/tests/writer/test_writer_xml.py +++ b/sdmx/tests/writer/test_writer_xml.py @@ -1,7 +1,12 @@ +import logging + import pytest import sdmx from sdmx.message import DataMessage +from sdmx.tests.data import specimen + +log = logging.getLogger(__name__) def test_codelist(tmp_path, codelist): @@ -24,6 +29,55 @@ def test_structuremessage(tmp_path, structuremessage): == structuremessage.codelist["CL_COLLECTION"]["A"].name["en"] ) + # False because `structuremessage` lacks URNs, which are constructed automatically + # by `to_xml` + assert not msg.compare(structuremessage, strict=True) + # Compares equal when allowing this difference + assert msg.compare(structuremessage, strict=False) + + +_xf_ref = pytest.mark.xfail( + raises=NotImplementedError, match="Cannot write reference to .* without parent", +) +_xf_not_equal = pytest.mark.xfail(raises=AssertionError) + + +@pytest.mark.parametrize( + "specimen_id, strict", + [ + ("ECB/orgscheme.xml", True), + ("ECB_EXR/1/structure-full.xml", False), + ("ESTAT/apro_mk_cola-structure.xml", True), + pytest.param( + "ISTAT/47_850-structure.xml", True, marks=[pytest.mark.skip(reason="Slow")], + ), + pytest.param("IMF/ECOFIN_DSD-structure.xml", True, marks=_xf_ref), + ("INSEE/CNA-2010-CONSO-SI-A17-structure.xml", False), + ("INSEE/IPI-2010-A21-structure.xml", False), + pytest.param("INSEE/dataflow.xml", False, marks=_xf_not_equal), + ("SGR/common-structure.xml", True), + ("UNSD/codelist_partial.xml", True), + ], +) +def test_structure_roundtrip(pytestconfig, specimen_id, strict, tmp_path): + """Test that SDMX-ML StructureMessages can be 'round-tripped'.""" + + # Read a specimen file + with specimen(specimen_id) as f: + msg0 = sdmx.read_sdmx(f) + + # Write to file + path = tmp_path / "output.xml" + path.write_bytes(sdmx.to_xml(msg0, pretty_print=True)) + + # Read again + msg1 = sdmx.read_sdmx(path) + + # Contents are identical + assert msg0.compare(msg1, strict), ( + path.read_text() if pytestconfig.getoption("verbose") else path + ) + def test_not_implemented(): msg = DataMessage() diff --git a/sdmx/urn.py b/sdmx/urn.py index e58eff591..e8e357bf1 100644 --- a/sdmx/urn.py +++ b/sdmx/urn.py @@ -30,7 +30,10 @@ def make(obj, maintainable_parent=None): ma = obj extra_id = "" - assert isinstance(ma, MaintainableArtefact) + if not isinstance(ma, MaintainableArtefact): + raise ValueError( + f"Neither {repr(obj)} nor {repr(maintainable_parent)} are maintainable" + ) return _BASE.format( package=PACKAGE[obj.__class__], obj=obj, ma=ma, extra_id=extra_id diff --git a/sdmx/util.py b/sdmx/util.py index 1b39333fc..781d0180b 100644 --- a/sdmx/util.py +++ b/sdmx/util.py @@ -1,4 +1,5 @@ import collections +import logging import typing from enum import Enum from typing import TYPE_CHECKING, Any, List, Type, TypeVar, Union, no_type_check @@ -20,6 +21,9 @@ OrderedDict = _alias(collections.OrderedDict, (KT, VT)) +log = logging.getLogger(__name__) + + class Resource(str, Enum): """Enumeration of SDMX REST API endpoints. @@ -201,6 +205,27 @@ def _apply_validators(self, which, value): else: return result + def compare(self, other, strict=True): + """Return :obj:`True` if `self` is the same as `other`. + + Two DictLike instances are identical if they contain the same set of keys, and + corresponding values compare equal. + + Parameters + ---------- + strict : bool, optional + Passed to :func:`compare` for the values. + """ + if set(self.keys()) != set(other.keys()): + log.info(f"Not identical: {sorted(self.keys())} / {sorted(other.keys())}") + return False + + for key, value in self.items(): + if not value.compare(other[key], strict): + return False + + return True + def summarize_dictlike(dl, maxwidth=72): """Return a string summary of the DictLike contents.""" @@ -224,3 +249,16 @@ def decorator(cls): return cls return decorator + + +def compare(attr, a, b, strict: bool) -> bool: + """Return :obj:`True` if ``a.attr`` == ``b.attr``. + + If strict is :obj:`False`, :obj:`None` is permissible as `a` or `b`; otherwise, + """ + return getattr(a, attr) == getattr(b, attr) or ( + not strict and None in (getattr(a, attr), getattr(b, attr)) + ) + # if not result: + # log.info(f"Not identical: {attr}={getattr(a, attr)} / {getattr(b, attr)}") + # return result diff --git a/sdmx/writer/base.py b/sdmx/writer/base.py index 7fa508245..ac9d3b696 100644 --- a/sdmx/writer/base.py +++ b/sdmx/writer/base.py @@ -61,7 +61,7 @@ def recurse(self, obj, *args, **kwargs): return func(obj, *args, **kwargs) - def register(self, func): + def __call__(self, func): """Register *func* as a writer for a particular object type.""" dispatcher = getattr(self, "_dispatcher") dispatcher.register(func) diff --git a/sdmx/writer/pandas.py b/sdmx/writer/pandas.py index 0ef91c225..73b0865d3 100644 --- a/sdmx/writer/pandas.py +++ b/sdmx/writer/pandas.py @@ -25,7 +25,7 @@ DEFAULT_RTYPE = "rows" -Writer = BaseWriter("pandas") +writer = BaseWriter("pandas") def to_pandas(obj, *args, **kwargs): @@ -33,28 +33,28 @@ def to_pandas(obj, *args, **kwargs): See :ref:`sdmx.writer.pandas `. """ - return Writer.recurse(obj, *args, **kwargs) + return writer.recurse(obj, *args, **kwargs) # Functions for Python containers -@Writer.register +@writer def _list(obj: list, *args, **kwargs): """Convert a :class:`list` of SDMX objects.""" if isinstance(obj[0], Observation): return write_dataset(obj, *args, **kwargs) elif isinstance(obj[0], DataSet) and len(obj) == 1: - return Writer.recurse(obj[0], *args, **kwargs) + return writer.recurse(obj[0], *args, **kwargs) elif isinstance(obj[0], SeriesKey): assert len(args) == len(kwargs) == 0 return write_serieskeys(obj) else: - return [Writer.recurse(item, *args, **kwargs) for item in obj] + return [writer.recurse(item, *args, **kwargs) for item in obj] -@Writer.register +@writer def _dict(obj: dict, *args, **kwargs): """Convert mappings.""" - result = {k: Writer.recurse(v, *args, **kwargs) for k, v in obj.items()} + result = {k: writer.recurse(v, *args, **kwargs) for k, v in obj.items()} result_type = set(type(v) for v in result.values()) @@ -80,15 +80,15 @@ def _dict(obj: dict, *args, **kwargs): raise ValueError(result_type) -@Writer.register +@writer def _set(obj: set, *args, **kwargs): """Convert :class:`set`.""" - result = {Writer.recurse(o, *args, **kwargs) for o in obj} + result = {writer.recurse(o, *args, **kwargs) for o in obj} return result # Functions for message classes -@Writer.register +@writer def write_datamessage(obj: message.DataMessage, *args, rtype=None, **kwargs): """Convert :class:`.DataMessage`. @@ -117,12 +117,12 @@ def write_datamessage(obj: message.DataMessage, *args, rtype=None, **kwargs): kwargs["_observation_dimension"] = obj.observation_dimension if len(obj.data) == 1: - return Writer.recurse(obj.data[0], *args, **kwargs) + return writer.recurse(obj.data[0], *args, **kwargs) else: - return [Writer.recurse(ds, *args, **kwargs) for ds in obj.data] + return [writer.recurse(ds, *args, **kwargs) for ds in obj.data] -@Writer.register +@writer def write_structuremessage(obj: message.StructureMessage, include=None, **kwargs): """Convert :class:`.StructureMessage`. @@ -161,7 +161,7 @@ def write_structuremessage(obj: message.StructureMessage, include=None, **kwargs result: DictLike[str, Union[pd.Series, pd.DataFrame]] = DictLike() for a in attrs: - dl = Writer.recurse(getattr(obj, a), **kwargs) + dl = writer.recurse(getattr(obj, a), **kwargs) if len(dl): # Only add non-empty elements result[a] = dl @@ -172,23 +172,23 @@ def write_structuremessage(obj: message.StructureMessage, include=None, **kwargs # Functions for model classes -@Writer.register +@writer def _c(obj: model.Component): """Convert :class:`.Component`.""" # Raises AttributeError if the concept_identity is missing return str(obj.concept_identity.id) # type: ignore -@Writer.register +@writer def _cc(obj: model.ContentConstraint, **kwargs): """Convert :class:`.ContentConstraint`.""" if len(obj.data_content_region) != 1: raise NotImplementedError - return Writer.recurse(obj.data_content_region[0], **kwargs) + return writer.recurse(obj.data_content_region[0], **kwargs) -@Writer.register +@writer def _cr(obj: model.CubeRegion, **kwargs): """Convert :class:`.CubeRegion`.""" result: DictLike[str, pd.Series] = DictLike() @@ -199,7 +199,7 @@ def _cr(obj: model.CubeRegion, **kwargs): return result -@Writer.register +@writer def write_dataset( obj: model.DataSet, attributes="", @@ -475,13 +475,13 @@ def _get_attrs(): return df -@Writer.register +@writer def _dd(obj: model.DimensionDescriptor): """Convert :class:`.DimensionDescriptor`.""" - return Writer.recurse(obj.components) + return writer.recurse(obj.components) -@Writer.register +@writer def write_itemscheme(obj: model.ItemScheme, locale=DEFAULT_LOCALE): """Convert :class:`.ItemScheme`. @@ -534,12 +534,12 @@ def add_item(item): return result -@Writer.register +@writer def _mv(obj: model.MemberValue): return obj.value -@Writer.register +@writer def _na(obj: model.NameableArtefact): return str(obj.name) diff --git a/sdmx/writer/xml.py b/sdmx/writer/xml.py index 5d3456d40..6b34dc3b7 100644 --- a/sdmx/writer/xml.py +++ b/sdmx/writer/xml.py @@ -1,19 +1,31 @@ +"""SDMXML v2.1 writer.""" +# Contents of this file are organized in the order: +# +# - Utility methods and global variables. +# - writer functions for sdmx.message classes, in the same order as message.py +# - writer functions for sdmx.model classes, in the same order as model.py + +from itertools import chain +from typing import cast + from lxml import etree from lxml.builder import ElementMaker import sdmx.urn from sdmx import message, model -from sdmx.format.xml import NS, qname +from sdmx.format.xml import NS, qname, tag_for_class from sdmx.writer.base import BaseWriter _element_maker = ElementMaker(nsmap={k: v for k, v in NS.items() if v is not None}) +writer = BaseWriter("XML") -def Element(name, *args, **kwargs): - return _element_maker(qname(name), *args, **kwargs) +def Element(name, *args, **kwargs): + # Remove None + kwargs = dict(filter(lambda kv: kv[1] is not None, kwargs.items())) -Writer = BaseWriter("XML") + return _element_maker(qname(name), *args, **kwargs) def to_xml(obj, **kwargs): @@ -31,10 +43,111 @@ def to_xml(obj, **kwargs): If writing specific objects to SDMX-ML has not been implemented in :mod:`sdmx`. """ - return etree.tostring(Writer.recurse(obj), **kwargs) + return etree.tostring(writer.recurse(obj), **kwargs) + + +def reference(obj, parent=None, tag=None, style="URN"): + """Write a reference to `obj`.""" + tag = tag or tag_for_class(obj.__class__) + + elem = Element(tag) + + if style == "URN": + ref = Element(":URN", obj.urn) + elif style == "Ref": + if isinstance(obj, model.MaintainableArtefact): + ma = obj + else: + # TODO handle references to non-maintainable children of parent + # objects + if not parent: + for is_ in chain( + writer._message.concept_scheme.values(), + writer._message.category_scheme.values(), + ): + if obj in is_: + parent = is_ + break + + if not parent: + raise NotImplementedError( + f"Cannot write reference to {repr(obj)} without parent" + ) + + ma = parent + + args = { + "id": obj.id, + "maintainableParentID": ma.id if parent else None, + "maintainableParentVersion": ma.version if parent else None, + "agencyID": getattr(ma.maintainer, "id", None), + "version": ma.version, + "package": model.PACKAGE[obj.__class__], + "class": etree.QName(tag_for_class(obj.__class__)).localname, + } + + ref = Element(":Ref", **args) + else: # pragma: no cover + raise ValueError(style) + + elem.append(ref) + return elem + + +# Writers for sdmx.message classes + + +@writer +def _sm(obj: message.StructureMessage): + # Store a reference to the overal Message for writing references + setattr(writer, "_message", obj) + + elem = Element("mes:Structure") + + # Empty header element + elem.append(writer.recurse(obj.header)) + + structures = Element("mes:Structures") + elem.append(structures) + + for attr, tag in [ + # Order is important here to avoid forward references + ("organisation_scheme", "OrganisationSchemes"), + ("dataflow", "Dataflows"), + ("category_scheme", "CategorySchemes"), + ("categorisation", "Categorisations"), + ("codelist", "Codelists"), + ("concept_scheme", "Concepts"), + ("structure", "DataStructures"), + ("constraint", "Constraints"), + ("provisionagreement", "ProvisionAgreements"), + ]: + if not len(getattr(obj, attr)): + continue + container = Element(f"str:{tag}") + container.extend(writer.recurse(s) for s in getattr(obj, attr).values()) + structures.append(container) + + return elem + + +@writer +def _header(obj: message.Header): + elem = Element("mes:Header") + elem.append(Element("mes:Test", str(obj.test).lower())) + if obj.id: + elem.append(Element("mes:ID", obj.id)) + if obj.prepared: + elem.append(Element("mes:Prepared", obj.prepared)) + if obj.sender: + elem.append(writer.recurse(obj.sender, _tag="mes:Sender")) + if obj.receiver: + elem.append(writer.recurse(obj.receiver, _tag="mes:Receiver")) + return elem -# Utility functions +# Writers for sdmx.model classes +# §3.2: Base structures def i11lstring(obj, name): @@ -52,74 +165,256 @@ def i11lstring(obj, name): return elems -def annotable(obj, name, *args, **kwargs): - elem = Element(name, *args, **kwargs) +@writer +def _a(obj: model.Annotation): + elem = Element("com:Annotation") + if obj.id: + elem.attrib["id"] = obj.id + if obj.type: + elem.append(Element("com:AnnotationType", obj.type)) + elem.extend(i11lstring(obj.text, "com:AnnotationText")) + return elem + + +def annotable(obj, **kwargs): + cls = kwargs.pop("_tag", tag_for_class(obj.__class__)) + try: + elem = Element(cls, **kwargs) + except AttributeError: # pragma: no cover + print(repr(obj), cls, kwargs) + raise if len(obj.annotations): e_anno = Element("com:Annotations") - e_anno.extend(Writer.recurse(a) for a in obj.annotations) + e_anno.extend(writer.recurse(a) for a in obj.annotations) elem.append(e_anno) return elem -def identifiable(obj, name, *args, **kwargs): - return annotable(obj, name, *args, id=obj.id, **kwargs) +def identifiable(obj, **kwargs): + kwargs.setdefault("id", obj.id) + try: + kwargs.setdefault( + "urn", obj.urn or sdmx.urn.make(obj, kwargs.pop("parent", None)) + ) + except (AttributeError, ValueError): + pass + return annotable(obj, **kwargs) -def nameable(obj, name, *args, **kwargs): - elem = identifiable(obj, name, *args, **kwargs) +def nameable(obj, **kwargs): + elem = identifiable(obj, **kwargs) elem.extend(i11lstring(obj.name, "com:Name")) + elem.extend(i11lstring(obj.description, "com:Description")) return elem -def maintainable(obj, parent=None): - return nameable( - obj, f"str:{obj.__class__.__name__}", urn=sdmx.urn.make(obj, parent) - ) +def maintainable(obj, **kwargs): + kwargs.setdefault("version", obj.version) + kwargs.setdefault("isExternalReference", str(obj.is_external_reference).lower()) + kwargs.setdefault("isFinal", str(obj.is_final).lower()) + kwargs.setdefault("agencyID", getattr(obj.maintainer, "id", None)) + return nameable(obj, **kwargs) -@Writer.register -def _sm(obj: message.StructureMessage): - msg = Element("mes:Structure") +# §3.5: Item Scheme - # Empty header element - msg.append(Element("mes:Header")) - structures = Element("mes:Structures") - msg.append(structures) +@writer +def _item(obj: model.Item, **kwargs): + elem = nameable(obj, **kwargs) - codelists = Element("str:Codelists") - structures.append(codelists) - codelists.extend(Writer.recurse(cl) for cl in obj.codelist.values()) + if obj.parent: + # Reference to parent Item + e_parent = Element("str:Parent") + e_parent.append(Element(":Ref", id=obj.parent.id)) + elem.append(e_parent) - return msg + return elem -@Writer.register +@writer def _is(obj: model.ItemScheme): elem = maintainable(obj) - elem.extend(Writer.recurse(i, parent=obj) for i in obj.items.values()) + elem.extend(writer.recurse(i) for i in obj.items.values()) return elem -@Writer.register -def _i(obj: model.Item, parent): - elem = maintainable(obj, parent=parent) +# §3.6: Structure + + +@writer +def _facet(obj: model.Facet): + # TODO textType should be CamelCase + return Element("str:TextFormat", textType=getattr(obj.value_type, "name", None)) - if obj.parent: - # Reference to parent code - e_parent = Element("str:Parent") - e_parent.append(Element(":Ref", id=obj.parent.id)) - elem.append(e_parent) +@writer +def _rep(obj: model.Representation, tag, style="URN"): + elem = Element(f"str:{tag}") + if obj.enumerated: + elem.append(reference(obj.enumerated, tag="str:Enumeration", style=style)) + if obj.non_enumerated: + elem.extend(writer.recurse(facet) for facet in obj.non_enumerated) return elem -@Writer.register -def _a(obj: model.Annotation): - elem = Element("com:Annotation") - if obj.id: - elem.attrib["id"] = obj.id - elem.extend(i11lstring(obj.text, "com:AnnotationText")) +# §4.4: Concept Scheme + + +@writer +def _concept(obj: model.Concept, **kwargs): + elem = _item(obj, **kwargs) + + if obj.core_representation: + elem.append(writer.recurse(obj.core_representation, "CoreRepresentation")) + return elem + + +# §3.3: Basic Inheritance + + +@writer +def _component(obj: model.Component): + elem = identifiable(obj) + if obj.concept_identity: + elem.append( + reference(obj.concept_identity, tag="str:ConceptIdentity", style="Ref",) + ) + if obj.local_representation: + elem.append( + writer.recurse(obj.local_representation, "LocalRepresentation", style="Ref") + ) + # DataAttribute only + try: + elem.append(writer.recurse(cast(model.DataAttribute, obj).related_to)) + except AttributeError: + pass + return elem + + +@writer +def _cl(obj: model.ComponentList): + elem = identifiable(obj) + elem.extend(writer.recurse(c) for c in obj.components) + return elem + + +# §4.5: CategoryScheme + + +@writer +def _cat(obj: model.Categorisation): + elem = maintainable(obj) + elem.extend( + [ + reference(obj.artefact, tag="str:Source", style="Ref"), + reference(obj.category, tag="str:Target", style="Ref"), + ] + ) + return elem + + +# §10.3: Constraints + + +@writer +def _ms(obj: model.MemberSelection): + elem = Element("com:KeyValue", id=obj.values_for.id) + elem.extend(Element("com:Value", mv.value) for mv in obj.values) + return elem + + +@writer +def _cr(obj: model.CubeRegion): + elem = Element("str:CubeRegion", include=str(obj.included).lower()) + elem.extend(writer.recurse(ms) for ms in obj.member.values()) + return elem + + +@writer +def _cc(obj: model.ContentConstraint): + elem = maintainable( + obj, type=obj.role.role.name.replace("allowable", "allowed").title() + ) + + # Constraint attachment + for ca in obj.content: + elem.append(Element("str:ConstraintAttachment")) + elem[-1].append(reference(ca, style="Ref")) + + elem.extend(writer.recurse(dcr) for dcr in obj.data_content_region) + return elem + + +# §5.2: Data Structure Definition + + +@writer +def _nsr(obj: model.NoSpecifiedRelationship): + elem = Element("str:AttributeRelationship") + elem.append(Element("str:None")) + return elem + + +@writer +def _pmr(obj: model.PrimaryMeasureRelationship): + elem = Element("str:AttributeRelationship") + elem.append(Element("str:PrimaryMeasure")) + elem[-1].append(Element(":Ref", id="(not implemented)")) + return elem + + +@writer +def _dr(obj: model.DimensionRelationship): + elem = Element("str:AttributeRelationship") + for dim in obj.dimensions: + elem.append(Element("str:Dimension")) + elem[-1].append(Element(":Ref", id=dim.id)) + return elem + + +@writer +def _gr(obj: model.GroupRelationship): + elem = Element("str:AttributeRelationship") + elem.append(Element("str:Group")) + elem[-1].append(Element(":Ref", id=getattr(obj.group_key, "id", None))) + return elem + + +@writer +def _gdd(obj: model.GroupDimensionDescriptor): + elem = identifiable(obj) + for dim in obj.components: + elem.append(Element("str:GroupDimension")) + elem[-1].append(Element("str:DimensionReference")) + elem[-1][0].append(Element(":Ref", id=dim.id)) + return elem + + +@writer +def _dsd(obj: model.DataStructureDefinition): + elem = maintainable(obj) + elem.append(Element("str:DataStructureComponents")) + + # Write in a specific order + elem[-1].append(writer.recurse(obj.dimensions)) + for group in obj.group_dimensions.values(): + elem[-1].append(writer.recurse(group)) + elem[-1].append(writer.recurse(obj.attributes)) + elem[-1].append(writer.recurse(obj.measures)) + + return elem + + +@writer +def _dfd(obj: model.DataflowDefinition): + elem = maintainable(obj) + elem.append(reference(obj.structure, tag="str:Structure", style="Ref")) + return elem + + +# §5.4: Data Set +# TODO implement