From 7f3ae3d40f38533459e060fe72260347c932a37b Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Fri, 31 Jul 2015 13:15:39 +0200 Subject: [PATCH 001/161] Create browse-by-topic.md --- structure-message/requirements/browse-by-topic.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 structure-message/requirements/browse-by-topic.md diff --git a/structure-message/requirements/browse-by-topic.md b/structure-message/requirements/browse-by-topic.md new file mode 100644 index 0000000..706dd3a --- /dev/null +++ b/structure-message/requirements/browse-by-topic.md @@ -0,0 +1 @@ +# Requirements: Browse by topic From 22a92891138dd0d59369cb846c49e371176aaf1c Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Fri, 31 Jul 2015 16:44:08 +0200 Subject: [PATCH 002/161] Initial release of the browse-by-topic requirement --- .../requirements/browse-by-topic.md | 85 ++++++++++++++++++ .../requirements/img/cs-list.png | Bin 0 -> 29709 bytes .../requirements/img/cs-treeview.png | Bin 0 -> 20770 bytes .../requirements/img/df-filters.png | Bin 0 -> 32301 bytes .../requirements/img/df-list.png | Bin 0 -> 18084 bytes 5 files changed, 85 insertions(+) create mode 100644 structure-message/requirements/img/cs-list.png create mode 100644 structure-message/requirements/img/cs-treeview.png create mode 100644 structure-message/requirements/img/df-filters.png create mode 100644 structure-message/requirements/img/df-list.png diff --git a/structure-message/requirements/browse-by-topic.md b/structure-message/requirements/browse-by-topic.md index 706dd3a..781f00f 100644 --- a/structure-message/requirements/browse-by-topic.md +++ b/structure-message/requirements/browse-by-topic.md @@ -1 +1,86 @@ # Requirements: Browse by topic + +## Summary + +Browsing a list of *topics* (i.e. statistical domains) is a common way for users to find the data they want in a data source. This section documents the SDMX artefacts needed to support this use case with SDMX-JSON, as well as the steps involved. + +## Artefacts involved + +The following SDMX artefacts are needed to support this use case: +- Category Scheme +- Categorisation +- Dataflow +- Content Constraint +- Data Structure Definition +- Concept +- Codelist + +For additional information about these artefacts, please refer to the [SDMX information model](http://sdmx.org/wp-content/uploads/2011/08/SDMX_2-1-1_SECTION_2_InformationModel_201108.pdf). + +For additional information about the query syntax used in the examples below, please refer to the [SDMX RESTful specification](https://github.com/sdmx-twg/sdmx-rest/tree/master/v2_1/ws/rest/docs). + +## Choreography + +### Step 1: Get the list of statistical domains + +The starting point is to retrieve the list of *topics* for which data are available. These are known as `category schemes` in SDMX. They can be retrieved using a categoryscheme query: + +``` +https://ws-entry-point/categoryscheme +``` + +Alternatively, if only the topics of a particular category scheme are needed, it is possible to only retrieve that particular category scheme: + +``` +https://ws-entry-point/categoryscheme/agency-id/category-scheme-id +``` + +The response will contain the `category scheme(s)` and its `categories`. + +The screenshot below shows an example of the type of user interface (a treeview control in this case) that can be built from a category scheme, using the [ECB Statistical Data Warehouse](https://sdw.ecb.europa.eu) as an example. + +![Idle points on the map](img/cs-treeview.png) + +The screenshot below displays the category scheme as a list box, similar to the typical control displayed by mobile apps. The example is taken from the ECB statistical tablet app. + +![Idle points on the map](img/cs-list.png) + +The client typically needs to display the names of the categories. In addition, some clients might also want to display the descriptions of the categories and the name of the category schemes. + +In addition, on order to perform the next query (cf. step 2 below), clients will need the full references for the categories (id) and category schemes (id, agency id and version). + +### Step 2: Get the list of dataflows attached to the selected domains + +Once a user has selected a category, the web service client will need to retrieve the *baskets of data* attached to the category. These are known as `dataflows` in SDMX. It is possibe to retrieve these, using a category query and resolving its references. + +``` +https://ws-entry-point/categoryscheme/agency-id/category-scheme-id/category-scheme-version/category-id?references=parentsandsiblings +``` + +The response will contain the selected `category`, the `categorisations` that link dataflows to the category (the *parents*) and the `dataflows` referenced by the categorisations (the *siblings*). + +The screenshot below shows an example of the type of user interface (a list box in this case) that can be built from the response. The example is taken from the ECB statistical tablet app. + +![Idle points on the map](img/df-list.png) + +The client typically needs to display the names of the dataflows. In addition, some clients might also want to display the descriptions of the dataflows and the name of the selected category. + +In addition, in order to perform the next query (cf. step 3 below), clients will need the full references to the dataflows (id, agency id and version). + +### Step 3: Find data in the selected dataflow, using concept filters + +Once a user has selected a dataflow, the web service client will need to retrieve the `concepts` that are used to structure that dataflow. In addition, the list of allowed values for each of these concepts will be needed. The list of values for which data exist can be found in the `content constraints`, while the names of the values can be retrieved from the `codes` in the `codelists` referenced by the `data structure definition`. All these artefacts can be retrieved in just one dataflow query, again using the references' resolution mechanism offered by the SDMX RESTful API. + +``` +https://ws-entry-point/dataflow/agency-id/dataflow-id/dataflow-version?references=all +``` + +The response will contain the selected `dataflow`, the `data structure definition` that structure the data for the dataflow, as well as the `concepts` and `codelists` referenced by the data structure definition. In addition, it will contain the `content constraints` attached to the dataflow. + +The screenshot below shows an example of the type of user interface (a list box for the list of concepts, and a collection of check boxes for the list of allowed values for each of the concepts in this example) that can be built from the response. The example is taken from the ECB statistical tablet app. + +![Idle points on the map](img/df-filters.png) + +The client typically needs to display the name of the concepts (Frequency, Reference area, etc.) and of the allowed values for each concept (e.g.: Annual, Monthly, etc.). In addition, some clients will also need the descriptions of the concepts and codes, as well as the code ids. + +In order to retrieve the data matching the user's filters, the web service clients will need the full references to the dataflow (id, agency id and version) and the code ids for the dimension values. diff --git a/structure-message/requirements/img/cs-list.png b/structure-message/requirements/img/cs-list.png new file mode 100644 index 0000000000000000000000000000000000000000..2f83111cdd00008eadb71516b963299bb74b242b GIT binary patch literal 29709 zcmeFY1yGfJxG#!|x}-q_3F&U>MwWD!ba!{Bw1AWdh?Izwlz>Qs2#AP)NQrcJx72y~ z_C9-`bN4xC?!Ghk&fJ;3WFgS=!iJP`LXzTTobd+gPHYc>j44H+rY-5r)KN z4O;3OJCB!le-Qr?|6UW8!Qw-nYl74E{J_U(jseH|8~2DxxCAo9(1w)w)}!ks>3@V% zA3oUd=BVy>zA+lVJ8wi+yk=pVudXb@IA-&(@};F}HL~ZK0q2AIh)XxamTOJ3wTD7+o)9o+=I zMX3Hct|0t=^=Eb}ihn-hZYM&et*Aor*vZv`f}4$-je}Lv+s2cVN)(Mk*wx%pP)$PW zUk?HQCqiZI?(Qte&hF*q#pcDu=HzO{{!l`-y~F;Hjf4Gv z{J6V~<^Sg6SMU7$$FIIDsAA)7VXrM=<6z%X?^KeYq@sSp2Gbp8KpyU_j}!dW;1Zu0_wR#{C%3*hdC z8&XySfk2GSC{LrHP@u?4h--NNS)cIo#~-@j+vegLv-91ejK#Sg7DnK^^-NA3cjtZK zQ#9;o#JIC6Zj)NOr(`sK9yJdl_z?mX$=8$+X74*@XlZ4&crv&A+KA!pbu|B}p!wv9 zOwZmQy;i+xm8j7dq}Slg@yvMd;U5%K%B!E^2>9^`=L#m{gkAjsb;iJ1UA~mD%m{-Of>YBu9Ha<0S!e zo9o#PJ>wTN?Nr}Ay^Ls4E>zp8Y#-G;om+bUB}9W=(YibVJ?MMM{!W5qSgpB!;YAGN zF|4>W8-tB$L_|QyV|M%57tW2|Y&mij96VIq<=o%ZzTQiRWcP-?%DM%z1@ZI zjYxSXrF`6g&?m0_pW0}ToQG$ER|oVuBQYoKD>y$;eQvXGzx=tu9GTUut#07-R>oAO z{BuxC*70tbc4TPGgY(dS`^y1F{z|9q`lH*3o92;-nhoX%&*+`sZYAs2Zc>Wl1UE;Y z8$Ev>?^#~R8|Qbv-Ph6M;CWlF&U(K%lDk?ego2lyoZH2_;nJb+?j1&Q<+QfeAs!w6 zIC{jFC#)&*;U09=N&x?%4(rKOVPVWC&L-nCT~Gimg~-53AX-MIzCi|g+W{}8u;NA=uRq5JSvz^5;>75i%~_nxJ;OXY zG*q?{**N6bqchJ*q_}d`o(b#I2vSd!R8^ng`P9pXU#~3d|FQE;k@Zu5$>{fQdB}=q zUoJVYdM6~+rtB;JkY118_Dsb?MIso@k=R;A!^Q(78>r&74KmLy8?saN)$OPd^K*<< z+7DQLi7Dsv3DQ}f$48cwbzKi&o!)ZYHkWjCahsA53rpz#QCmcN87P8Fxqm4tdRm~4 zLpjLaS=@uptVGlnz`6_>d}0)F3ENS!-(P ztHcuxqQep*HeB>~rmcKJduU~L^cYU`_z7Fh83`$QqsKFkLeo?kCAdDx8QQAEPgGIMc0jb>|29;I)ic*LyO+KvDCdc zm(!OoH%`wVU@6hv>-80zbN(7D-$4Iz{O7^){J=@n2IOw!?f0~%wxfKh!yDhl>Q?)ls`=yEN_$UmE8y69 zNvposGrjm{rCT&Itf_Z;Qp5&ac5jyvA2=s(>TosM-R}D%)xE5RJ;8SKCcew^S|XvB z;x_?~(Y7bAwf@X5(N6ikSx)omTnupa)M&xM*6L!uYu4EucsyDY|Dd-JfvrIuHm}xt zl#Lkq|!Op!AW=!$s z=xvIFIO;ru>^~Lz#pnZ_o$Df=0ej7FsSBJ~bOS_%Rho>4>avo&9>}me1;|yJy*yn@ znv1wtd$e2S=j(MqBE(_8V>Nm)xqFwS6Yb`F=UN#8^<8A~{t#_}VBCbJriJ%W9$O2q zY*F$ST~Gs8%iM2=OGCGds-wRU=~~IP?|bLR{Mvp8=TK3Oy6u*&Y-MWm7DN`LYvked zd-k?$eLY)a{qVJQ%Cz%)4o^XT>?XO|n6>Q58PXv49!dEN8khaChxa-Q4%gRD zr3*%@Lq{h2A{!Vw_=51s7n;o$RFaYIL3&}luZISSg*v^z(S)FoOFDLywisijbQpZTiF6;W$l&d_|cV?hr zn)B3LAZyM$?lD$Mu>*IDK=pu|*<0k<6EQ*_fzFMey^3`A{HxxP$0u}rM?GQMm-@T6 z#*InGXP$pASN{ve1P7UZ zbdN~kP^mvFk&>-Jltc-yu%d%_x%d&{+__Nu)UROaT5V9Y({i~T#zT`bQ(RgCRRU&d z98@f((%@cJn}=sRll=rD0rTz)AL-vZovZ}!qecJaIzqh&c2OWWMc>N&9rRYe6hGi{ zit=$%D8hes_V9M^Yr!NWTZX9US5phalcTN$J9g^pL%gp;&tFneO5(H^CkfHeA5(=5 zZ?JhEZhRCN5WIQJV0`2HacMG8k1nA7c{fE6Fdhk`tc5*II9&?-tjwyP~goqx=S@^DpQA*aL3@hFX1u# zZbvFIH;s<2v@W2j>H9byr}7W!hqBfw>zVg%ca%4ecf9M;bsKluf+uF13gTj3bCurh z%yr?yj`v?McHAM~{K!7AY)8U+9F!$}sr%}ptA47ilBMjY&B3SBF{*i=!M9Z+M@oNE z;%~=ql2>jFQ1&$ktp6+`aronmFY8}d8{e^rqhbyvqxv#qckcyzM*kBAn)AkaHn~JK zHo?F$TZsMFg6bND-NQFJ#GB>PGn-T$j?E{MdC*UV55D52EEscLzbqu66o2#jIiUpd zSF0;Cui=E-etk>oSrd^#=o!ADBc~T(SK$TaO^ZLN^dF5lnHhx&0%wX1=&_uZwo09! z#N@W=qj!HqU zt3iD6#R7pc{y11PnzHFSE>amAJ;?XB)6rJ50MEtvkl=zLxaEiAwR@(@6iL{x^gKq+$t%Ge3}VbCE6Xj~HlnE)@mSN59~pCK~;r zN=C>rA3#y6m+EfFw!C@DnCz;$gPA$Bcon`36u3w|Y=Z21mDo34_~Xiy7w=~RLPF18 z0=nvy_BrD9%%Yk9_UrG5znUt)J}YSBueCvslSXY|co#DMiy&gglC8)3 zmoCw5KA%lhFG5*>GIW^^fKrfW$$+#XEMsJ3!T}dm3moPrXEv!362JL1nD%~65mmfB zc0zN?ycM%&Gs#mjyjIsGe)*n_Amr)8s01mX@VP3I2j?J3Z+QLvd?jfh5Po<>lhpgfHvIU~Em@CYRQKncNtA5SSz;U^h; zNNP4lh%WrP{c6_dx}z4r`)&TvvMUw*Us3+QgMVQ|$J1v#O+$%>gZ??l@_tYC2-!R}t0JA0Je$7{S*j--YjjJIIVw3S!oGR8;)IUd;ZgEf zIWND8GgJw1_{r_So1QF}r^3*9qMo(HN)R*Q=;h+#^YReii;V~Q&9vetcd2GEd7jjZ z2}iy(g?POpqKJpYv1s8)8oUWtl;R=VYFz_;eX@;P54~T8Cd~DpHH8y(u(k*hOXA5( zNn=I3L=xLKS#hWLw2-)RE9$YNNYkP3WbJr)`NvxoxoFqd*NYP8dGeFq3Y~Fb=J6&y z%f|d`tkgE~jsp2?;aE97nJ1m7P~6I{&z!SJhP>b1c81Q_5$=`1BNG!_zN4*n*QtaUlLPS3rqou{MjNx@~%oXSZ7Sf@{M> zTzRSYZ+TX{DAW)=eQVFXomd4rKW;gPs?ji{$(q`pu+#aI^dZ({xd&LcyDL9fp=5&EUwgFWh>%@CyK>%GR`py&6zzgn z{ju2RscXGuKhJYUN9}o|B!1=h8&~TxMsubqI2^{Kia+Zxg)8=tGtaYqcuIBvYbkm#)TzVOFi{ zlhv|7nF*h2DvOoMt>Tx;?KiF9z}Tk`4vL<&Uuv{9*6g|4!hOFZ!dN^t2Tal3lfFs3Y+c1s36ruzcTWB$ ziBFa~r}`!xmGT`A7gn5=cCQ|7^Q85TS0Y3E;Ad-WO37W}_tu{fjGUhjY6eXNnoGLg zrl2*wqzX%zTrK4KnM1~jE6JTsRFp9I@i$V$f+~92TVvQfF^0jY`aY%k$BKhng6)r) zD5B`@KE{!;GC_)%^F~Yr)G1LCd^~zGNMv0a9<}{qY9=37-^ro=x%F#LFE4sT2#st~ z*Ptam6+sN-3YVmJRwv<0S5mkIvM=z_!dbdqN$K&?cAoI!OWr}f9yh0*au0!8i=AR} zKl<% zteN3g>&A}oG_SVLI497^zMv_45;xawTCo?R5Qf8MlU{xKRDL4=(*vwXxQA8InOC7p zfsa7tR_r$C%vvIfa4}Tw-Vv*7`IShVRQ0{}^4U=MP#a+3*pLKQywd z^?uy9YYmAT{E)0TF7*h*%fO?tvGjbn)hW8rz_etz?mZ@vh$*KT3jM z$$2y!nPXVq*+U)t$hbngM3Y$@r(jzM5^gr@XijAXywb@*dQzHC%r6y@q8t*)IA%dnq?afX>Uo`hG^ zh4v)sIp_=Ih*14(G`Ptdv8OJdwYHi4dhFZY*)#s~V&c%u1stSQdhV!wHXqH8)*X+Q z!`T!b9ewiF#h>OQUQ| z>;CxBD_>29hKnp5{h{x~%}f(Q6cE~Ropa$)l)gf^-}laTKf8~bO+%D-Rh2z=>fD}; z`-jCHp<7m^<=YSvrcOO*R_utDpc>ya(ILoAZ#@-FQ;2X&UGfjjZ|oe$iIJoRKbJqtn$I}J1%wyi+bpP_64W)Z3Zl9Wz}f#1jgErACSgE38%rEnY&e? z?cbnBxM?@GyvV0WH!v|JuB`g9xR_Zq=*M28T;3N&+UU2=laP@W+RyKPF|ClH!6Qw8 z#?yCB?#j$0sv4~q=-V_oajrCykVF&3r}aAj3DZ4Cmf28YE2~?gym$yyjJ9$Ab;RdT z1QL6Jd{PS!HMnX%)ghBY%4=U!{w9JlVgWbaJB&Y$-Qhz5O{=T$=2sfoFn*f5s=XqN z@i_4~t<+i4sKH_Q!8lY1i9{OY@};}%E`qY1|2W!mjlC&X_)7!b-HpQGQJD~9mnFP- zhLA^yE(w|}Vq^=3jTwLJuw0^qpOIuj`k*}Hu10j7QJ=fB@a5V?=8;A;!E#u9BZcD+32zm%$b=(2mH&8=XeJ&&UjOV z*E52cn@2=~BrkjYzu;Qej2-x%vl7mge`c-Yb(+mD&}U1P%TrWTbPx=4DYs0=`ly%X zWH*r);Z@6zvAxVs0@>TFb|fBX;yh)LZr$!;Q8TvFvnZEWc|eIwXA{*&8!svxSlKRs zw61vykYJ6;b@AFJ|C8b&mTqEsW|@GX<)edMA)G@ccGzVs{Gj7hp@dMyfvc%om3ad2TE*W!Bg zz85Zb%)!}Ke`TYtnQErZWWx5j*oaUkp1S!FN9rY6lM;?ZMvEF%*QR)TJnW0m@Tm*i#v;I^_@n;gZ_|q+2OGU_Cw6~Bco%9g z>En$5aLAp63_B=auk%ln5Y@ttuh>3M4F8zTmCvr zJPw{}3x-*~PWY=???K~tlK3lhm#mVcq*K-(yE|UWQ9VMWZIn!|ZfiUXYl)MmFn3{d>z8HM^+{nyu;G8 z^#*R+sg)$LREgi}sOR|0Dk}QxsBzH39f;XyCo|m>-m-U{8H#3StqTe^;U?a>OP9Gdtx4P~Q>{Bex4zRVo-V(wx5O|xGwYS1 zh^9Y3OrB#@UUH(xmd}xaUcwlv$$vp8Otl=(qzb<)b&Rrylv)lyqQDO;m)e3 zq2z4I?Iq&&;^Wral$-PPvXuvQvaj=FrKm*@)rvG6(7e0VYNCGel5F&h0htp-;3AoS zefQEYY3hC$j(>7c^}sZMJe=NYSNM;A^WRa&i=e+Qvn<_{0Y}t<1khUpf3IPt{#~?s zHts5I33=RRL3XG%r?l1J?~2yOaqROLx+iI`6GNOo9?9^Zp7H@{L>>I0uemDQV zr}Yw8tW}zfmqMcoLtIzf*u2yV)VOhE^{H9z0&B*EH=R6I+DRRsHc`egFydQ}pA_Kb zBmwg9Eeu&XnimZ^Bcz=(^lqYfQ@BW`uHxDYy*po;mJm9}C0~77Hhih?@a_R=-yXhf?YFR|u{zPw4!$3c(e8QO=HJ`S zbMNgIaqj!YTK>VCd%AOUTIjQGsxDQc@N`29xpUD@eT3SaT8*qU3fU}$``ZWlq5Y0t z&T>(o)hR<*&*C@Pw;u!sbz20g*fQ|EB!24m4+a06impwne!oIO92;eTRYV4%C4h8!2kS51>k@2 z=SF$3*3S0&pp>ObyEG|^sjTGuO>wn`ZFUo#!-Z5MQP+7yV4X#GiqGC+1&iO2 z`Z0XP&d!e9{2o35f#YN&5vBX$52C9tO}kLnE~#T+WA}akPAudJ$gr-i?%K6$h@6m+ z5b~fiRT@0SG)~DPjm?P$t%8BHp2ZPEKSjDEhp|tk@87@o+L{y<60BA2|^e^;!p+bb*g6{#0! zYG~-!I_JE9|GlHb;?GAL(+cmU-pqxC1zB0yuCA`zSfoF#xv8b&SQr`Wym#JeFa<0m zYk6*t>u77gdiCmAkPbKOLMM3;eoRN7=xK=xgMz$#aaq}?QTr;(o?o`rdNqz7{G`fa z=k6LB`1T^OPpn_`61o@I*w~0;7r!SnX9{`IAwo=EEp(?U!@Ap_;dZC8gBBrnaXeSm zCrWbvzW3Sj&iUz)Jk5&{qo9DP<^aTqV`EQQb!4MrLCT4+BCV-_R zI>kR#R@j{`kysCQ_xIbYnAzAwefO8wN2>z-{fEnqjP&&UX1;`{aar9$MYaF^Vdi&* z8Mk7~#osl0rHtCZ^S^(p?N0Ys=C-zsR8=2Z^^#U-XCx(YnSV=YZ*Sk;-sZCEebuvg zk6E*E_d7GS)br!*Hf#W7%>k$R%GsMsOQ~5|&2}SY$H&Ju1Nrv|2)^XsxRQ)&cpS%T z15OX~^7FCCMM)_K2M6aju3irwJm}%TP#j21Oe`xaYi(_%OJd~X{0e&G=jjpoS{=BRwDT(6l5OwZ2l<9Mz> zmn1`j%mI_{_wVJct*y;Xvb%S4N7itW4lt5qR)0Fy`7GAWqeO+ zy1Tm@8fFdIc5Lu^c^%c)3uY>5X=+NTzSL&!dK?NF^jRHsfq=ZVvlS5ms4Qc|W4- z`}gQ)&#WN`)YN{xpq2kq z2GD>msp#WJjXX8VFkSZ5sJry}N|}GNFVC!Cb=$=cpd?toQBzafoSFB|f) zZ)a!c;^IOuvrImft-rsYgx8*diRra~TfROUP_T`$nu06LiA~JSASC2>v^h~xQE~M} z8Jf+MYu#_Ke>?#zF2 zP#*N;$&;bs;VeOq@3z&=`@iJjj1b&HUYi)0n2HJt+{CePd`KQbc0&ba<@osc@}eSH zxU)ZgxVyRKGN2tL2A*!zbaZr7S@l8f#%Pm}k^+*MrZAlII8rg4H&ejP^7~81;Naj7 z2QZsJJxzHk^5w>Dtoen7o@}v8&l~Rw3i!CW6*Bm7HCaInmF7V7We5xusngf#2R2-D z7ktph(JOBQdHhtG>8fx(^+PACxOG+k{#`u%52e$a6hTZ({DuHNCYmWjAs>SM~M%dtU34ZE`=fb-N+7`s2s( znSryjv)8X*`&G*j5fOPdoNq?*5yvj|Wjh(Dl6F>;y{WCOegA$n&ohRz}|ix%8h}F%Ji8G3&CAfmp*hAUEO*}>8S_yE5GuvBIi7_ z4WV?teLHK&`l~hcHYjSRGu65dy1K*{*-Ix-zAF@Q3>!R4KYrYYlhGxuEcfTuoIP7Q z3A#L;+IF~xBK!jN$Uj=Gh?|#}fbwNRg36O89_zm!#&qD3lIp9f_BZ(*JrMHLuXm5i zU*VhbAAl0w^O}cS(QEmq$?kmDR?B5`hbbk(bZ52$FY4U^_tE-jQgU*K%XkcXGvMQa zU%w2!XTpE{P^cQsfa;Q(nwpW}KihsMy(fQUEg&GksxRw&r69ZaHIF=1B8x%&$DqrL zkurl*$iYePx!B>PA#3hp%~GI-Jv}|RxVSt#JVt>hwB41^8E)Ld(5^I(QY$Kf0F;qo zU}SUw5qK%ns~HOE+DJLbjgm107FJfNFJE%=@W|4;WS+XgR67D zpdrG?-~VG*9#+FJ5+;JA}YWMXY)=KtL~V+(koL zUtXMxo$ue3ec{w{&fDp7dA=1S5VyCz{Yu2|Fane0Yb?pq%E}28sm7hJB;~^P1pYWc7 z7Z;T>1rLe}vTO%3Y^|+jl$DL(!(YPDwaN`0YQ|tUoYB9URtWF?;DUa*HCUwX;IQ$* zq%DQrsF&l%P_Y((3>Rg4AhNEmuF(Cqy%|1->pEFW^78ULe>NcQ&jW^q|z zDT$LF=1Rrt);iDR$)^&q>JFCb)tsIAXDab|ZH{Xh1sp(gheU^vxr&6Q#>Us_>9E(Q z>s5WeK0X0(8=+qKZPqO{pDdu&^;A+R7?`Qh zH!yIKnhmoX7?OQq?(EEgWZ>t&fBEh!>utNzx;g<03KU9wV&dq~c~~TXJm@OIeSW^a zYFAw0r5r61&|DU0dVg;+mVC z4MS2QzfDXSFo6-H7B@#sLb7xH_RX7jP(ygdy#d_p?z#p)dTND_hZmB%2RGQW;X(X; zVq#q*Bj|^Hd%}Hl+?aRn>>M0;D9O>_!FoV?#>U1Dp=dXK*y#en8i`FF7Z*o>7B1Y^ z`St7f1=p(4tBM4O@z<|kA3l8e^XJd==NRLaP6JN>fd8awoWqyJ+X6|uojtSQR%l2F zM3SqU8=w8}gp`!wDl6q8jn^3&;5+fhoo+U4MPLy9%6WV{Rw^koGcz@HiBvwfU%$@P z0vfxjs;X^u{kwPXK77~)uz{cqex#zOS3IzyopOG0x)l>0{cB(Vwm@HBpOcdlR{3^>@|x3{sW&@Jt~uOuV$N-XH&lfxJUZ-eIsF%;apch$AD=y4D~ zEZsajc>GOZ@{o*)mUe+mDUJf6rKL6g`HKeA6NnT^Rih9hMYaYN@cWu<1v(Q_bf9sw_Bl$_<;| zsoAJpy>KK|p(Fz!16YC4BR2+b?mdeG&wyD;ISlw38 zNda^NpbXfaw{hGY)RK_UPypKFP?sXxOsaKZi5`Lv$lf$J8|Lmg?F`7_&6_uC-+8P0 zWQlpMYy0{NA`5{YA}DkFwG9n>Ii62APStzZ$;#dl$C;@2Xmjhg=B{M|0%FZwY6YVR z)8#nhdyKbk-`3L5;3vgO>S}k%h>1Z*E(1n^jQ|~jk+H~Ws=2)BP#3Z>=;CAvcu+$_ zL%D7>6F+}#QIQP*{_yZ{s7eQihf1=tD?fAEl9{zM%MGszDth=AsOM0wY2{OZYc0Fi z(`R{Kr!?nGBVf_SdGH_r`W;{kcEiTsBO@cG6~`whia^v`LvDgl0s4Yx!vs-1H2#Na z3XsIYuz^pn-Ow!42XdK;PRQoJ-!Bac1!OjjETl3P5$AlS*QBhRT)peU_lB)z`4{u= zpAv=LO9ul=UA!en4vh0_8Z>Y*0Qz zh>!1oFr?+#5HMV#GtuC6w7;Jr;^*n>>#L-s1h86LTie;$+0c-zjRS%=i{Is~1l7q% z%Y_9uF>tBeA=@6yJ*d)cU%o8D&0jDV5MkS+=Hf#9GuH&pD=4bQl_w{PD97CULf7Q-hb z^jaOfQ{V*GJlz_4%sKAv%DePR<~pB%$3VF* zWp15u{%!y1&6_vS7{VeV=;-L;$i=eW76S7D{RzlK@epuWl?v_k%}u3&k8a0?O}-Fa zv@|q88bPq?=MDfZ>i6&8ghu`qpFX85`NVY0E-vz#ddG*JBe_8?pPv}o{fQC%AH zJlHV0E5|-LFtf78Mn&NwP)o&T`Q!3!z&d*zXQ308pjkZe(I#oaG5+~;`@MD7YTYL5 zeyXsaQ2T%u?4;-Ah?NZ|)r?t7>FMbYusUHqJj9ra0}j8=fg%2eRDz`L|6DxuXM7xVt^vzo zkky#A%I5i%^3+uE^E8;?8X!uy1v)^2fhwD)=CeC5>+e|E+#Cq~l(e&G2n=9n+G&f; z$);04h@M-MvFt*+4W15xfz5Dc6^5{XuD#yxl1l+{4C)5h3=}vF$=?C&1_cF0wyEmt zvk=5UM)1ek+1u~$>^y`SnuZCe_!SkZK-DB9U_d3NLrqJI5U8=XHUmD|#Kgpgr%>M> zfSp>NLtq_Om8R6}&4&*-lpw4*aHh$;*grawMhp!OLd^p7@ZtrYk&#hkTX4ZsoGesB3)lhrfv)cA)>eFj8#)>q3|W9;+G_@F{<4Iku^fu= z&l;yG2!}7PK~LP~zeNdeIXkr`S-`*l)6*wcZ~TwKN&JoAJuL`6l&77TeS2YhR=`%_ z_lJm?2w(Uuo{L}l>Is(rlYsNzLBS<|+#JTO8{L(c8Lk((1fctT7K@zDQm!a0v<8yA zxw#3hKX5JR^uC`Z-`f0bkGk6yiS5-~1?~Lv=g&Z*h`21_?rE>V88@|XI5DdHPj=(Q zE`CF0Hm&#pMfu^wM2k@ns8cK&Jk~5Z(_pHqrKLr)xO&tcFl;KDfvL_XXcBc`>hyWvXZc89DiE?tf zf@}gaUNm?PlZ`%~pI+Nr>_NxG?D_VMgE$tn_bYI*zpr28H~|gkPRLWm+hD(79vzcX zDh^!f$#6$%p{s!ye5DHYyc>;;mkwRQeBg`?cbJ zJ=ho)Hup8QN}B~xi@3NrP#9m(LvCS_)&^Y$#?7IjqmvL5fA8)#X}AVh{;S9)F(x)P zJ1gtZ+CfxQ6hMvwoZ*p649u6IBX}cx+j7C-!ztaVg)7aPu)d=K3 z_2Qw~{+l62OcE>v=?ZjVDh>_~va+DakqWw78yg#IXuPbc;j`z1L=*S6gDM4R1LU$# zEiFOn>gvwUAGBG>K-B^y!Wd1=@BBuAj)cSbGc+r(LhPd7X8G@S0ZK$e4LLsc28JVy z8$#i{m@3=Cy#rV6jd=}Fnxa3MTA=rX%+@6i!enyp8SW)qimDSur>FT|DIw%K$8R&G+chUo7cs`L(*q6YV>w-bK6UIY8LQV9RypYw!VH> zSj_%6$8SeKzlknJfe}#_I-#x85cu|QD_FYs8o7Sy&hf{Y+^^6+qqj7#*3DB}G1Ae9 zFmV>-#0cf8ldJ-R z`hOr;mqS3$XdSIO1^}gi0n|rehGA8W`e)OXjjUa^Yr|x&#b^sZJSK>O&43_^fGxG+ zy#P8joJ}U|{o&1*g9rn9<>9o5+85}tr22mQ{A8sbbICJ)u7!% zbRR<3@0fdKV$JS3wV~tg2#+{?iiF5+C0OAbjlC zuS%yWQFiunsGtM{1aP}xvtPZs59|&kJg~AL{lF?*pK8gbc-ECfUz2swCw7^UlCrqA zmY$KJ5AIKDDxbyomw=Xs0jGjr38e=_Bp6HsrUafGh(Q3j^d3KM`y6~@Zf>p|s@~bL zOP<=vxLaS8#9QbR5M)Qo{g0WF0eKF#wV6ScftPS!K|#UN{JcBJ7)C9DV0?TW+kl_z zzw+e4x2dYC0!i%r{5;!tl`;A)4iY|}pTD@YBrPQsN5r)Vh>A099S|C9VN6sMBbb4% z^D>YgYbZj2XZ)Qmz|KIdkx@|isLcZO4+`{^WO3(?fZyRdR6j6cuQCDX{p)Q|ejcoiKq7$!_cfjzrre;yf_~a=x&x|J`s>#Kf*<3wL!NJ}tlUZGhw%AH zK#45;^vM(IJ}95CKbdMpEDQ|4;Vb~w-sa{~Q&HjF1yNfcWZ!4F)G{x|0UQEK<8>T= zm5|^JL=2?Sow-g}z^FOr2KayAgn�=+au`910zP4A}XR!NC&k3Mx_23sC;h!cBqx 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

tzqmo;!S=3j#f!asaao5SO z8$-BP6Gt|C`nK7S_Ko`YM3QCfaPlqNP4NdK{!EYEv?&&54)a(AZ0;YU}p85PMToUBJA^N@>isww?L{>@a)avWq9)Kg&)<^k>L?CEU)!Gew(q#_RFC;18Nrac-+V z0XT?+YQ3dmi^^s~1XC!(4Nd`@HR35(*IXNXXpV`UwGT&4kbI9rbtad~bdgn+=que* zi_4vfmLl54uh$;Li?oCL`5R-nog1>f`sLjyd?jynRxzZ7fKx!cMZ`Q@SO0aU3?$;z6c`ZRaY0LrK%w_x7GNFB1}f&b~eqW93I( zgg|PI1nagUHN2KM&G;Yu@JcyTV8H3|CQiu3Me(RUaleS6%@D?5_+^$2fDfO3ny6cPQ9}bIs zx|?2gz@}}zLq46&e{ln1Htnlz=<~gOWg>T>_mPZcf1fKFC6+UMgj`XfHGgPuGWyoF zM}Dmiwhz9MVJU*dhvK5Ay&4+Td;3JRuUD{PiMpyybxKWwOQ?<*;VT)a&cmY`KSD*> zZG;~TWDLW?0%R5GCtrQAxW5Hu1CJ%A3#AdoYq=d5o~!X{o9|=UrT%*Ub2%77v-t8V z-)H(1Z*78H!2+`Fw?yGvNw(i)bTmo&Q<;bwfjUkME$}GDz*$Bq0k<4@4z3wamCmhh zbyrk4mSD~W*Xw8$)}P;S#cmHxC^e{4U1~?5inS~m?>QokPb_3R<-cDmnF<|_D@)F1 zzKsiIbr;gU=f**7BDw&D6G;fRn6zGw>trw77oM*xa;B^8oeiMLA Do{iMR literal 0 HcmV?d00001 diff --git a/structure-message/requirements/img/df-filters.png b/structure-message/requirements/img/df-filters.png new file mode 100644 index 0000000000000000000000000000000000000000..0ba29e57f2c80c72674b5860bd71f1797ff86fce GIT binary patch literal 32301 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

#sAP4VU)DrNhli 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 E4=HHdmH+?% literal 0 HcmV?d00001 diff --git a/structure-message/requirements/img/df-list.png b/structure-message/requirements/img/df-list.png new file mode 100644 index 0000000000000000000000000000000000000000..3cc51b3c85ed726f09ba4ebd476f2384708d1daa GIT binary patch literal 18084 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 O$x13pl%Sry{67F;u)dc7 literal 0 HcmV?d00001 From a32702118d3caa2cbf3e5744d0bf5d936510c0b3 Mon Sep 17 00:00:00 2001 From: Sami Airo Date: Mon, 3 Aug 2015 15:54:40 +0300 Subject: [PATCH 003/161] Update browse-by-topic.md --- .../requirements/browse-by-topic.md | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/structure-message/requirements/browse-by-topic.md b/structure-message/requirements/browse-by-topic.md index 781f00f..f3b8399 100644 --- a/structure-message/requirements/browse-by-topic.md +++ b/structure-message/requirements/browse-by-topic.md @@ -7,6 +7,9 @@ Browsing a list of *topics* (i.e. statistical domains) is a common way for users ## Artefacts involved The following SDMX artefacts are needed to support this use case: + +- Maintenance Agency +- Data Provider - Category Scheme - Categorisation - Dataflow @@ -23,13 +26,15 @@ For additional information about the query syntax used in the examples below, pl ### Step 1: Get the list of statistical domains +Required artefacts: Category Scheme, Maintenance Agency + The starting point is to retrieve the list of *topics* for which data are available. These are known as `category schemes` in SDMX. They can be retrieved using a categoryscheme query: ``` https://ws-entry-point/categoryscheme ``` -Alternatively, if only the topics of a particular category scheme are needed, it is possible to only retrieve that particular category scheme: +Alternatively, if only the topics of a particular category scheme are needed, it is possible to only retrieve that particular category scheme (assuming we also know the maintenance agency for the category scheme): ``` https://ws-entry-point/categoryscheme/agency-id/category-scheme-id @@ -45,12 +50,14 @@ The screenshot below displays the category scheme as a list box, similar to the ![Idle points on the map](img/cs-list.png) -The client typically needs to display the names of the categories. In addition, some clients might also want to display the descriptions of the categories and the name of the category schemes. +The client typically needs to display the names of the categories. In addition, some clients might also want to display the descriptions of the categories and the name of the category schemes and possibly the name of its maintenance agency. In addition, on order to perform the next query (cf. step 2 below), clients will need the full references for the categories (id) and category schemes (id, agency id and version). ### Step 2: Get the list of dataflows attached to the selected domains +Required artefacts: Categorisation, Dataflow, Data Provision Aggreement, Data Provider + Once a user has selected a category, the web service client will need to retrieve the *baskets of data* attached to the category. These are known as `dataflows` in SDMX. It is possibe to retrieve these, using a category query and resolving its references. ``` @@ -65,10 +72,20 @@ The screenshot below shows an example of the type of user interface (a list box The client typically needs to display the names of the dataflows. In addition, some clients might also want to display the descriptions of the dataflows and the name of the selected category. +Multiple data providers may provide data for the same data flow. If this distinction is important then the client must query for Data Provisions Agreements that link to the data flow: + +``` +https://ws-entry-point/dataflow/agency-id/dataflow-id/dataflow-version?references=all +``` + +The response will contain the Data Provision Aggreements that reference the data flow. + In addition, in order to perform the next query (cf. step 3 below), clients will need the full references to the dataflows (id, agency id and version). ### Step 3: Find data in the selected dataflow, using concept filters +Required artefacts: Data Structure Definition, Codelist, Concept, Content Constraint + Once a user has selected a dataflow, the web service client will need to retrieve the `concepts` that are used to structure that dataflow. In addition, the list of allowed values for each of these concepts will be needed. The list of values for which data exist can be found in the `content constraints`, while the names of the values can be retrieved from the `codes` in the `codelists` referenced by the `data structure definition`. All these artefacts can be retrieved in just one dataflow query, again using the references' resolution mechanism offered by the SDMX RESTful API. ``` From a3ac487e1e69bda1998c8a7f1ff1fd84f1f87da0 Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Mon, 3 Aug 2015 15:54:25 +0200 Subject: [PATCH 004/161] Minor edits --- structure-message/requirements/browse-by-topic.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/structure-message/requirements/browse-by-topic.md b/structure-message/requirements/browse-by-topic.md index f3b8399..fb7dbe0 100644 --- a/structure-message/requirements/browse-by-topic.md +++ b/structure-message/requirements/browse-by-topic.md @@ -72,13 +72,13 @@ The screenshot below shows an example of the type of user interface (a list box The client typically needs to display the names of the dataflows. In addition, some clients might also want to display the descriptions of the dataflows and the name of the selected category. -Multiple data providers may provide data for the same data flow. If this distinction is important then the client must query for Data Provisions Agreements that link to the data flow: +Multiple data providers may provide data for the same dataflow. If this distinction is important then the client must query for Data Provisions Agreements that link to the dataflow: ``` https://ws-entry-point/dataflow/agency-id/dataflow-id/dataflow-version?references=all ``` -The response will contain the Data Provision Aggreements that reference the data flow. +The response will contain the Data Provision Agreements that reference the dataflow. In addition, in order to perform the next query (cf. step 3 below), clients will need the full references to the dataflows (id, agency id and version). From 6b5a6cc95a7ce9c00fabf7aca362e7f153d2ab16 Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Mon, 17 Aug 2015 16:09:50 +0200 Subject: [PATCH 005/161] Fixed typo --- structure-message/requirements/browse-by-topic.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/structure-message/requirements/browse-by-topic.md b/structure-message/requirements/browse-by-topic.md index fb7dbe0..f4d7010 100644 --- a/structure-message/requirements/browse-by-topic.md +++ b/structure-message/requirements/browse-by-topic.md @@ -52,7 +52,7 @@ The screenshot below displays the category scheme as a list box, similar to the The client typically needs to display the names of the categories. In addition, some clients might also want to display the descriptions of the categories and the name of the category schemes and possibly the name of its maintenance agency. -In addition, on order to perform the next query (cf. step 2 below), clients will need the full references for the categories (id) and category schemes (id, agency id and version). +In addition, in order to perform the next query (cf. step 2 below), clients will need the full references for the categories (id) and category schemes (id, agency id and version). ### Step 2: Get the list of dataflows attached to the selected domains From 2b883ed5cd61f2b8d09f68ff4eae4f90ef781fa8 Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Mon, 17 Aug 2015 16:53:01 +0200 Subject: [PATCH 006/161] Sample file for step 1 of browse-by-topic use case --- .../samples/browse-by-topic/step1.json | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 structure-message/samples/browse-by-topic/step1.json diff --git a/structure-message/samples/browse-by-topic/step1.json b/structure-message/samples/browse-by-topic/step1.json new file mode 100644 index 0000000..c26babf --- /dev/null +++ b/structure-message/samples/browse-by-topic/step1.json @@ -0,0 +1,57 @@ +{ + "header": { + "id": "IDREF148838", + "prepared": "2015-08-17T14:07:23.452Z", + "sender": { + "id": "ECB" + } + }, + "structure": { + "categoryschemes": { + "categoryscheme": { + "id": "MOBILE_NAVI_PUB", + "agencyID": "ECB.DISS", + "version": "1.0", + "name": "Economic concepts", + "categories": [ + { + "id": "01", + "name": "Monetary operations" + }, + { + "id": "02", + "name": "Prices, output, demand and labour market" + }, + { + "id": "03", + "name": "Monetary and financial statistics" + }, + { + "id": "04", + "name": "Euro area accounts" + }, + { + "id": "05", + "name": "Government finance" + }, + { + "id": "06", + "name": "External transactions and positions" + }, + { + "id": "07", + "name": "Exchange rates" + }, + { + "id": "08", + "name": "Payments and securities trading, clearing, settlement" + }, + { + "id": "09", + "name": "Banknotes and Coins" + } + ] + } + } + } +} From 741abd1392e84828b213166900674dd2c1e43f8f Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Mon, 17 Aug 2015 16:55:30 +0200 Subject: [PATCH 007/161] Sample for step 1 of browse-by-topic - hateoas --- .../browse-by-topic/step1-hateoas.json | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 structure-message/samples/browse-by-topic/step1-hateoas.json diff --git a/structure-message/samples/browse-by-topic/step1-hateoas.json b/structure-message/samples/browse-by-topic/step1-hateoas.json new file mode 100644 index 0000000..5fa3cd2 --- /dev/null +++ b/structure-message/samples/browse-by-topic/step1-hateoas.json @@ -0,0 +1,63 @@ +{ + "header": { + "id": "IDREF148838", + "prepared": "2015-08-17T14:07:23.452Z", + "sender": { + "id": "ECB" + } + }, + "structure": { + "links": [ + { + "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0", + "rel": "self", + "title": "Economic concepts" + }, + { + "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/01", + "rel": "category", + "title": "Monetary operations" + }, + { + "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/02", + "rel": "category", + "title": "Prices, output, demand and labour market" + }, + { + "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/03", + "rel": "category", + "title": "Monetary and financial statistics" + }, + { + "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/04", + "rel": "category", + "title": "Euro area accounts" + }, + { + "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/05", + "rel": "category", + "title": "Government finance" + }, + { + "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/06", + "rel": "category", + "title": "External transactions and positions" + }, + { + "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/07", + "rel": "category", + "title": "Exchange rates" + }, + { + "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/08", + "rel": "category", + "title": "Payments and securities trading, clearing, settlement" + }, + { + "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/09", + "rel": "category", + "title": "Banknotes and Coins" + } + ] + } +} From d0642ed5fb97bc40e94ca2f3e5c7fc8692b70f4a Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Tue, 18 Aug 2015 07:58:15 +0200 Subject: [PATCH 008/161] Made URLs generic & added reference resolution --- .../browse-by-topic/step1-hateoas.json | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/structure-message/samples/browse-by-topic/step1-hateoas.json b/structure-message/samples/browse-by-topic/step1-hateoas.json index 5fa3cd2..7f432fd 100644 --- a/structure-message/samples/browse-by-topic/step1-hateoas.json +++ b/structure-message/samples/browse-by-topic/step1-hateoas.json @@ -9,52 +9,52 @@ "structure": { "links": [ { - "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0", + "href": "https://ws-entry-point/categoryscheme/ECB/NAVI_PUB/1.0", "rel": "self", "title": "Economic concepts" }, { - "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/01", + "href": "https://ws-entry-point/categoryscheme/ECB/NAVI_PUB/1.0/01?references=categorisation", "rel": "category", "title": "Monetary operations" }, { - "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/02", + "href": "https://ws-entry-point/categoryscheme/ECB/NAVI_PUB/1.0/02?references=categorisation", "rel": "category", "title": "Prices, output, demand and labour market" }, { - "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/03", + "href": "https://ws-entry-point/categoryscheme/ECB/NAVI_PUB/1.0/03?references=categorisation", "rel": "category", "title": "Monetary and financial statistics" }, { - "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/04", + "href": "https://ws-entry-point/categoryscheme/ECB/NAVI_PUB/1.0/04?references=categorisation", "rel": "category", "title": "Euro area accounts" }, { - "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/05", + "href": "https://ws-entry-point/categoryscheme/ECB/NAVI_PUB/1.0/05?references=categorisation", "rel": "category", "title": "Government finance" }, { - "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/06", + "href": "https://ws-entry-point/categoryscheme/ECB/NAVI_PUB/1.0/06?references=categorisation", "rel": "category", "title": "External transactions and positions" }, { - "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/07", + "href": "https://ws-entry-point/categoryscheme/ECB/NAVI_PUB/1.0/07?references=categorisation", "rel": "category", "title": "Exchange rates" }, { - "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/08", + "href": "https://ws-entry-point/categoryscheme/ECB/NAVI_PUB/1.0/08?references=categorisation", "rel": "category", "title": "Payments and securities trading, clearing, settlement" }, { - "href": "http://a-sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/09", + "href": "https://ws-entry-point/categoryscheme/ECB/NAVI_PUB/1.0/09?references=categorisation", "rel": "category", "title": "Banknotes and Coins" } From 27f420feb77887403218d5d9aac4b3d7744fc567 Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Wed, 26 Aug 2015 15:08:00 +0200 Subject: [PATCH 009/161] Changed images alt text --- structure-message/requirements/browse-by-topic.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/structure-message/requirements/browse-by-topic.md b/structure-message/requirements/browse-by-topic.md index f4d7010..d3d5acc 100644 --- a/structure-message/requirements/browse-by-topic.md +++ b/structure-message/requirements/browse-by-topic.md @@ -48,7 +48,7 @@ The screenshot below shows an example of the type of user interface (a treeview The screenshot below displays the category scheme as a list box, similar to the typical control displayed by mobile apps. The example is taken from the ECB statistical tablet app. -![Idle points on the map](img/cs-list.png) +![List of statistical domains](img/cs-list.png) The client typically needs to display the names of the categories. In addition, some clients might also want to display the descriptions of the categories and the name of the category schemes and possibly the name of its maintenance agency. @@ -68,7 +68,7 @@ The response will contain the selected `category`, the `categorisations` that li The screenshot below shows an example of the type of user interface (a list box in this case) that can be built from the response. The example is taken from the ECB statistical tablet app. -![Idle points on the map](img/df-list.png) +![List of dataflows](img/df-list.png) The client typically needs to display the names of the dataflows. In addition, some clients might also want to display the descriptions of the dataflows and the name of the selected category. @@ -96,7 +96,7 @@ The response will contain the selected `dataflow`, the `data structure definitio The screenshot below shows an example of the type of user interface (a list box for the list of concepts, and a collection of check boxes for the list of allowed values for each of the concepts in this example) that can be built from the response. The example is taken from the ECB statistical tablet app. -![Idle points on the map](img/df-filters.png) +![Dimension filters](img/df-filters.png) The client typically needs to display the name of the concepts (Frequency, Reference area, etc.) and of the allowed values for each concept (e.g.: Annual, Monthly, etc.). In addition, some clients will also need the descriptions of the concepts and codes, as well as the code ids. From 75ce64258953f61501b1b7653bb2b5cdb081056e Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Fri, 20 Nov 2015 14:11:47 +0100 Subject: [PATCH 010/161] Added list of matching series --- .../requirements/browse-by-topic.md | 14 +++++++++----- .../requirements/img/series-list.png | Bin 0 -> 237980 bytes 2 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 structure-message/requirements/img/series-list.png diff --git a/structure-message/requirements/browse-by-topic.md b/structure-message/requirements/browse-by-topic.md index 781f00f..bf4f590 100644 --- a/structure-message/requirements/browse-by-topic.md +++ b/structure-message/requirements/browse-by-topic.md @@ -39,11 +39,11 @@ The response will contain the `category scheme(s)` and its `categories`. The screenshot below shows an example of the type of user interface (a treeview control in this case) that can be built from a category scheme, using the [ECB Statistical Data Warehouse](https://sdw.ecb.europa.eu) as an example. -![Idle points on the map](img/cs-treeview.png) +![Treeview control](img/cs-treeview.png) The screenshot below displays the category scheme as a list box, similar to the typical control displayed by mobile apps. The example is taken from the ECB statistical tablet app. -![Idle points on the map](img/cs-list.png) +![List of categories](img/cs-list.png) The client typically needs to display the names of the categories. In addition, some clients might also want to display the descriptions of the categories and the name of the category schemes. @@ -61,7 +61,7 @@ The response will contain the selected `category`, the `categorisations` that li The screenshot below shows an example of the type of user interface (a list box in this case) that can be built from the response. The example is taken from the ECB statistical tablet app. -![Idle points on the map](img/df-list.png) +![List of dataflows](img/df-list.png) The client typically needs to display the names of the dataflows. In addition, some clients might also want to display the descriptions of the dataflows and the name of the selected category. @@ -79,8 +79,12 @@ The response will contain the selected `dataflow`, the `data structure definitio The screenshot below shows an example of the type of user interface (a list box for the list of concepts, and a collection of check boxes for the list of allowed values for each of the concepts in this example) that can be built from the response. The example is taken from the ECB statistical tablet app. -![Idle points on the map](img/df-filters.png) +![Dimension filters](img/df-filters.png) -The client typically needs to display the name of the concepts (Frequency, Reference area, etc.) and of the allowed values for each concept (e.g.: Annual, Monthly, etc.). In addition, some clients will also need the descriptions of the concepts and codes, as well as the code ids. +The client typically needs to display the name of the concepts (Frequency, Reference area, etc.) and of the allowed values for each concept (e.g.: Annual, Monthly, etc.). In addition, some clients might also want to display the descriptions of the concepts and codes, as well as the code ids. In order to retrieve the data matching the user's filters, the web service clients will need the full references to the dataflow (id, agency id and version) and the code ids for the dimension values. + +Once the filters' selection is finished, the client will typically provide a list of matching series like the one shown on the screen below, but this is typically the result of a data query: + +![Matching series](img/series-list.png) diff --git a/structure-message/requirements/img/series-list.png b/structure-message/requirements/img/series-list.png new file mode 100644 index 0000000000000000000000000000000000000000..cfe2e57489a3aebac55e26a7dc1ebd0a91139fbb GIT binary patch literal 237980 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�KhtbYODSB1k)P&=B#W)v0jI?AZ6C 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

^nMHEH|x(f-vy1bvr>wRfZ+ z(xn!@;>Jk90Yq#`w6IeP>RG1=`!lBy7D@JZSZ&`;W*~D!_b6CePRN&hO`xgZeX{>` zG9*(?d-g6n&|7M|U*I401a8#m z_h;~je(zrA+@A(Shz%PpXH^q&mHc~F%5cQn6h5y)Qq=?Y1`&Z@qr^=1pww-jYR^%NQocTmMP=!FXG0s;(1o*}&G zXP3xP-*)Iuj1T6|QtDXS@!H&8b%&NLDx62BxAgXNS&eIbCb2^4={&UYLU4MOkHlMO zw>!y#1y|&u4U_|lBU8)d5ys0BB^&qkwvsvE@~;>QIfFx9Q}#2!(Mn$z+wmgw%uEFFdMsDIdJwt7ok9y6?;e5uAPpZ7MTW zWF07D4v=iJOCF5pVBi93kA326xP(^VVFv)?rL31}vxF%J5-W9$f>l9j+p(4U8a@p* zJBQ6XT9-BCyCy@OI}ry(JXFG^LENx^yeGUQ7xTyb7@t_Ch`+fCdk`AYFtTnpBkaoN zMCN^G&2q=M(Xi8WWV9O`lfc&fZqr1f&9}FGbre?6ixJm3py&NgG&{iA*<~yPeLiD} znPXnEwjrZ`^TTg&pGtAhYK0ot+kEy27l!ccpywwuJH;;!cC=of#CYR{^K+QX0S}Dg zN|F*1d)HXvG?6!aMUiZ8GXQSgK~f87Ru*pO9x zlJyY@uq#42XD`GCr{%s?bjm*r6auR=pHn{aKW+oWR^ZAVr~Ku?%qNlJTubpkUts?1 zb%V!iiTTPNxRtwue+SB=-6b6V@A5$zIO`?k|nkB zAbm3hl*e|P=KlFj|Gby~S{9drsWIgQqP~CP-2aA*{&5j`;=n46V#2|qe&pmabs&Jo z^wsX8oK$%%NJH3}SESJWd-(p(FKx4d5J^2ME00_hvcM=RP;*Tg(JlFhvh82D{a;_I z1))8-{cawGo9rMo6`?K@jr=25ma3cp{8Z`5WZi$O=zo@=F(sIUHQQ&(uKMV~PlM=) zPE>Zwe;aB4x;umrUQ8M%B0TP2fAwF!v`iZOl+Ew+$Mo!&v$7yz!c(cEnDFSqbAzAK z+9+~-^zKMQh`9fIOUq*zIQDovQVL4Um>b`}<>)0RK(z5F2*n2=3?(0HpEcOR1^EB^ zXA%65Ap{wOL;$Q-{K@w14B!N4uvF3gt3?0j2yK!vZV7HpQ$Yoqw6}U5i%WwC0;kP? zU$<}rL_p#o(_=`}Aw~-8+Se_0n6|^j2KGlreA_=x-w_pn7yH2x@n350pX03j4eXY} zRp~W2*SxWC7<%NBP5`=&Qcv~~NSQ#rXc&4dUTdEu@EY^pMuZ#KH%uk0dZb|g&%UJo zUE9*YKfD0`7{LE~dH)}-SUb4DXrE0=M^NbKe^HhFnUcS>|LV-w7SNHgCMbNQ)c5hB ziyyx7U+Bc6{&Q}4Q;3xI;*ptp)&siW{_7}Qd0M3C3YaWu|CJf;v03L$keJM!(I4NR zhm$7%*!LSkgDE{$A4G0;!tOI$7n*R#Y&hgeN3{FrBh9)TgJ*f2WbMOU9AaOa=-==6V z?_zXH0*m31dG{w-xdUO_KTcvsRUhRqZS4OzunWw^ zn!jZ@iGbd3pl8m}{S~;Rg(Ru4K^=7O9$bLgF)xw63AfyXF(Y6%>;@7|1vi^@`Rzq) zv5>(7$Xv}e4)OQjPZf!9Q_uOf{<)<(>jVvf%^-&=dSI>cW-5>57npz(7Z1Ujz~Fh@ z-gu>V@rD#6MyKF5)emOJkI90w@kEH`uMtGA`&GgsG$4^gIik_MvBp1fmX08s4|uzEz#Qb&dMit`+tf(RGE zm?}RotLi&G9V8d)^?+7y-&wco`O}Bvr;rRBJdPvUE5fYg%o4&Ufk(bw!r1{0YnSa~1^6%x+unPxJeS{!IPrce;?o0TK^�}qF@wQq{i3b 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�#S%T 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 npNd?Fz7JaP!3eWVRPiO$pU0D)eli1h^P;M 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

2Qy=qJL@^OXxwEa_QBza1l7vi9L7&4ib^KC5Km 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 literal 0 HcmV?d00001 From 027384e54703ae7dc796dc93e145863d60b73c6e Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Fri, 20 Nov 2015 14:30:09 +0100 Subject: [PATCH 011/161] Reviewed format for step 1 --- .../samples/browse-by-topic/step1.json | 96 ++++++++++--------- 1 file changed, 49 insertions(+), 47 deletions(-) diff --git a/structure-message/samples/browse-by-topic/step1.json b/structure-message/samples/browse-by-topic/step1.json index c26babf..71173ad 100644 --- a/structure-message/samples/browse-by-topic/step1.json +++ b/structure-message/samples/browse-by-topic/step1.json @@ -4,54 +4,56 @@ "prepared": "2015-08-17T14:07:23.452Z", "sender": { "id": "ECB" + }, + "links": [ + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0", + "rel": "request" } + ] }, - "structure": { - "categoryschemes": { - "categoryscheme": { - "id": "MOBILE_NAVI_PUB", - "agencyID": "ECB.DISS", - "version": "1.0", - "name": "Economic concepts", - "categories": [ - { - "id": "01", - "name": "Monetary operations" - }, - { - "id": "02", - "name": "Prices, output, demand and labour market" - }, - { - "id": "03", - "name": "Monetary and financial statistics" - }, - { - "id": "04", - "name": "Euro area accounts" - }, - { - "id": "05", - "name": "Government finance" - }, - { - "id": "06", - "name": "External transactions and positions" - }, - { - "id": "07", - "name": "Exchange rates" - }, - { - "id": "08", - "name": "Payments and securities trading, clearing, settlement" - }, - { - "id": "09", - "name": "Banknotes and Coins" - } - ] + "resources": [{ + "id": "MOBILE_NAVI_PUB", + "agencyID": "ECB.DISS", + "version": "1.0", + "name": "Economic concepts", + "items": [ + { + "id": "01", + "name": "Monetary operations" + }, + { + "id": "02", + "name": "Prices, output, demand and labour market" + }, + { + "id": "03", + "name": "Monetary and financial statistics" + }, + { + "id": "04", + "name": "Euro area accounts" + }, + { + "id": "05", + "name": "Government finance" + }, + { + "id": "06", + "name": "External transactions and positions" + }, + { + "id": "07", + "name": "Exchange rates" + }, + { + "id": "08", + "name": "Payments and securities trading, clearing, settlement" + }, + { + "id": "09", + "name": "Banknotes and Coins" } - } - } + ] + }] } From 752331979908d123c9d96c65b19a44f822e9a414 Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Fri, 20 Nov 2015 14:56:01 +0100 Subject: [PATCH 012/161] Added sample file for step 2 --- .../samples/browse-by-topic/step2.json | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 structure-message/samples/browse-by-topic/step2.json diff --git a/structure-message/samples/browse-by-topic/step2.json b/structure-message/samples/browse-by-topic/step2.json new file mode 100644 index 0000000..778af0e --- /dev/null +++ b/structure-message/samples/browse-by-topic/step2.json @@ -0,0 +1,66 @@ +{ + "header": { + "id": "IDREF148838", + "prepared": "2015-08-17T14:07:23.452Z", + "sender": { + "id": "ECB" + }, + "links": [{ + "href": "https://sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0/01?references=parentsandsiblings", + "rel": "request" + }] + }, + "resources": [{ + "id": "MOBILE_NAVI_PUB", + "agencyID": "ECB.DISS", + "version": "1.0", + "name": "Economic concepts", + "isPartial": true, + "items": [ + { + "id": "01", + "name": "Monetary operations", + "references": [ + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:ILM_PUB(1.0)", + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:FM_PUB(1.0)", + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:BSI_PUB(1.0)" + ] + } + ] + }], + "references": { + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:ILM_PUB(1.0)": { + "id": "ILM_PUB", + "agencyID": "ECB.DISS", + "version": "1.0", + "name": "Internal Liquidity Management - Published series", + "structure": { + "id": "ECB_ILM1", + "agencyID": "ECB", + "version": "1.0" + } + }, + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:FM_PUB(1.0)": { + "id": "FM_PUB", + "agencyID": "ECB.DISS", + "version": "1.0", + "name": "Financial market data - Published series", + "structure": { + "id": "ECB_FMD2", + "agencyID": "ECB", + "version": "1.0" + } + }, + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:BSI_PUB(1.0)": { + "id": "BSI_PUB", + "agencyID": "ECB.DISS", + "version": "1.0", + "name": "Balance Sheet Items - Published series", + "structure": { + "id": "ECB_BSI1", + "agencyID": "ECB", + "version": "1.0" + } + } + } +} From 7087f01e0a93b64c63d6480992d92bf67122570e Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Fri, 20 Nov 2015 14:58:48 +0100 Subject: [PATCH 013/161] Minor formatting changes --- .../samples/browse-by-topic/step1.json | 108 +++++++++--------- 1 file changed, 53 insertions(+), 55 deletions(-) diff --git a/structure-message/samples/browse-by-topic/step1.json b/structure-message/samples/browse-by-topic/step1.json index 71173ad..b8b50ec 100644 --- a/structure-message/samples/browse-by-topic/step1.json +++ b/structure-message/samples/browse-by-topic/step1.json @@ -1,59 +1,57 @@ { - "header": { - "id": "IDREF148838", - "prepared": "2015-08-17T14:07:23.452Z", - "sender": { - "id": "ECB" - }, - "links": [ - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0", - "rel": "request" - } - ] + "header": { + "id": "IDREF148838", + "prepared": "2015-08-17T14:07:23.452Z", + "sender": { + "id": "ECB" }, - "resources": [{ - "id": "MOBILE_NAVI_PUB", - "agencyID": "ECB.DISS", - "version": "1.0", - "name": "Economic concepts", - "items": [ - { - "id": "01", - "name": "Monetary operations" - }, - { - "id": "02", - "name": "Prices, output, demand and labour market" - }, - { - "id": "03", - "name": "Monetary and financial statistics" - }, - { - "id": "04", - "name": "Euro area accounts" - }, - { - "id": "05", - "name": "Government finance" - }, - { - "id": "06", - "name": "External transactions and positions" - }, - { - "id": "07", - "name": "Exchange rates" - }, - { - "id": "08", - "name": "Payments and securities trading, clearing, settlement" - }, - { - "id": "09", - "name": "Banknotes and Coins" - } - ] + "links": [{ + "href": "https://sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0", + "rel": "request" }] + }, + "resources": [{ + "id": "MOBILE_NAVI_PUB", + "agencyID": "ECB.DISS", + "version": "1.0", + "name": "Economic concepts", + "items": [ + { + "id": "01", + "name": "Monetary operations" + }, + { + "id": "02", + "name": "Prices, output, demand and labour market" + }, + { + "id": "03", + "name": "Monetary and financial statistics" + }, + { + "id": "04", + "name": "Euro area accounts" + }, + { + "id": "05", + "name": "Government finance" + }, + { + "id": "06", + "name": "External transactions and positions" + }, + { + "id": "07", + "name": "Exchange rates" + }, + { + "id": "08", + "name": "Payments and securities trading, clearing, settlement" + }, + { + "id": "09", + "name": "Banknotes and Coins" + } + ] + }] } From 577fe89c2ddec3e9dfff1c208eb6a673ee7478a3 Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Fri, 20 Nov 2015 15:07:03 +0100 Subject: [PATCH 014/161] Changed message IDs --- structure-message/samples/browse-by-topic/step1.json | 2 +- structure-message/samples/browse-by-topic/step2.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/structure-message/samples/browse-by-topic/step1.json b/structure-message/samples/browse-by-topic/step1.json index b8b50ec..30be222 100644 --- a/structure-message/samples/browse-by-topic/step1.json +++ b/structure-message/samples/browse-by-topic/step1.json @@ -1,6 +1,6 @@ { "header": { - "id": "IDREF148838", + "id": "STEP1", "prepared": "2015-08-17T14:07:23.452Z", "sender": { "id": "ECB" diff --git a/structure-message/samples/browse-by-topic/step2.json b/structure-message/samples/browse-by-topic/step2.json index 778af0e..fffea3d 100644 --- a/structure-message/samples/browse-by-topic/step2.json +++ b/structure-message/samples/browse-by-topic/step2.json @@ -1,6 +1,6 @@ { "header": { - "id": "IDREF148838", + "id": "STEP2", "prepared": "2015-08-17T14:07:23.452Z", "sender": { "id": "ECB" From 719d6fb06321d5674698c18a590d3428feb8ce31 Mon Sep 17 00:00:00 2001 From: Sami Airo Date: Mon, 30 Nov 2015 08:06:56 +0100 Subject: [PATCH 015/161] Add large sample for step 3. --- .../samples/browse-by-topic/step3.json | 15836 ++++++++++++++++ 1 file changed, 15836 insertions(+) create mode 100644 structure-message/samples/browse-by-topic/step3.json diff --git a/structure-message/samples/browse-by-topic/step3.json b/structure-message/samples/browse-by-topic/step3.json new file mode 100644 index 0000000..659f610 --- /dev/null +++ b/structure-message/samples/browse-by-topic/step3.json @@ -0,0 +1,15836 @@ +{ + "header": { + "test": false, + "id": "IDREF246596", + "prepared": "2015-11-30T06:56:42.641Z", + "sender": { + "id": "ECB" + }, + "receiver": { + "id": "unknown" + } + }, + "resources": [ + { + "id": "BSI_PUB", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:BSI_PUB(1.0)", + "annotations": [ + { + "title": "MAPPED_FLOW_ID", + "text": "BSI" + } + ], + "name": "Balance Sheet Items - Published series", + "description": "Series of the 'Balance Sheet Items' dataflow that are used in ECB publications", + "structure": { + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=ECB:ECB_BSI1(1.0)" + } + } + ], + "references": { + "urn:sdmx:org.sdmx.infomodel.base.AgencyScheme=ECB:AGENCIES(1.0)": { + "id": "AGENCIES", + "urn": "urn:sdmx:org.sdmx.infomodel.base.AgencyScheme=ECB:AGENCIES(1.0)", + "name": "Agencies", + "items": [ + { + "id": "DISS", + "urn": "urn:sdmx:org.sdmx.infomodel.base.Agency=ECB.DISS", + "name": "ECB Dissemination" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.base.AgencyScheme=SDMX:AGENCIES(1.0)": { + "id": "AGENCIES", + "urn": "urn:sdmx:org.sdmx.infomodel.base.AgencyScheme=SDMX:AGENCIES(1.0)", + "name": "SDMX Agency Scheme", + "items": [ + { + "id": "SDMX", + "urn": "urn:sdmx:org.sdmx.infomodel.base.Agency=SDMX", + "name": "SDMX" + }, + { + "id": "ECB", + "urn": "urn:sdmx:org.sdmx.infomodel.base.Agency=ECB", + "name": "European Central Bank" + }, + { + "id": "EUROSTAT", + "urn": "urn:sdmx:org.sdmx.infomodel.base.Agency=EUROSTAT", + "name": "Eurostat" + }, + { + "id": "ESTAT", + "urn": "urn:sdmx:org.sdmx.infomodel.base.Agency=ESTAT", + "name": "Eurostat" + }, + { + "id": "IMF", + "urn": "urn:sdmx:org.sdmx.infomodel.base.Agency=IMF", + "name": "International Monetary Fund" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.categoryscheme.Categorisation=ECB.DISS:BSI_PUB_01(1.0)": { + "id": "BSI_PUB_01", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Categorisation=ECB.DISS:BSI_PUB_01(1.0)", + "name": "Categorise: Balance Sheet Items - Published series to Monetary operations", + "source": { + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:BSI_PUB(1.0)" + }, + "target": { + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=ECB.DISS:MOBILE_NAVI_PUB(1.0).01" + } + }, + "urn:sdmx:org.sdmx.infomodel.categoryscheme.Categorisation=ECB.DISS:BSI_PUB_03(1.0)": { + "id": "BSI_PUB_03", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Categorisation=ECB.DISS:BSI_PUB_03(1.0)", + "name": "Categorise: Balance Sheet Items - Published series to Monetary and financial statistics", + "source": { + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:BSI_PUB(1.0)" + }, + "target": { + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=ECB.DISS:MOBILE_NAVI_PUB(1.0).03" + } + }, + "urn:sdmx:org.sdmx.infomodel.categoryscheme.Categorisation=ECB.DISS:BSI_PUB_08(1.0)": { + "id": "BSI_PUB_08", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Categorisation=ECB.DISS:BSI_PUB_08(1.0)", + "name": "Categorise: Balance Sheet Items - Published series to Payments and securities trading, clearing, settlement", + "source": { + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:BSI_PUB(1.0)" + }, + "target": { + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=ECB.DISS:MOBILE_NAVI_PUB(1.0).08" + } + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_ADJUSTMENT(1.0)": { + "id": "CL_ADJUSTMENT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_ADJUSTMENT(1.0)", + "name": "Adjustment indicator code list", + "items": [ + { + "id": "C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ADJUSTMENT(1.0).C", + "name": "Trend-cycle data, working day adjusted, not seasonally adjusted" + }, + { + "id": "K", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ADJUSTMENT(1.0).K", + "name": "Calendar factors" + }, + { + "id": "N", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ADJUSTMENT(1.0).N", + "name": "Neither seasonally nor working day adjusted" + }, + { + "id": "S", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ADJUSTMENT(1.0).S", + "name": "Seasonally adjusted, not working day adjusted" + }, + { + "id": "T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ADJUSTMENT(1.0).T", + "name": "Trend" + }, + { + "id": "W", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ADJUSTMENT(1.0).W", + "name": "Working day adjusted, not seasonally adjusted" + }, + { + "id": "X", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ADJUSTMENT(1.0).X", + "name": "Seasonal factors" + }, + { + "id": "Y", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ADJUSTMENT(1.0).Y", + "name": "Working day and seasonally adjusted" + }, + { + "id": "Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ADJUSTMENT(1.0).Z", + "name": "Combined seasonal and calendar factors" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_AREA_EE(1.0)": { + "id": "CL_AREA_EE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_AREA_EE(1.0)", + "name": "Area code list", + "items": [ + { + "id": "1A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1A", + "name": "International organisations" + }, + { + "id": "1B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1B", + "name": "UN organisations" + }, + { + "id": "1C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1C", + "name": "International Monetary Fund (IMF)" + }, + { + "id": "1D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1D", + "name": "World Trade Organisation" + }, + { + "id": "1E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1E", + "name": "International Bank for Reconstruction and Development" + }, + { + "id": "1F", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1F", + "name": "International Development Association" + }, + { + "id": "1G", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1G", + "name": "Other UN Organisations (includes 1H, 1J-1T)" + }, + { + "id": "1H", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1H", + "name": "UNESCO (United Nations Educational, Scientific and Cultural Organisation)" + }, + { + "id": "1J", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1J", + "name": "FAO (Food and Agriculture Organisation)" + }, + { + "id": "1K", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1K", + "name": "WHO (World Health Organisation)" + }, + { + "id": "1L", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1L", + "name": "IFAD (International Fund for Agricultural Development)" + }, + { + "id": "1M", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1M", + "name": "IFC (International Finance Corporation)" + }, + { + "id": "1N", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1N", + "name": "MIGA (Multilateral Investment Guarantee Agency)" + }, + { + "id": "1O", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1O", + "name": "UNICEF (United Nations Children Fund)" + }, + { + "id": "1P", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1P", + "name": "UNHCR (United Nations High Commissioner for Refugees)" + }, + { + "id": "1Q", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1Q", + "name": "UNRWA (United Nations Relief and Works Agency for Palestine)" + }, + { + "id": "1R", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1R", + "name": "IAEA (International Atomic Energy Agency)" + }, + { + "id": "1S", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1S", + "name": "ILO (International Labour Organisation)" + }, + { + "id": "1T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1T", + "name": "ITU (International Telecommunication Union)" + }, + { + "id": "1W", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1W", + "name": "World Bank" + }, + { + "id": "1Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).1Z", + "name": "Rest of UN Organisations n.i.e." + }, + { + "id": "4A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4A", + "name": "European Community Institutions, Organs and Organisms" + }, + { + "id": "4B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4B", + "name": "EMS (European Monetary System)" + }, + { + "id": "4C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4C", + "name": "European Investment Bank" + }, + { + "id": "4D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4D", + "name": "European Commission" + }, + { + "id": "4E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4E", + "name": "European Development Fund" + }, + { + "id": "4F", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4F", + "name": "European Central Bank (ECB)" + }, + { + "id": "4G", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4G", + "name": "EIF (European Investment Fund)" + }, + { + "id": "4H", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4H", + "name": "European Community of Steel and Coal" + }, + { + "id": "4I", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4I", + "name": "Neighbourhood Investment Facility" + }, + { + "id": "4J", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4J", + "name": "Other EC Institutions, Organs and Organisms covered by General budget" + }, + { + "id": "4K", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4K", + "name": "European Parliament" + }, + { + "id": "4L", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4L", + "name": "Council of the European Union" + }, + { + "id": "4M", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4M", + "name": "Court of Justice" + }, + { + "id": "4N", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4N", + "name": "Court of Auditors" + }, + { + "id": "4O", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4O", + "name": "European Council" + }, + { + "id": "4P", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4P", + "name": "Economic and Social Committee" + }, + { + "id": "4Q", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4Q", + "name": "Committee of Regions" + }, + { + "id": "4R", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4R", + "name": "EU-Africa Infrastructure Trust Fund" + }, + { + "id": "4S", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4S", + "name": "European Stability Mechanism (ESM)" + }, + { + "id": "4T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4T", + "name": "Joint Committee of the European Supervisory Authorities (ESAs)" + }, + { + "id": "4V", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4V", + "name": "FEMIP (Facility for Euro-Mediterranean Investment and Partnership)" + }, + { + "id": "4X", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4X", + "name": "All the European Union Institutions not financed via the EU budget" + }, + { + "id": "4Y", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4Y", + "name": "All EU Institutions (i.e. European Community Institutions, Organs and Organisms, the ECB and ESM)" + }, + { + "id": "4Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).4Z", + "name": "Other European Community Institutions, Organs and Organisms" + }, + { + "id": "5A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5A", + "name": "Organisation for Economic Cooperation and Development (OECD)" + }, + { + "id": "5B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5B", + "name": "Bank for International Settlements (BIS)" + }, + { + "id": "5C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5C", + "name": "Inter-American Development Bank" + }, + { + "id": "5D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5D", + "name": "African Development Bank" + }, + { + "id": "5E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5E", + "name": "Asian Development Bank" + }, + { + "id": "5F", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5F", + "name": "European Bank for Reconstruction and Development" + }, + { + "id": "5G", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5G", + "name": "IIC (Inter-American Investment Corporation)" + }, + { + "id": "5H", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5H", + "name": "NIB (Nordic Investment Bank)" + }, + { + "id": "5I", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5I", + "name": "Eastern Caribbean Central Bank (ECCB)" + }, + { + "id": "5J", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5J", + "name": "IBEC (International Bank for Economic Co-operation)" + }, + { + "id": "5K", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5K", + "name": "IIB (International Investment Bank)" + }, + { + "id": "5L", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5L", + "name": "CDB (Caribbean Development Bank)" + }, + { + "id": "5M", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5M", + "name": "AMF (Arab Monetary Fund)" + }, + { + "id": "5N", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5N", + "name": "BADEA (Banque arabe pour le developpement economique en Afrique)" + }, + { + "id": "5O", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5O", + "name": "Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO)" + }, + { + "id": "5P", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5P", + "name": "CASDB (Central African States Development Bank)" + }, + { + "id": "5Q", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5Q", + "name": "African Development Fund" + }, + { + "id": "5R", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5R", + "name": "Asian Development Fund" + }, + { + "id": "5S", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5S", + "name": "Fonds special unifie de developpement" + }, + { + "id": "5T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5T", + "name": "CABEI (Central American Bank for Economic Integration)" + }, + { + "id": "5U", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5U", + "name": "ADC (Andean Development Corporation)" + }, + { + "id": "5V", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5V", + "name": "Other International Organisations (financial institutions)" + }, + { + "id": "5W", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5W", + "name": "Banque des Etats de l`Afrique Centrale (BEAC)" + }, + { + "id": "5X", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5X", + "name": "Communaute economique et Monetaire de l`Afrique Centrale (CEMAC)" + }, + { + "id": "5Y", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5Y", + "name": "Eastern Caribbean Currency Union (ECCU)" + }, + { + "id": "5Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).5Z", + "name": "Other International Financial Organisations n.i.e." + }, + { + "id": "6A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6A", + "name": "Other International Organisations (non-financial institutions)" + }, + { + "id": "6B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6B", + "name": "NATO (North Atlantic Treaty Organisation)" + }, + { + "id": "6C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6C", + "name": "Council of Europe" + }, + { + "id": "6D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6D", + "name": "ICRC (International Committee of the Red Cross)" + }, + { + "id": "6E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6E", + "name": "ESA (European Space Agency)" + }, + { + "id": "6F", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6F", + "name": "EPO (European Patent Office)" + }, + { + "id": "6G", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6G", + "name": "EUROCONTROL (European Organisation for the Safety of Air Navigation)" + }, + { + "id": "6H", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6H", + "name": "EUTELSAT (European Telecommunications Satellite Organisation)" + }, + { + "id": "6I", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6I", + "name": "West African Economic and Monetary Union (WAEMU)" + }, + { + "id": "6J", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6J", + "name": "INTELSAT (International Telecommunications Satellite Organisation)" + }, + { + "id": "6K", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6K", + "name": "EBU/UER (European Broadcasting Union/Union europeenne de radio-television)" + }, + { + "id": "6L", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6L", + "name": "EUMETSAT (European Organisation for the Exploitation of Meteorological Satellites)" + }, + { + "id": "6M", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6M", + "name": "ESO (European Southern Observatory)" + }, + { + "id": "6N", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6N", + "name": "ECMWF (European Centre for Medium-Range Weather Forecasts)" + }, + { + "id": "6O", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6O", + "name": "EMBL (European Molecular Biology Laboratory)" + }, + { + "id": "6P", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6P", + "name": "CERN (European Organisation for Nuclear Research)" + }, + { + "id": "6Q", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6Q", + "name": "IOM (International Organisation for Migration)" + }, + { + "id": "6R", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6R", + "name": "Islamic Development Bank (IDB)" + }, + { + "id": "6S", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6S", + "name": "Eurasian Development Bank (EDB)" + }, + { + "id": "6T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6T", + "name": "Paris Club Creditor Institutions" + }, + { + "id": "6U", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6U", + "name": "Council of Europe Development Bank (CEB)" + }, + { + "id": "6Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).6Z", + "name": "Other International Non-Financial Organisations n.i.e." + }, + { + "id": "7Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).7Z", + "name": "International Organisations excluding Eur.Community Institutions (4A)" + }, + { + "id": "8A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).8A", + "name": "International Union of Credit and Investment Insurers" + }, + { + "id": "A0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).A0", + "name": "Other EEA countries (all countries excluding the reference area)" + }, + { + "id": "A1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).A1", + "name": "World (all entities)" + }, + { + "id": "A2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).A2", + "name": "EUR12 (Intra Eur12)" + }, + { + "id": "A3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).A3", + "name": "Belgo-Luxembourg Economic Union" + }, + { + "id": "A4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).A4", + "name": "Extra EUR12" + }, + { + "id": "A5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).A5", + "name": "European Free Trade Association" + }, + { + "id": "A6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).A6", + "name": "European Economic Area" + }, + { + "id": "A7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).A7", + "name": "Extra EEA" + }, + { + "id": "A8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).A8", + "name": "OECD countries" + }, + { + "id": "A9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).A9", + "name": "Countries from Central and Eastern Europe" + }, + { + "id": "AD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AD", + "name": "Andorra" + }, + { + "id": "AE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AE", + "name": "United Arab Emirates" + }, + { + "id": "AF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AF", + "name": "Afghanistan" + }, + { + "id": "AG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AG", + "name": "Antigua and Barbuda" + }, + { + "id": "AI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AI", + "name": "Anguilla" + }, + { + "id": "AL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AL", + "name": "Albania" + }, + { + "id": "AM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AM", + "name": "Armenia" + }, + { + "id": "AN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AN", + "name": "Netherlands Antilles" + }, + { + "id": "AO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AO", + "name": "Angola" + }, + { + "id": "AQ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AQ", + "name": "Antarctica" + }, + { + "id": "AR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AR", + "name": "Argentina" + }, + { + "id": "AS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AS", + "name": "American Samoa" + }, + { + "id": "AT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AT", + "name": "Austria" + }, + { + "id": "AU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AU", + "name": "Australia" + }, + { + "id": "AW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AW", + "name": "Aruba" + }, + { + "id": "AX", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AX", + "name": "Aland Islands" + }, + { + "id": "AZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).AZ", + "name": "Azerbaijan" + }, + { + "id": "B0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).B0", + "name": "Emerging and developing economies" + }, + { + "id": "B1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).B1", + "name": "North American Free Trade Association" + }, + { + "id": "B2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).B2", + "name": "Latin America" + }, + { + "id": "B3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).B3", + "name": "Countries for the Association of South-East Asian Nations" + }, + { + "id": "B4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).B4", + "name": "Organization of Petroleum Exporting Countries" + }, + { + "id": "B5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).B5", + "name": "African, Caribbean and Pacific countries (Lome convention)" + }, + { + "id": "B6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).B6", + "name": "African ACP countries" + }, + { + "id": "B7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).B7", + "name": "Caribbean ACP countries" + }, + { + "id": "B8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).B8", + "name": "Pacific ACP countries" + }, + { + "id": "B9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).B9", + "name": "Core Newly Industrializing Countries" + }, + { + "id": "BA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BA", + "name": "Bosnia and Herzegovina" + }, + { + "id": "BB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BB", + "name": "Barbados" + }, + { + "id": "BD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BD", + "name": "Bangladesh" + }, + { + "id": "BE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BE", + "name": "Belgium" + }, + { + "id": "BF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BF", + "name": "Burkina Faso" + }, + { + "id": "BG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BG", + "name": "Bulgaria" + }, + { + "id": "BH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BH", + "name": "Bahrain" + }, + { + "id": "BI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BI", + "name": "Burundi" + }, + { + "id": "BJ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BJ", + "name": "Benin" + }, + { + "id": "BL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BL", + "name": "Saint Barthelemy" + }, + { + "id": "BM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BM", + "name": "Bermuda" + }, + { + "id": "BN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BN", + "name": "Brunei Darussalam" + }, + { + "id": "BO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BO", + "name": "Bolivia" + }, + { + "id": "BQ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BQ", + "name": "Bonaire, Saint Eustatius and Saba" + }, + { + "id": "BR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BR", + "name": "Brazil" + }, + { + "id": "BS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BS", + "name": "Bahamas" + }, + { + "id": "BT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BT", + "name": "Bhutan" + }, + { + "id": "BV", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BV", + "name": "Bouvet Island" + }, + { + "id": "BW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BW", + "name": "Botswana" + }, + { + "id": "BY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BY", + "name": "Belarus" + }, + { + "id": "BZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).BZ", + "name": "Belize" + }, + { + "id": "C1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).C1", + "name": "Asian NICs of the second wave of industrialization" + }, + { + "id": "C2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).C2", + "name": "Latin American NICs of the second wave of industrialization" + }, + { + "id": "C3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).C3", + "name": "Mediterranean Basin countries" + }, + { + "id": "C4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).C4", + "name": "Offshore financial centers" + }, + { + "id": "C5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).C5", + "name": "French Franc zone" + }, + { + "id": "C6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).C6", + "name": "Community of Independant States" + }, + { + "id": "C7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).C7", + "name": "Maghreb countries" + }, + { + "id": "C8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).C8", + "name": "Mashrek Countries" + }, + { + "id": "C9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).C9", + "name": "Mercado comun de los paises del cono sur" + }, + { + "id": "CA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CA", + "name": "Canada" + }, + { + "id": "CC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CC", + "name": "Cocos (Keeling) Islands" + }, + { + "id": "CD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CD", + "name": "Congo, the Democratic Republic of the" + }, + { + "id": "CF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CF", + "name": "Central African Republic" + }, + { + "id": "CG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CG", + "name": "Congo" + }, + { + "id": "CH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CH", + "name": "Switzerland" + }, + { + "id": "CI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CI", + "name": "Cote d`Ivoire" + }, + { + "id": "CK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CK", + "name": "Cook Islands" + }, + { + "id": "CL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CL", + "name": "Chile" + }, + { + "id": "CM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CM", + "name": "Cameroon" + }, + { + "id": "CN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CN", + "name": "China" + }, + { + "id": "CO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CO", + "name": "Colombia" + }, + { + "id": "CR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CR", + "name": "Costa Rica" + }, + { + "id": "CS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CS", + "name": "Serbia and Montenegro" + }, + { + "id": "CU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CU", + "name": "Cuba" + }, + { + "id": "CV", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CV", + "name": "Cape Verde" + }, + { + "id": "CW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CW", + "name": "Curacao" + }, + { + "id": "CX", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CX", + "name": "Christmas Island" + }, + { + "id": "CY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CY", + "name": "Cyprus" + }, + { + "id": "CZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).CZ", + "name": "Czech Republic" + }, + { + "id": "D0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).D0", + "name": "EU (changing composition)" + }, + { + "id": "D1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).D1", + "name": "Asia-Pacific Economic Co-operation" + }, + { + "id": "D2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).D2", + "name": "EU 15 (fixed composition)" + }, + { + "id": "D3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).D3", + "name": "EU 25 (fixed composition)" + }, + { + "id": "D4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).D4", + "name": "Extra-EU 15 (fixed composition)" + }, + { + "id": "D5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).D5", + "name": "Extra-EU 25 (fixed composition)" + }, + { + "id": "D6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).D6", + "name": "Candidate Countries (CCs)" + }, + { + "id": "D7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).D7", + "name": "Mediterranean countries in the Euro-Mediterranean Partnership" + }, + { + "id": "D8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).D8", + "name": "New EU member states 2004 (CY,CZ,EE,HU,LV,LT,MT,PL,SK,SI)" + }, + { + "id": "D9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).D9", + "name": "Extra-EU (changing composition)" + }, + { + "id": "DE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).DE", + "name": "Germany" + }, + { + "id": "DJ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).DJ", + "name": "Djibouti" + }, + { + "id": "DK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).DK", + "name": "Denmark" + }, + { + "id": "DM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).DM", + "name": "Dominica" + }, + { + "id": "DO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).DO", + "name": "Dominican Republic" + }, + { + "id": "DZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).DZ", + "name": "Algeria" + }, + { + "id": "E0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).E0", + "name": "Other North American countries" + }, + { + "id": "E1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).E1", + "name": "Europe" + }, + { + "id": "E2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).E2", + "name": "Other European countries (not EU nor EFTA)" + }, + { + "id": "E3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).E3", + "name": "Baltic countries" + }, + { + "id": "E4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).E4", + "name": "Africa" + }, + { + "id": "E5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).E5", + "name": "North Africa countries" + }, + { + "id": "E6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).E6", + "name": "Central and South Africa countries" + }, + { + "id": "E7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).E7", + "name": "America" + }, + { + "id": "E8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).E8", + "name": "North American countries" + }, + { + "id": "E9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).E9", + "name": "Central American countries" + }, + { + "id": "EC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).EC", + "name": "Ecuador" + }, + { + "id": "EE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).EE", + "name": "Estonia" + }, + { + "id": "EG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).EG", + "name": "Egypt" + }, + { + "id": "EH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).EH", + "name": "Western Sahara" + }, + { + "id": "ER", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).ER", + "name": "Eritrea" + }, + { + "id": "ES", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).ES", + "name": "Spain" + }, + { + "id": "ET", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).ET", + "name": "Ethiopia" + }, + { + "id": "F0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).F0", + "name": "Africa and Middle East countries" + }, + { + "id": "F1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).F1", + "name": "South American countries" + }, + { + "id": "F2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).F2", + "name": "Asia" + }, + { + "id": "F3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).F3", + "name": "Near and Middle East countries" + }, + { + "id": "F4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).F4", + "name": "Gulf Arabian Countries" + }, + { + "id": "F5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).F5", + "name": "Other Near and Middle East countries" + }, + { + "id": "F6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).F6", + "name": "Other Asian countries" + }, + { + "id": "F7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).F7", + "name": "Australia, Oceania and other territories" + }, + { + "id": "F8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).F8", + "name": "Australian Oceania" + }, + { + "id": "F9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).F9", + "name": "American Oceania" + }, + { + "id": "FI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).FI", + "name": "Finland" + }, + { + "id": "FJ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).FJ", + "name": "Fiji" + }, + { + "id": "FK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).FK", + "name": "Falkland Islands (Malvinas)" + }, + { + "id": "FM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).FM", + "name": "Micronesia, Federated States of" + }, + { + "id": "FO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).FO", + "name": "Faroe Islands" + }, + { + "id": "FR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).FR", + "name": "France" + }, + { + "id": "G0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).G0", + "name": "Other European countries" + }, + { + "id": "G1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).G1", + "name": "New Zealand Oceania" + }, + { + "id": "G2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).G2", + "name": "Polar regions" + }, + { + "id": "G3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).G3", + "name": "G20 (Argentina,Australia,Brazil,Canada,China,European Union,France,Germany,India,Indonesia,Italy,Japan,Mexico,Russia,Saudi Arabia,South Africa,South Korea,Turkey,United Kingdom,United States)" + }, + { + "id": "GA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GA", + "name": "Gabon" + }, + { + "id": "GB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GB", + "name": "United Kingdom" + }, + { + "id": "GD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GD", + "name": "Grenada" + }, + { + "id": "GE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GE", + "name": "Georgia" + }, + { + "id": "GF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GF", + "name": "French Guiana" + }, + { + "id": "GG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GG", + "name": "Guernsey" + }, + { + "id": "GH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GH", + "name": "Ghana" + }, + { + "id": "GI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GI", + "name": "Gibraltar" + }, + { + "id": "GL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GL", + "name": "Greenland" + }, + { + "id": "GM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GM", + "name": "Gambia" + }, + { + "id": "GN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GN", + "name": "Guinea" + }, + { + "id": "GP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GP", + "name": "Guadeloupe" + }, + { + "id": "GQ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GQ", + "name": "Equatorial Guinea" + }, + { + "id": "GR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GR", + "name": "Greece" + }, + { + "id": "GS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GS", + "name": "South Georgia and the South Sandwich Islands" + }, + { + "id": "GT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GT", + "name": "Guatemala" + }, + { + "id": "GU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GU", + "name": "Guam" + }, + { + "id": "GW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GW", + "name": "Guinea-Bissau" + }, + { + "id": "GY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).GY", + "name": "Guyana" + }, + { + "id": "H0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).H0", + "name": "EEA except the euro area and reference area" + }, + { + "id": "HK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).HK", + "name": "Hong Kong" + }, + { + "id": "HM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).HM", + "name": "Heard Island and McDonald Islands" + }, + { + "id": "HN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).HN", + "name": "Honduras" + }, + { + "id": "HR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).HR", + "name": "Croatia" + }, + { + "id": "HT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).HT", + "name": "Haiti" + }, + { + "id": "HU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).HU", + "name": "Hungary" + }, + { + "id": "I1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).I1", + "name": "Euro area 11 (fixed composition)" + }, + { + "id": "I2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).I2", + "name": "Euro area 12 (fixed composition)" + }, + { + "id": "I3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).I3", + "name": "Euro area 13 (fixed composition)" + }, + { + "id": "I4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).I4", + "name": "Euro area 15 (fixed composition)" + }, + { + "id": "I5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).I5", + "name": "Euro area 16 (fixed composition)" + }, + { + "id": "I6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).I6", + "name": "Euro area 17 (fixed composition)" + }, + { + "id": "I7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).I7", + "name": "Euro area 18 (fixed composition)" + }, + { + "id": "I8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).I8", + "name": "Euro area 19 (fixed composition)" + }, + { + "id": "ID", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).ID", + "name": "Indonesia" + }, + { + "id": "IE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).IE", + "name": "Ireland" + }, + { + "id": "IL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).IL", + "name": "Israel" + }, + { + "id": "IM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).IM", + "name": "Isle of Man" + }, + { + "id": "IN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).IN", + "name": "India" + }, + { + "id": "IO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).IO", + "name": "British Indian Ocean territory" + }, + { + "id": "IQ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).IQ", + "name": "Iraq" + }, + { + "id": "IR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).IR", + "name": "Iran, Islamic Republic of" + }, + { + "id": "IS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).IS", + "name": "Iceland" + }, + { + "id": "IT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).IT", + "name": "Italy" + }, + { + "id": "J1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).J1", + "name": "Extra-Euro area 11 (fixed composition)" + }, + { + "id": "J2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).J2", + "name": "Extra-Euro area 12 (fixed composition)" + }, + { + "id": "J3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).J3", + "name": "Extra-Euro area 13 (fixed composition)" + }, + { + "id": "J4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).J4", + "name": "Extra-Euro area 15 (fixed composition)" + }, + { + "id": "J5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).J5", + "name": "Extra-Euro area 16 (fixed composition)" + }, + { + "id": "J6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).J6", + "name": "Extra-Euro area 17 (fixed composition)" + }, + { + "id": "J7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).J7", + "name": "Extra-Euro area 18 (fixed composition)" + }, + { + "id": "J8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).J8", + "name": "Extra-Euro area 19 (fixed composition)" + }, + { + "id": "JE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).JE", + "name": "Jersey" + }, + { + "id": "JM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).JM", + "name": "Jamaica" + }, + { + "id": "JO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).JO", + "name": "Jordan" + }, + { + "id": "JP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).JP", + "name": "Japan" + }, + { + "id": "K1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).K1", + "name": "EU member states not belonging to Euro area 11 (fixed composition)" + }, + { + "id": "K2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).K2", + "name": "EU member states not belonging to Euro area 12 (fixed composition)" + }, + { + "id": "K3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).K3", + "name": "EU member states not belonging to Euro area 13 (fixed composition)" + }, + { + "id": "K4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).K4", + "name": "EU member states not belonging to Euro area 15 (fixed composition)" + }, + { + "id": "K5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).K5", + "name": "EU member states not belonging to Euro area 16 (fixed composition)" + }, + { + "id": "K6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).K6", + "name": "EU member states not belonging to Euro area 17 (fixed composition)" + }, + { + "id": "K7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).K7", + "name": "EU28 Member States not belonging to Euro Area 17 (fixed composition)" + }, + { + "id": "K8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).K8", + "name": "EU28 member states not belonging to Euro area 18 (fixed composition)" + }, + { + "id": "K9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).K9", + "name": "EU28 member states not belonging to Euro area 19 (fixed composition)" + }, + { + "id": "KE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).KE", + "name": "Kenya" + }, + { + "id": "KG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).KG", + "name": "Kyrgyzstan" + }, + { + "id": "KH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).KH", + "name": "Cambodia" + }, + { + "id": "KI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).KI", + "name": "Kiribati" + }, + { + "id": "KM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).KM", + "name": "Comoros" + }, + { + "id": "KN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).KN", + "name": "Saint Kitts and Nevis" + }, + { + "id": "KP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).KP", + "name": "Korea, Democratic People`s Republic of" + }, + { + "id": "KR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).KR", + "name": "Korea, Republic of" + }, + { + "id": "KW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).KW", + "name": "Kuwait" + }, + { + "id": "KY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).KY", + "name": "Cayman Islands" + }, + { + "id": "KZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).KZ", + "name": "Kazakhstan" + }, + { + "id": "L0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).L0", + "name": "Other EU member states (all countries except the reference area)" + }, + { + "id": "L1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).L1", + "name": "Other Euro area 11 member states (fixed composition - all countries except the reference area)" + }, + { + "id": "L2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).L2", + "name": "Other Euro area 12 member states (fixed composition - all countries except the reference area)" + }, + { + "id": "L3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).L3", + "name": "Other Euro area 13 member states (fixed composition - all countries except the reference area)" + }, + { + "id": "L4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).L4", + "name": "Other Euro area 15 member states (fixed composition - all countries except the reference area)" + }, + { + "id": "L5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).L5", + "name": "Other Euro area 16 member states (fixed composition - all countries except the reference area)" + }, + { + "id": "L6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).L6", + "name": "Other Euro area 17 member states (fixed composition - all countries except the reference area)" + }, + { + "id": "L7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).L7", + "name": "Other Euro area 18 member states (fixed composition - all countries except the reference area)" + }, + { + "id": "L8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).L8", + "name": "Other Euro area 19 member states (fixed composition - all countries except the reference area)" + }, + { + "id": "LA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).LA", + "name": "Lao People`s Democratic Republic" + }, + { + "id": "LB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).LB", + "name": "Lebanon" + }, + { + "id": "LC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).LC", + "name": "Saint Lucia" + }, + { + "id": "LI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).LI", + "name": "Liechtenstein" + }, + { + "id": "LK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).LK", + "name": "Sri Lanka" + }, + { + "id": "LR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).LR", + "name": "Liberia" + }, + { + "id": "LS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).LS", + "name": "Lesotho" + }, + { + "id": "LT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).LT", + "name": "Lithuania" + }, + { + "id": "LU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).LU", + "name": "Luxembourg" + }, + { + "id": "LV", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).LV", + "name": "Latvia" + }, + { + "id": "LY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).LY", + "name": "Libya" + }, + { + "id": "M0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).M0", + "name": "All areas other than EU 15 and reference/home area" + }, + { + "id": "M1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).M1", + "name": "All areas other than Euro area 11 (fixed composition) and reference/home area" + }, + { + "id": "M2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).M2", + "name": "All areas other than Euro area 12 (fixed composition) and reference/home area" + }, + { + "id": "M3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).M3", + "name": "All areas other than Euro area 13 (fixed composition) and reference/home area" + }, + { + "id": "M4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).M4", + "name": "All areas other than Euro area 15 (fixed composition) and reference/home area" + }, + { + "id": "M5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).M5", + "name": "All areas other than Euro area 16 (fixed composition) and reference/home area" + }, + { + "id": "M6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).M6", + "name": "All areas other than Euro area 17 (fixed composition) and reference/home area" + }, + { + "id": "M7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).M7", + "name": "All areas other than Euro area 18 (fixed composition) and reference/home area" + }, + { + "id": "M8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).M8", + "name": "All areas other than Euro area 19 (fixed composition) and reference/home area" + }, + { + "id": "MA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MA", + "name": "Morocco" + }, + { + "id": "MC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MC", + "name": "Monaco" + }, + { + "id": "MD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MD", + "name": "Moldova, Republic of" + }, + { + "id": "ME", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).ME", + "name": "Montenegro" + }, + { + "id": "MF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MF", + "name": "Saint Martin (French part)" + }, + { + "id": "MG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MG", + "name": "Madagascar" + }, + { + "id": "MH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MH", + "name": "Marshall islands" + }, + { + "id": "MK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MK", + "name": "Macedonia, The Former Yugoslav Republic of" + }, + { + "id": "ML", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).ML", + "name": "Mali" + }, + { + "id": "MM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MM", + "name": "Myanmar" + }, + { + "id": "MN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MN", + "name": "Mongolia" + }, + { + "id": "MO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MO", + "name": "Macao" + }, + { + "id": "MP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MP", + "name": "Northern Mariana Islands" + }, + { + "id": "MQ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MQ", + "name": "Martinique" + }, + { + "id": "MR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MR", + "name": "Mauritania" + }, + { + "id": "MS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MS", + "name": "Montserrat" + }, + { + "id": "MT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MT", + "name": "Malta" + }, + { + "id": "MU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MU", + "name": "Mauritius" + }, + { + "id": "MV", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MV", + "name": "Maldives" + }, + { + "id": "MW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MW", + "name": "Malawi" + }, + { + "id": "MX", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MX", + "name": "Mexico" + }, + { + "id": "MY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MY", + "name": "Malaysia" + }, + { + "id": "MZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).MZ", + "name": "Mozambique" + }, + { + "id": "N0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).N0", + "name": "Intra EU Extra Euro Area not allocated (changing composition)" + }, + { + "id": "N1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).N1", + "name": "Intra-Euro area 11 (fixed composition) not allocated" + }, + { + "id": "N2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).N2", + "name": "Intra-Euro area 12 (fixed composition) not allocated" + }, + { + "id": "N3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).N3", + "name": "Intra-Euro area 13 (fixed composition) not allocated" + }, + { + "id": "N4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).N4", + "name": "Intra-Euro area 15 (fixed composition) not allocated" + }, + { + "id": "N5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).N5", + "name": "Intra-Euro area 16 (fixed composition) not allocated" + }, + { + "id": "N6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).N6", + "name": "Intra-Euro area 17 (fixed composition) not allocated" + }, + { + "id": "NA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).NA", + "name": "Namibia" + }, + { + "id": "NC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).NC", + "name": "New Caledonia" + }, + { + "id": "NE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).NE", + "name": "Niger" + }, + { + "id": "NF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).NF", + "name": "Norfolk Island" + }, + { + "id": "NG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).NG", + "name": "Nigeria" + }, + { + "id": "NI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).NI", + "name": "Nicaragua" + }, + { + "id": "NL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).NL", + "name": "Netherlands" + }, + { + "id": "NO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).NO", + "name": "Norway" + }, + { + "id": "NP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).NP", + "name": "Nepal" + }, + { + "id": "NR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).NR", + "name": "Nauru" + }, + { + "id": "NU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).NU", + "name": "Niue" + }, + { + "id": "NZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).NZ", + "name": "New Zealand" + }, + { + "id": "O1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).O1", + "name": "Extra-Euro area 11 (fixed composition) not allocated" + }, + { + "id": "O2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).O2", + "name": "Extra-Euro area 12 (fixed composition) not allocated" + }, + { + "id": "O3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).O3", + "name": "Extra-Euro area 13 (fixed composition) not allocated" + }, + { + "id": "O4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).O4", + "name": "Extra-Euro area 15 (fixed composition) not allocated" + }, + { + "id": "O5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).O5", + "name": "Extra-Euro area 16 (fixed composition) not allocated" + }, + { + "id": "O6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).O6", + "name": "Extra-Euro area 17 (fixed composition) not allocated" + }, + { + "id": "OM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).OM", + "name": "Oman" + }, + { + "id": "P1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).P1", + "name": "World not allocated (Euro area 11 - fixed composition)" + }, + { + "id": "P2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).P2", + "name": "World not allocated (Euro area 12 - fixed composition)" + }, + { + "id": "P3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).P3", + "name": "World not allocated (Euro area 13 - fixed composition)" + }, + { + "id": "P4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).P4", + "name": "World not allocated (Euro area 15 - fixed composition)" + }, + { + "id": "P5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).P5", + "name": "World not allocated (Euro area 16 - fixed composition)" + }, + { + "id": "P6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).P6", + "name": "World not allocated (Euro area 17 - fixed composition)" + }, + { + "id": "PA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).PA", + "name": "Panama" + }, + { + "id": "PE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).PE", + "name": "Peru" + }, + { + "id": "PF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).PF", + "name": "French Polynesia" + }, + { + "id": "PG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).PG", + "name": "Papua New Guinea" + }, + { + "id": "PH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).PH", + "name": "Philippines" + }, + { + "id": "PK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).PK", + "name": "Pakistan" + }, + { + "id": "PL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).PL", + "name": "Poland" + }, + { + "id": "PM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).PM", + "name": "Saint Pierre and Miquelon" + }, + { + "id": "PN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).PN", + "name": "Pitcairn" + }, + { + "id": "PR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).PR", + "name": "Puerto Rico" + }, + { + "id": "PS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).PS", + "name": "Palestinian Territory, Occupied" + }, + { + "id": "PT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).PT", + "name": "Portugal" + }, + { + "id": "PW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).PW", + "name": "Palau" + }, + { + "id": "PY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).PY", + "name": "Paraguay" + }, + { + "id": "Q6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).Q6", + "name": "EU 28 member states, outside the euro area 18, excluding DK, SE, GB (CZ,HU,LT,PL,RO,BG)" + }, + { + "id": "Q7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).Q7", + "name": "EU 28 member states, outside the euro area 19, excluding DK, SE, GB (CZ,HR,HU,PL,RO,BG)" + }, + { + "id": "QA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).QA", + "name": "Qatar" + }, + { + "id": "R0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).R0", + "name": "Candidate countries (IS,ME,MK,RS,TR)" + }, + { + "id": "R1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).R1", + "name": "West Germany" + }, + { + "id": "R2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).R2", + "name": "East Germany" + }, + { + "id": "R6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).R6", + "name": "Candidates countries (HR, MK, TR)" + }, + { + "id": "R7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).R7", + "name": "Candidate countries (HR,IS,MK,TR)" + }, + { + "id": "R8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).R8", + "name": "New EU member states joining in 2004 and 2007 (BG,CY,CZ,EE,HU,LV,LT,MT,PL,RO,SK,SI)" + }, + { + "id": "R9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).R9", + "name": "Candidate countries (HR,IS,ME,MK,TR)" + }, + { + "id": "RE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).RE", + "name": "Reunion" + }, + { + "id": "RO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).RO", + "name": "Romania" + }, + { + "id": "RS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).RS", + "name": "Serbia" + }, + { + "id": "RU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).RU", + "name": "Russian Federation" + }, + { + "id": "RW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).RW", + "name": "Rwanda" + }, + { + "id": "S0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).S0", + "name": "Euro area (moving concept in the Real Time database context)" + }, + { + "id": "S1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).S1", + "name": "EU 15 (fixed composition) excluding LU" + }, + { + "id": "S2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).S2", + "name": "EU 12 (fixed composition) including West Germany" + }, + { + "id": "S3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).S3", + "name": "EU 27 member states, outside the euro area 13, excluding DK, SE, GB (CY,CZ,EE,HU,LV,LT,MT,PL,SK,RO,BG)" + }, + { + "id": "S4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).S4", + "name": "EU 27 member states, outside the euro area 15, excluding DK, SE, GB (CZ,EE,HU,LV,LT,PL,SK,RO,BG)" + }, + { + "id": "S5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).S5", + "name": "EU 27 member states, outside the euro area 16, excluding DK, SE, GB (CZ,EE,HU,LV,LT,PL,RO,BG)" + }, + { + "id": "S6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).S6", + "name": "EU 27 member states, outside the euro area 17, excluding DK, SE, GB (CZ,HU,LV,LT,PL,RO,BG)" + }, + { + "id": "S7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).S7", + "name": "EU 28 member states, outside the euro area 17, excluding DK, SE, GB (CZ,HU,LV,LT,PL,RO,BG,HR)" + }, + { + "id": "SA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SA", + "name": "Saudi Arabia" + }, + { + "id": "SB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SB", + "name": "Solomon Islands" + }, + { + "id": "SC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SC", + "name": "Seychelles" + }, + { + "id": "SD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SD", + "name": "Sudan" + }, + { + "id": "SE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SE", + "name": "Sweden" + }, + { + "id": "SG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SG", + "name": "Singapore" + }, + { + "id": "SH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SH", + "name": "Saint Helena" + }, + { + "id": "SI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SI", + "name": "Slovenia" + }, + { + "id": "SJ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SJ", + "name": "Svalbard and Jan Mayen" + }, + { + "id": "SK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SK", + "name": "Slovakia" + }, + { + "id": "SL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SL", + "name": "Sierra Leone" + }, + { + "id": "SM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SM", + "name": "San Marino" + }, + { + "id": "SN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SN", + "name": "Senegal" + }, + { + "id": "SO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SO", + "name": "Somalia" + }, + { + "id": "SR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SR", + "name": "Suriname" + }, + { + "id": "SS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SS", + "name": "South Sudan" + }, + { + "id": "ST", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).ST", + "name": "Sao Tome and Principe" + }, + { + "id": "SV", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SV", + "name": "El Salvador" + }, + { + "id": "SX", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SX", + "name": "Sint Maarten (Dutch part)" + }, + { + "id": "SY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SY", + "name": "Syrian Arab Republic" + }, + { + "id": "SZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).SZ", + "name": "Swaziland" + }, + { + "id": "T1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).T1", + "name": "Euro area 11 (fixed composition) excluding LU" + }, + { + "id": "T2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).T2", + "name": "Euro area countries except Germany, France, Italy and Spain" + }, + { + "id": "T3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).T3", + "name": "Euro area countries (moving composition) excluding DE and FR" + }, + { + "id": "TC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TC", + "name": "Turks and Caicos Islands" + }, + { + "id": "TD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TD", + "name": "Chad" + }, + { + "id": "TF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TF", + "name": "French Southern Territories" + }, + { + "id": "TG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TG", + "name": "Togo" + }, + { + "id": "TH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TH", + "name": "Thailand" + }, + { + "id": "TJ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TJ", + "name": "Tajikistan" + }, + { + "id": "TK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TK", + "name": "Tokelau" + }, + { + "id": "TL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TL", + "name": "Timor-Leste" + }, + { + "id": "TM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TM", + "name": "Turkmenistan" + }, + { + "id": "TN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TN", + "name": "Tunisia" + }, + { + "id": "TO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TO", + "name": "Tonga" + }, + { + "id": "TR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TR", + "name": "Turkey" + }, + { + "id": "TT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TT", + "name": "Trinidad and Tobago" + }, + { + "id": "TV", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TV", + "name": "Tuvalu" + }, + { + "id": "TW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TW", + "name": "Taiwan, Province of China" + }, + { + "id": "TZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).TZ", + "name": "Tanzania, United Republic of" + }, + { + "id": "U0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).U0", + "name": "EU excluding the Euro area and reference area" + }, + { + "id": "U2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).U2", + "name": "Euro area (changing composition)" + }, + { + "id": "U3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).U3", + "name": "EU member states not belonging to the Euro area" + }, + { + "id": "U4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).U4", + "name": "Extra Euro area" + }, + { + "id": "U5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).U5", + "name": "Other Euro area member states (all countries except the reference area)" + }, + { + "id": "U6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).U6", + "name": "Domestic (home or reference area)" + }, + { + "id": "U7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).U7", + "name": "Euro area and the reference area" + }, + { + "id": "U8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).U8", + "name": "All areas other than Euro area and ref./home area" + }, + { + "id": "U9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).U9", + "name": "All areas other than EU and ref./home area" + }, + { + "id": "UA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).UA", + "name": "Ukraine" + }, + { + "id": "UG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).UG", + "name": "Uganda" + }, + { + "id": "UM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).UM", + "name": "United States Minor outlying islands" + }, + { + "id": "US", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).US", + "name": "United States" + }, + { + "id": "UY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).UY", + "name": "Uruguay" + }, + { + "id": "UZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).UZ", + "name": "Uzbekistan" + }, + { + "id": "V1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).V1", + "name": "EU 27 (fixed composition)" + }, + { + "id": "V2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).V2", + "name": "Extra-EU 27 (fixed composition)" + }, + { + "id": "V3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).V3", + "name": "EU 28 (fixed composition)" + }, + { + "id": "V4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).V4", + "name": "Extra-EU 28 (fixed composition)" + }, + { + "id": "VA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).VA", + "name": "Holy See (Vatican City State)" + }, + { + "id": "VC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).VC", + "name": "Saint Vincent and the Grenadines" + }, + { + "id": "VE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).VE", + "name": "Venezuela, Bolivarian Republic" + }, + { + "id": "VG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).VG", + "name": "Virgin Islands, British" + }, + { + "id": "VI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).VI", + "name": "Virgin Islands, U.S." + }, + { + "id": "VN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).VN", + "name": "Viet Nam" + }, + { + "id": "VU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).VU", + "name": "Vanuatu" + }, + { + "id": "W0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).W0", + "name": "Intra-EU (changing composition) not allocated" + }, + { + "id": "W1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).W1", + "name": "Gaza and Jericho" + }, + { + "id": "W2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).W2", + "name": "Intra-Euro area not allocated" + }, + { + "id": "W4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).W4", + "name": "Extra-Euro area not allocated" + }, + { + "id": "W5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).W5", + "name": "Extra-EU 25 (fixed composition) not allocated" + }, + { + "id": "W6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).W6", + "name": "Residual for BOP and IIP step 3 ECB needs (J2-DK-GB-SE-4A-D8-CH-CA-US-JP-C4-7Z)" + }, + { + "id": "W7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).W7", + "name": "Intra-EU 25 (fixed composition) not allocated" + }, + { + "id": "W8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).W8", + "name": "Intra-EU 27 (fixed composition) not allocated" + }, + { + "id": "W9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).W9", + "name": "Extra-EU 27 (fixed composition) not allocated" + }, + { + "id": "WF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).WF", + "name": "Wallis and Futuna" + }, + { + "id": "WS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).WS", + "name": "Samoa" + }, + { + "id": "X0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).X0", + "name": "Not applicable" + }, + { + "id": "XK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).XK", + "name": "Kosovo" + }, + { + "id": "YE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).YE", + "name": "Yemen" + }, + { + "id": "YT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).YT", + "name": "Mayotte" + }, + { + "id": "YU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).YU", + "name": "Yugoslavia" + }, + { + "id": "Z0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).Z0", + "name": "World not allocated (EU 12)" + }, + { + "id": "Z1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).Z1", + "name": "World not allocated (EU 15)" + }, + { + "id": "Z2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).Z2", + "name": "Intra-EU 12 (fixed composition) not allocated" + }, + { + "id": "Z3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).Z3", + "name": "World not allocated (Euro area)" + }, + { + "id": "Z4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).Z4", + "name": "Extra-EU 12 (fixed composition) not allocated" + }, + { + "id": "Z5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).Z5", + "name": "World not allocated (geographically)" + }, + { + "id": "Z6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).Z6", + "name": "Intra-EU 15 (fixed composition) not allocated" + }, + { + "id": "Z7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).Z7", + "name": "Equally-shared control of UCIs (ultimate controlling institutional units of a foreign affiliate) of more than one EU member state" + }, + { + "id": "Z8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).Z8", + "name": "Extra-EU 15 (fixed composition) not allocated" + }, + { + "id": "Z9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).Z9", + "name": "Rest of the World" + }, + { + "id": "ZA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).ZA", + "name": "South Africa" + }, + { + "id": "ZM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).ZM", + "name": "Zambia" + }, + { + "id": "ZW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_AREA_EE(1.0).ZW", + "name": "Zimbabwe" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_BS_COUNT_SECTOR(1.0)": { + "id": "CL_BS_COUNT_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_BS_COUNT_SECTOR(1.0)", + "name": "Balance sheet counterpart sector code list", + "items": [ + { + "id": "0000", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).0000", + "name": "Unspecified counterpart sector" + }, + { + "id": "0099", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).0099", + "name": "IMF" + }, + { + "id": "00BK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).00BK", + "name": "Non-resident banks" + }, + { + "id": "00NB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).00NB", + "name": "Non-resident non-banks" + }, + { + "id": "00NR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).00NR", + "name": "Non-resident non-banks excluding general government" + }, + { + "id": "0100", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).0100", + "name": "MFI Sector (1000), General Government (2100) and other residents (2200)" + }, + { + "id": "0200", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).0200", + "name": "Non-investment funds" + }, + { + "id": "0300", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).0300", + "name": "EU large banking groups (EBA sample of 56 EU LBG)" + }, + { + "id": "0400", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).0400", + "name": "Banks except central banks and EU large banking groups" + }, + { + "id": "0500", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).0500", + "name": "Government (General government plus central banks)" + }, + { + "id": "0600", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).0600", + "name": "Other financial intermediaries (OFIs plus MMF)" + }, + { + "id": "1000", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).1000", + "name": "Monetary financial institutions (MFIs)" + }, + { + "id": "1100", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).1100", + "name": "Central Bank (S.121)" + }, + { + "id": "1110", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).1110", + "name": "ECB" + }, + { + "id": "1120", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).1120", + "name": "NCB" + }, + { + "id": "1130", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).1130", + "name": "Credit institutions (all credit institutions, according to EU Law)" + }, + { + "id": "11N0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).11N0", + "name": "ESCB" + }, + { + "id": "1200", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).1200", + "name": "Other monetary financial institutions (OMFI)" + }, + { + "id": "1210", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).1210", + "name": "Deposit-taking corporations except the central bank (S.122)" + }, + { + "id": "1211", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).1211", + "name": "Credit institutions" + }, + { + "id": "1212", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).1212", + "name": "Deposit-taking corporations other than credit institutions" + }, + { + "id": "1220", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).1220", + "name": "Money market funds (S.123)" + }, + { + "id": "1400", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).1400", + "name": "MFIs excluding ESCB" + }, + { + "id": "2000", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2000", + "name": "Non-MFIs" + }, + { + "id": "2100", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2100", + "name": "General Government" + }, + { + "id": "2110", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2110", + "name": "Central Government" + }, + { + "id": "2120", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2120", + "name": "Other General Government" + }, + { + "id": "2121", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2121", + "name": "State Government" + }, + { + "id": "2122", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2122", + "name": "Local Authorities" + }, + { + "id": "2123", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2123", + "name": "Social security Funds" + }, + { + "id": "2200", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2200", + "name": "Non-MFIs excluding general government" + }, + { + "id": "2210", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2210", + "name": "Financial corporations except MFIs and Insurance corporations and pension funds (ICPFs)" + }, + { + "id": "2211", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2211", + "name": "Other financial institutions - o/w financial vehicle corporations engaged in securitisation transactions" + }, + { + "id": "2212", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2212", + "name": "Central counterparties (CCPs)" + }, + { + "id": "2220", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2220", + "name": "Insurance corporations and pension funds (S.128 and S.129)" + }, + { + "id": "2221", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2221", + "name": "Insurance corporations (S.128)" + }, + { + "id": "2222", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2222", + "name": "Pension funds (S.129)" + }, + { + "id": "2230", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2230", + "name": "Non-Financial corporations and Households (S.11 and S.14 and S.15)" + }, + { + "id": "2240", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240", + "name": "Non-Financial corporations (S.11)" + }, + { + "id": "2240A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240A", + "name": "Non-financial corporations (S.11), of which industry activities i.e. agriculture, forestry and fishing" + }, + { + "id": "2240B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240B", + "name": "Non-financial corporations (S.11), of which industry activities i.e. mining and quarrying" + }, + { + "id": "2240BC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240BC", + "name": "Non-financial corporations (S.11), of which industry activities i.e. mining and quarrying, manufacturing" + }, + { + "id": "2240C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240C", + "name": "Non-financial corporations (S.11), of which industry activities i.e manufacturing" + }, + { + "id": "2240D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240D", + "name": "Non-financial corporations (S.11), of which industry activities i.e. electricity, gas, steam and air conditioning supply" + }, + { + "id": "2240DE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240DE", + "name": "Non-financial corporations (S.11), of which industry activities i.e. electricity, gas, steam and air conditioning, water supply, severage, waste management and remediation activities" + }, + { + "id": "2240E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240E", + "name": "Non-financial corporations (S.11), of which industry activities i.e. water supply, severage, waste management and remediation activities" + }, + { + "id": "2240F", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240F", + "name": "Non-financial corporations (S.11), of which industry activities i.e. construction" + }, + { + "id": "2240G", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240G", + "name": "Non-financial corporations (S.11), of which industry activities i.e. wholesale and retail trade, repair of motor vehicles and motorcycles" + }, + { + "id": "2240H", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240H", + "name": "Non-financial corporations (S.11), of which industry activities i.e. transport and storage" + }, + { + "id": "2240HJ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240HJ", + "name": "Non-financial corporations (S.11), of which industry activities i.e. transport and storage, information and communication" + }, + { + "id": "2240I", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240I", + "name": "Non-financial corporations (S.11), of which industry activities i.e. accomodation and food service activities" + }, + { + "id": "2240J", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240J", + "name": "Non-financial corporations (S.11), of which industry activities i.e. information and communication" + }, + { + "id": "2240L", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240L", + "name": "Non-financial corporations (S.11), of which industry activities i.e. real estate activities" + }, + { + "id": "2240LMN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240LMN", + "name": "Non-financial corporations (S.11), of which industry activities i.e. real estate activities, professional, scientific and technical activities, administrative and support service activities" + }, + { + "id": "2240M", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240M", + "name": "Non-financial corporations (S.11), of which industry activities i.e. professional, scientific and technical activities" + }, + { + "id": "2240MN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240MN", + "name": "Non-financial corporations (S.11), of which industry activities i.e.professional, scientific and technical activities, administrative and support service activities" + }, + { + "id": "2240N", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240N", + "name": "Non-financial corporations (S.11), of which industry activities i.e. administrative and support service activities" + }, + { + "id": "2240Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2240Z", + "name": "Non-financial corporations (S.11), of which industry activities i.e. P. education; Q. human health and social work activities; R. arts, entertainment and recreation; S. other service activities; T. activities of households as employers; undifferentiated good" + }, + { + "id": "2250", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2250", + "name": "Households and non-profit institutions serving households (S.14 and S.15)" + }, + { + "id": "2251", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2251", + "name": "Households (S.14)" + }, + { + "id": "2252", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2252", + "name": "Non-Profit institutions serving Households (S.15)" + }, + { + "id": "2253", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2253", + "name": "Households of which sole proprietors and unincorporated partnerships (SP/UP)" + }, + { + "id": "2260", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2260", + "name": "Non-MMF investment funds (S.124)" + }, + { + "id": "2270", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2270", + "name": "Other financial intermediaries & financial auxiliaries & captive financial institutions and money lenders (sum of S.125, S.126, S.127)" + }, + { + "id": "2271", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2271", + "name": "Financial vehicle corporations engaged in securitisation" + }, + { + "id": "2272", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2272", + "name": "Central counterparties (CCPs)" + }, + { + "id": "22F0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).22F0", + "name": "Other financial institutions, non-MMF investment funds and Insurance corporations and pension funds (2210 and 2220)" + }, + { + "id": "22FG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).22FG", + "name": "Other financial institutions, non-MMF investment funds and Insurance corporations and pension funds and Other General Government (2210 and 2220 and 2120)" + }, + { + "id": "2300", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).2300", + "name": "Non-MFIs excluding central government" + }, + { + "id": "3000", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_COUNT_SECTOR(1.0).3000", + "name": "MFIs excluding Eurosystem not subject to minimum reserve requirements and Non-MFIs" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_BS_ITEM(1.0)": { + "id": "CL_BS_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_BS_ITEM(1.0)", + "name": "Balance sheet item code list", + "items": [ + { + "id": "A10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A10", + "name": "Cash" + }, + { + "id": "A11", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A11", + "name": "Cash (net of Euro)" + }, + { + "id": "A20", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20", + "name": "Loans" + }, + { + "id": "A20A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20A", + "name": "Loans excluding reverse repos with central counterparties" + }, + { + "id": "A20D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20D", + "name": "Loans securitised or otherwise transferred and derecognised from the MFI balance sheet" + }, + { + "id": "A20DA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20DA", + "name": "Loans securitised and derecognised from the balance sheet, for which the MFI acts as servicer" + }, + { + "id": "A20DB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20DB", + "name": "Loans securitised or otherwise transferred and derecognised from the balance sheet, not serviced by the MFI" + }, + { + "id": "A20E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20E", + "name": "Loans backed by real estate collateral" + }, + { + "id": "A20EST", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20EST", + "name": "Loans, ECB estimate based on national contributions" + }, + { + "id": "A20G", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20G", + "name": "Loans - o/w intra-group positions" + }, + { + "id": "A20NA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20NA", + "name": "Loans securitised through an FVC and not derecognised from the balance sheet" + }, + { + "id": "A20NB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20NB", + "name": "Loans securitised through an euro area FVC and not derecognised from the balance sheet" + }, + { + "id": "A20ND", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20ND", + "name": "Loans securitised through a domestic FVC and not derecognised from the balance sheet" + }, + { + "id": "A20NZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20NZ", + "name": "Net flows of loans securitised or otherwise transferred and not derecognised from the balance sheet" + }, + { + "id": "A20R", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20R", + "name": "Reverse repurchase agreements" + }, + { + "id": "A20S", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20S", + "name": "Syndicated loans" + }, + { + "id": "A20SA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SA", + "name": "Loans serviced for an FVC" + }, + { + "id": "A20SAT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SAT", + "name": "Loans serviced for an FVC resident in EU MS Austria" + }, + { + "id": "A20SBE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SBE", + "name": "Loans serviced for an FVC resident in EU MS Belgium" + }, + { + "id": "A20SBG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SBG", + "name": "Loans serviced for an FVC resident in EU MS Bulgaria" + }, + { + "id": "A20SCY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SCY", + "name": "Loans serviced for an FVC resident in EU MS Cyprus" + }, + { + "id": "A20SCZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SCZ", + "name": "Loans serviced for an FVC resident in EU MS The Czech Republic" + }, + { + "id": "A20SDE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SDE", + "name": "Loans serviced for an FVC resident in EU MS Germany" + }, + { + "id": "A20SDK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SDK", + "name": "Loans serviced for an FVC resident in EU MS Denmark" + }, + { + "id": "A20SEE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SEE", + "name": "Loans serviced for an FVC resident in EU MS Estonia" + }, + { + "id": "A20SES", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SES", + "name": "Loans serviced for an FVC resident in EU MS Spain" + }, + { + "id": "A20SFI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SFI", + "name": "Loans serviced for an FVC resident in EU MS Finland" + }, + { + "id": "A20SFR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SFR", + "name": "Loans serviced for an FVC resident in EU MS France" + }, + { + "id": "A20SGB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SGB", + "name": "Loans serviced for an FVC resident in EU MS United Kingdom" + }, + { + "id": "A20SGR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SGR", + "name": "Loans serviced for an FVC resident in EU MS Greece" + }, + { + "id": "A20SHU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SHU", + "name": "Loans serviced for an FVC resident in EU MS Hungary" + }, + { + "id": "A20SIE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SIE", + "name": "Loans serviced for an FVC resident in EU MS Ireland" + }, + { + "id": "A20SIT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SIT", + "name": "Loans serviced for an FVC resident in EU MS Italy" + }, + { + "id": "A20SLT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SLT", + "name": "Loans serviced for an FVC resident in EU MS Lithuania" + }, + { + "id": "A20SLU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SLU", + "name": "Loans serviced for an FVC resident in EU MS Luxembourg" + }, + { + "id": "A20SLV", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SLV", + "name": "Loans serviced for an FVC resident in EU MS Latvia" + }, + { + "id": "A20SMT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SMT", + "name": "Loans serviced for an FVC resident in EU MS Malta" + }, + { + "id": "A20SNL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SNL", + "name": "Loans serviced for an FVC resident in EU MS The Netherlands" + }, + { + "id": "A20SPL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SPL", + "name": "Loans serviced for an FVC resident in EU MS Poland" + }, + { + "id": "A20SPT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SPT", + "name": "Loans serviced for an FVC resident in EU MS Portugal" + }, + { + "id": "A20SRO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SRO", + "name": "Loans serviced for an FVC resident in EU MS Romania" + }, + { + "id": "A20SSE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SSE", + "name": "Loans serviced for an FVC resident in EU MS Sweden" + }, + { + "id": "A20SSI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SSI", + "name": "Loans serviced for an FVC resident in EU MS Slovenia" + }, + { + "id": "A20SSK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SSK", + "name": "Loans serviced for an FVC resident in EU MS Slovakia" + }, + { + "id": "A20SU6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20SU6", + "name": "Loans serviced for domestic FVCs" + }, + { + "id": "A20T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20T", + "name": "Loans adjusted for sales and securitisation" + }, + { + "id": "A20TA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20TA", + "name": "Loans adjusted for sales and securitisation excluding reverse repos with central counterparties" + }, + { + "id": "A20YA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20YA", + "name": "Net flows of loans securitised through an FVC and derecognised from the balance sheet" + }, + { + "id": "A20YB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20YB", + "name": "Net flows of loans securitised through an euro area FVC and derecognised from the balance sheet" + }, + { + "id": "A20YC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20YC", + "name": "Net flows of loans transferred to a non-FVC (excluding euro area MFIs) and derecognised from the balance sheet" + }, + { + "id": "A20YD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20YD", + "name": "Net flows of loans securitised through a domestic FVC and derecognised from the balance sheet" + }, + { + "id": "A20YE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20YE", + "name": "Net flows of loans transferred to a non-FVC and derecognised from the balance sheet" + }, + { + "id": "A20YF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20YF", + "name": "Net flows of loans transferred to a non-domestic euro area MFI and derecognised from the balance sheet" + }, + { + "id": "A20YG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20YG", + "name": "Net flows of loans transferred to an euro area MFI and derecognised from the balance sheet" + }, + { + "id": "A20YZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A20YZ", + "name": "Net flows of loans securitised or otherwise transferred and derecognised from the balance sheet" + }, + { + "id": "A21", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A21", + "name": "Credit for consumption" + }, + { + "id": "A21D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A21D", + "name": "Loans securitised or otherwise transferred and derecognised from the MFI balance sheet, consumer credit" + }, + { + "id": "A21DA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A21DA", + "name": "Loans securitised and derecognised from the balance sheet, for which the MFI acts as servicer, consumer credit" + }, + { + "id": "A21DB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A21DB", + "name": "Loans securitised or otherwise transferred and derecognised from the balance sheet, not serviced by the MFI, consumer credit" + }, + { + "id": "A21E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A21E", + "name": "Credit for consumption backed by real estate collateral" + }, + { + "id": "A21SA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A21SA", + "name": "Loans serviced for an FVC, consumer credit" + }, + { + "id": "A21T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A21T", + "name": "Loans adjusted for sales and securitisation, consumer credit" + }, + { + "id": "A21YA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A21YA", + "name": "Net flows of loans securitised through an FVC and derecognised from the balance sheet, consumer credit" + }, + { + "id": "A21YC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A21YC", + "name": "Net flows of loans transferred to a non-FVC (excluding euro area MFIs) and derecognised from the balance sheet, consumer credit" + }, + { + "id": "A21YD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A21YD", + "name": "Net flows of loans securitised through a domestic FVC and derecognised from the balance sheet, consumer credit" + }, + { + "id": "A21YE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A21YE", + "name": "Net flows of loans transferred to a non-FVC and derecognised from the balance sheet, consumer credit" + }, + { + "id": "A21YF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A21YF", + "name": "Net flows of loans transferred to a non-domestic euro area MFI and derecognised from the balance sheet, consumer credit" + }, + { + "id": "A21YG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A21YG", + "name": "Net flows of loans transferred to an euro area MFI and derecognised from the balance sheet, consumer credit" + }, + { + "id": "A21YZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A21YZ", + "name": "Net flows of loans securitised or otherwise transferred and derecognised from the balance sheet, consumer credit" + }, + { + "id": "A22", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A22", + "name": "Lending for house purchase" + }, + { + "id": "A22D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A22D", + "name": "Loans securitised or otherwise transferred and derecognised from the MFI balance sheet, house purchase" + }, + { + "id": "A22DA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A22DA", + "name": "Loans securitised and derecognised from the balance sheet, for which the MFI acts as servicer, house purchase" + }, + { + "id": "A22DB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A22DB", + "name": "Loans securitised or otherwise transferred and derecognised from the balance sheet, not serviced by the MFI, house purchase" + }, + { + "id": "A22E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A22E", + "name": "Lending for house purchase backed by real estate collateral" + }, + { + "id": "A22SA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A22SA", + "name": "Loans serviced for an FVC, house purchase" + }, + { + "id": "A22T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A22T", + "name": "Loans adjusted for sales and securitisation, house purchase" + }, + { + "id": "A22YA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A22YA", + "name": "Net flows of loans securitised through an FVC and derecognised from the balance sheet, house purchase" + }, + { + "id": "A22YC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A22YC", + "name": "Net flows of loans transferred to a non-FVC (excluding euro area MFIs) and derecognised from the balance sheet, house purchase" + }, + { + "id": "A22YD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A22YD", + "name": "Net flows of loans securitised through a domestic FVC and derecognised from the balance sheet, house purchase" + }, + { + "id": "A22YE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A22YE", + "name": "Net flows of loans transferred to a non-FVC and derecognised from the balance sheet, house purchase" + }, + { + "id": "A22YF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A22YF", + "name": "Net flows of loans transferred to a non-domestic euro area MFI and derecognised from the balance sheet, house purchase" + }, + { + "id": "A22YG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A22YG", + "name": "Net flows of loans transferred to an euro area MFI and derecognised from the balance sheet, house purchase" + }, + { + "id": "A22YZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A22YZ", + "name": "Net flows of loans securitised or otherwise transferred and derecognised from the balance sheet, house purchase" + }, + { + "id": "A23", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A23", + "name": "Other lending" + }, + { + "id": "A23D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A23D", + "name": "Loans securitised or otherwise transferred and derecognised from the MFI balance sheet, other lending" + }, + { + "id": "A23DA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A23DA", + "name": "Loans securitised and derecognised from the balance sheet, for which the MFI acts as servicer, consumer credit, other lending" + }, + { + "id": "A23DB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A23DB", + "name": "Loans securitised or otherwise transferred and derecognised from the balance sheet, not serviced by the MFI, other lending" + }, + { + "id": "A23E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A23E", + "name": "Other lending backed by real estate collateral" + }, + { + "id": "A23SA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A23SA", + "name": "Loans serviced for an FVC, other lending" + }, + { + "id": "A23T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A23T", + "name": "Loans adjusted for sales and securitisation, other lending" + }, + { + "id": "A23YA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A23YA", + "name": "Net flows of loans securitised through an FVC and derecognised from the balance sheet, other lending" + }, + { + "id": "A23YC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A23YC", + "name": "Net flows of loans transferred to a non-FVC (excluding euro area MFIs) and derecognised from the balance sheet, other lending" + }, + { + "id": "A23YD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A23YD", + "name": "Net flows of loans securitised through a domestic FVC and derecognised from the balance sheet, other lending" + }, + { + "id": "A23YE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A23YE", + "name": "Net flows of loans transferred to a non-FVC and derecognised from the balance sheet, other lending" + }, + { + "id": "A23YF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A23YF", + "name": "Net flows of loans transferred to a non-domestic euro area MFI and derecognised from the balance sheet, other lending" + }, + { + "id": "A23YG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A23YG", + "name": "Net flows of loans transferred to an euro area MFI and derecognised from the balance sheet, other lending" + }, + { + "id": "A23YZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A23YZ", + "name": "Net flows of loans securitised or otherwise transferred and derecognised from the balance sheet, other lending" + }, + { + "id": "A24", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A24", + "name": "Loans - o/w Transfer of foreign currency reserves" + }, + { + "id": "A25", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A25", + "name": "A21 plus A23" + }, + { + "id": "A26", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A26", + "name": "Loans adjusted for sales and securitisation" + }, + { + "id": "A26A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A26A", + "name": "Loans adjusted for sales and securitisation excluding reverse repos with central counterparties" + }, + { + "id": "A27", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A27", + "name": "Adjustment for loan sales and securitisation (A20 plus A27 = A26 )" + }, + { + "id": "A28", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A28", + "name": "Loans securitised through an FVC" + }, + { + "id": "A29", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A29", + "name": "Loans securitised without an FVC" + }, + { + "id": "A2A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2A", + "name": "Loans other than revolving loans and overdrafts, convenience and extended credit card debt [A20-A2Z]" + }, + { + "id": "A2AC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2AC", + "name": "Loans other than revolving loans and overdrafts, convenience and extended credit card debt [A20-A2Z] with collateral and/or guarantees" + }, + { + "id": "A2B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2B", + "name": "Loans for consumption excluding revolving loans and overdrafts, convenience and extended credit card debt [A21-A2Z]" + }, + { + "id": "A2BC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2BC", + "name": "Loans for consumption excluding revolving loans and overdrafts, convenience and extended credit card debt [A21-A2Z] with collateral and/or guarantees" + }, + { + "id": "A2C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2C", + "name": "Lending for house purchase excluding revolving loans and overdrafts, convenience and extended credit card debt [A22-A2Z]" + }, + { + "id": "A2CC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2CC", + "name": "Lending for house purchase excluding revolving loans and overdrafts, convenience and extended credit card debt [A22-A2Z] with collateral and/or guarantees" + }, + { + "id": "A2D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2D", + "name": "Other lending excluding revolving loans and overdrafts, convenience and extended credit card debt [A23-A2Z]" + }, + { + "id": "A2E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2E", + "name": "Loans - Excess of inter MFIs Loans over Deposits" + }, + { + "id": "A2F", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2F", + "name": "Overnight loans (assets), for non-euro area member states only" + }, + { + "id": "A2G", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2G", + "name": "Intra-day loans (assets)" + }, + { + "id": "A2H", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2H", + "name": "Loans other than intraday (A20 - A2G)" + }, + { + "id": "A2I", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2I", + "name": "Loans (defined for cost of borrowing purposes, sum of A2A and A2Z (both related to non-financial corporations))" + }, + { + "id": "A2J", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2J", + "name": "Loans including lending for house purchase (defined for cost of borrowing purposes, sum of A2C (Households), A2A and A2Z (both related to non-financial corporations))" + }, + { + "id": "A2L", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2L", + "name": "Loans to households for house purchase and to non-financial corporations" + }, + { + "id": "A2M", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2M", + "name": "Actual Loans reported net of excess of inter MFIs Loans (A20-A2E)" + }, + { + "id": "A2P", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2P", + "name": "Payday loans" + }, + { + "id": "A2Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2Z", + "name": "Revolving loans and overdrafts, convenience and extended credit card debt" + }, + { + "id": "A2Z1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2Z1", + "name": "Revolving loans and overdrafts" + }, + { + "id": "A2Z2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2Z2", + "name": "Convenience credit" + }, + { + "id": "A2Z3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A2Z3", + "name": "Extended credit" + }, + { + "id": "A30", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A30", + "name": "Debt securities held" + }, + { + "id": "A3I", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A3I", + "name": "Debt securities held - o/w interest accruals" + }, + { + "id": "A40", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A40", + "name": "Investment fund shares/units [A41 plus A42]" + }, + { + "id": "A41", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A41", + "name": "Non-MMF investment fund shares/units" + }, + { + "id": "A42", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A42", + "name": "MMF shares/units" + }, + { + "id": "A50", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A50", + "name": "Equity and non-MMF investment fund shares/units [A41 and A5A]" + }, + { + "id": "A51", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A51", + "name": "Equity - o/w listed shares" + }, + { + "id": "A52", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A52", + "name": "Equity - o/w unlisted shares" + }, + { + "id": "A53", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A53", + "name": "Equity - o/w other equity" + }, + { + "id": "A5A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A5A", + "name": "Equity" + }, + { + "id": "A60", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A60", + "name": "Non-financial assets (including fixed assets)" + }, + { + "id": "A70", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A70", + "name": "Remaining assets" + }, + { + "id": "A71", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A71", + "name": "Remaining assets - o/w accruals on loans" + }, + { + "id": "A72", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A72", + "name": "Remaining assets - o/w transit items" + }, + { + "id": "A73", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A73", + "name": "Remaining assets - o/w suspence items" + }, + { + "id": "A74", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A74", + "name": "Remaining assets - o/w financial derivatives" + }, + { + "id": "A75", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A75", + "name": "Remaining assets - o/w intra-Eurosystem net assets due to banknotes distribution" + }, + { + "id": "A76", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A76", + "name": "Remaining assets - o/w prepayment for insurance premiums and reserves for outstanding claims" + }, + { + "id": "A77", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A77", + "name": "Remaining assets - o/w revaluation accounts" + }, + { + "id": "A78", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A78", + "name": "Remaining assets - o/w claims/capital injections into non-resident branches/offices" + }, + { + "id": "A79", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A79", + "name": "Remaining assets - o/w asset adjustment accounts" + }, + { + "id": "A7A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A7A", + "name": "Remaining assets - o/w credit balance on inc/exp accounts - own shares - securities lending business" + }, + { + "id": "A7C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A7C", + "name": "Remaining Assets and Cash of which euro" + }, + { + "id": "A7I", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A7I", + "name": "Remaining assets - o/w accruals on debt securities held" + }, + { + "id": "A80", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).A80", + "name": "External assets (net)" + }, + { + "id": "AC1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).AC1", + "name": "Gold and gold receivables" + }, + { + "id": "AC2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).AC2", + "name": "Receivables from the IMF" + }, + { + "id": "AC4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).AC4", + "name": "Receivable from the IMF - of which claims arising from contributions to financing and other facilities (e.g., PRGF, ESAF)" + }, + { + "id": "ACL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).ACL", + "name": "MFI undrawn credit lines and loan commitments" + }, + { + "id": "AT0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).AT0", + "name": "Loans [A20] and Securities other than shares [A30]" + }, + { + "id": "AT1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).AT1", + "name": "Securities [A30 plus A50]" + }, + { + "id": "AT2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).AT2", + "name": "Loans [A20] and securities [AT1]" + }, + { + "id": "AT3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).AT3", + "name": "Loans [A20], securities other than shares [A30], MMFs shares/units [A42]" + }, + { + "id": "AT4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).AT4", + "name": "Cash [A10], loans [A20], shares and other equities [A50], fixed assets [A60], remaining assets [A70]" + }, + { + "id": "AT5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).AT5", + "name": "Cash, loans, securities other than shares and MMFs shares/units [A10 plus AT3]" + }, + { + "id": "AT6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).AT6", + "name": "Securities other than shares [A30] and MMFs shares/units [A42]" + }, + { + "id": "AT7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).AT7", + "name": "Cash [A10], fixed assets [A60] and remaining assets [A70]" + }, + { + "id": "AT8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).AT8", + "name": "Loans [A20], securities other than shares [A30], MMFs shares/units [A42] and al." + }, + { + "id": "AT9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).AT9", + "name": "Loans and securities [AT2] and net external assets [A80]" + }, + { + "id": "ATC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).ATC", + "name": "Securities other than shares and Money market paper [A30 and A41]" + }, + { + "id": "AXG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).AXG", + "name": "External assets" + }, + { + "id": "CRN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).CRN", + "name": "Credit - National definition corresponding to AT2" + }, + { + "id": "IRR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).IRR", + "name": "Interest rate on minimun reserves (w.av.ECB rate on eurosyst.refin.op)" + }, + { + "id": "L10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L10", + "name": "Currency in circulation" + }, + { + "id": "L11", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L11", + "name": "Banknotes" + }, + { + "id": "L12", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L12", + "name": "Currency in circulation - o/w coin" + }, + { + "id": "L1C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L1C", + "name": "Currency actually put into circulation [L10 plus L75 minus A75]" + }, + { + "id": "L20", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L20", + "name": "Deposit liabilities" + }, + { + "id": "L20G", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L20G", + "name": "Deposits - o/w intra-group positions" + }, + { + "id": "L20S", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L20S", + "name": "Syndicated loans" + }, + { + "id": "L21", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L21", + "name": "Overnight deposits" + }, + { + "id": "L21T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L21T", + "name": "Transferable (overnight) deposits" + }, + { + "id": "L21TI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L21TI", + "name": "Transferable Internet/ PC linked (overnight) deposits" + }, + { + "id": "L22", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L22", + "name": "Deposits with agreed maturity" + }, + { + "id": "L22ND", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L22ND", + "name": "Deposits - o/w counterpart liability to loans securitised but not derecognised from the MFI balance sheet" + }, + { + "id": "L23", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L23", + "name": "Deposits redeemable at notice" + }, + { + "id": "L24", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L24", + "name": "Repurchase agreements" + }, + { + "id": "L24A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L24A", + "name": "Repurchase agreements excluding repos with central counterparties" + }, + { + "id": "L25", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L25", + "name": "Other deposits not part of minimum reserve system (IMF purposes)" + }, + { + "id": "L2A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L2A", + "name": "Deposits/agreed maturity and redeemable at notice [L22 plus L23]" + }, + { + "id": "L2B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L2B", + "name": "Deposits overnight,agreed maturity and redeemable at notice[L21,L22,L23]" + }, + { + "id": "L2C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L2C", + "name": "Deposits liabilities included in M3" + }, + { + "id": "L2D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L2D", + "name": "Deposits liabilities not included in M3" + }, + { + "id": "L2E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L2E", + "name": "Deposits - Excess of inter MFIs Deposits over Loans" + }, + { + "id": "L2M", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L2M", + "name": "Actual Deposits reported net of excess of inter MFIs Deposits (L20-L2E)" + }, + { + "id": "L30", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L30", + "name": "Money Market Funds shares/units" + }, + { + "id": "L40", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L40", + "name": "Debt securities issued" + }, + { + "id": "L41", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L41", + "name": "Debt securities issued with capital guarantee below 100%" + }, + { + "id": "L4I", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L4I", + "name": "Debt securities issued - o/w interest accruals" + }, + { + "id": "L4Y", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L4Y", + "name": "Debt security issued excluding the non-resident holdings for maturity less than 2 years" + }, + { + "id": "L50", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L50", + "name": "Money market paper issued" + }, + { + "id": "L60", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L60", + "name": "Capital and reserves" + }, + { + "id": "L61", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L61", + "name": "Capital and reserves (net)" + }, + { + "id": "L62", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L62", + "name": "Capital and reserves - o/w provisions" + }, + { + "id": "L70", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L70", + "name": "Remaining liabilities" + }, + { + "id": "L71", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L71", + "name": "Remaining liabilities - o/w accruals on deposits" + }, + { + "id": "L72", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L72", + "name": "Remaining liabilities - o/w transit items" + }, + { + "id": "L73", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L73", + "name": "Remaining liabilities - o/w suspence items" + }, + { + "id": "L74", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L74", + "name": "Remaining liabilities - o/w financial derivatives" + }, + { + "id": "L75", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L75", + "name": "Remaining liabilities - o/w intra-Eurosystem net liabilities due to banknotes distribution" + }, + { + "id": "L76", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L76", + "name": "Remaining liabilities - o/w net equity of households in pension funds" + }, + { + "id": "L77", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L77", + "name": "Remaining liabilities - o/w revaluation accounts" + }, + { + "id": "L78", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L78", + "name": "Remaining liabilities - o/w liability to non-resident branches/offices" + }, + { + "id": "L79", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L79", + "name": "Remaining liabilities - o/w liability adjustment accounts" + }, + { + "id": "L7A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L7A", + "name": "Remaining liabilities - o/w debit balance on inc/exp accounts - current/previous year profit/losses - securities lending business - short positions in securities - depreciation" + }, + { + "id": "L7B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L7B", + "name": "Remaining liabilities - o/w provisions" + }, + { + "id": "L7I", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L7I", + "name": "Remaining liabilities - o/w accruals on debt securities issued" + }, + { + "id": "L80", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L80", + "name": "MMFs shares and MMP" + }, + { + "id": "L8Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L8Z", + "name": "MMFs shares and MMP including the holdings of MMF Shares/units by non-euro area residents" + }, + { + "id": "L90", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).L90", + "name": "Excess of inter-MFIs liabilities" + }, + { + "id": "LC1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LC1", + "name": "Remaining liabilities - o/w counterpart of SDRs" + }, + { + "id": "LC1A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LC1A", + "name": "Counterpart of SDRs" + }, + { + "id": "LE0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LE0", + "name": "Electronic money - Total" + }, + { + "id": "LE1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LE1", + "name": "Electronic money o/w hardware based e-money" + }, + { + "id": "LE2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LE2", + "name": "Electronic money o/w software based e-money" + }, + { + "id": "LEV", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LEV", + "name": "Leverage ratio - Total assets [T00] / Capital and reserves [L60]" + }, + { + "id": "LLT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LLT", + "name": "Longer-term financial liabilities not included in monetary aggregates - National definition" + }, + { + "id": "LR0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LR0", + "name": "Reserve base" + }, + { + "id": "LRA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LRA", + "name": "Reserve maintenance - Actual reserves" + }, + { + "id": "LRD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LRD", + "name": "Reserve maintenance - Deficiencies" + }, + { + "id": "LRE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LRE", + "name": "Reserve maintenance - Excess reserves" + }, + { + "id": "LRR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LRR", + "name": "Reserve maintenance - Required reserves" + }, + { + "id": "LSA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LSA", + "name": "Lump-sum allowance applied by CIs subj.to minimum reserve requirements" + }, + { + "id": "LSC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LSC", + "name": "Debt securities issued [L40] and Capital and reserves [L60]" + }, + { + "id": "LT1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LT1", + "name": "Deposit/agreed maturity, redeemable at notice, debt securities [L2A,L40]" + }, + { + "id": "LT2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LT2", + "name": "Deposit/agreed maturity, redeemable at notice, debt securities, capital and reserves (net) [LT1,L61]" + }, + { + "id": "LT3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LT3", + "name": "Repurchase agreements, debt securities, MMFs shares/units [L24,L40,L30]" + }, + { + "id": "LT4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LT4", + "name": "Deposits [L20], debt security issued [L40] and money market paper issued [L50]" + }, + { + "id": "LT5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LT5", + "name": "Currency in circulation [L10], MMFs shares/units [L30], capital and reserves [L60], remaining liabililities [L70]" + }, + { + "id": "LT6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LT6", + "name": "Deposits [L20] plus Money market paper [L50]" + }, + { + "id": "LTA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LTA", + "name": "Repurchase agreements [L24] plus MMFs shares/units [L80]" + }, + { + "id": "LTB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LTB", + "name": "Repurchase agreements [L24] plus debt security issued [L40]" + }, + { + "id": "LTC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LTC", + "name": "Debt securities issued [L40] plus Money market paper [L50]" + }, + { + "id": "LTD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LTD", + "name": "Loans [A20] to deposits ratio [L20]" + }, + { + "id": "LTY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LTY", + "name": "Repurchase agreement, debt securities, MMFs s/u, and MMP including non-residential holdings of MMP and debt securities" + }, + { + "id": "LTZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LTZ", + "name": "Repurchase agreement, debt securities, MMFs shares/units, MMP [L24,L40,L8Z] (discontinued)" + }, + { + "id": "LXG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).LXG", + "name": "External liabilities" + }, + { + "id": "M10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).M10", + "name": "Monetary aggregate M1" + }, + { + "id": "M20", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).M20", + "name": "Monetary aggregate M2" + }, + { + "id": "M2C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).M2C", + "name": "Monetary aggregate M2 excluding currency in circulation" + }, + { + "id": "M30", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).M30", + "name": "Monetary aggregate M3" + }, + { + "id": "M3C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).M3C", + "name": "Monetary aggregate M3 excluding currency in circulation" + }, + { + "id": "M3R", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).M3R", + "name": "Monetary aggregate M3 reference value" + }, + { + "id": "M3Y", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).M3Y", + "name": "M3 including the non-resident holdings of money market paper and debt securities up to 2 years of maturity [M20 and LTY]" + }, + { + "id": "M3Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).M3Z", + "name": "M3 including the non-resident holdings of MMF shares/units, money market paper and debt sec. up to 2 yrs of maturity [M20 and LTZ] (disc.)" + }, + { + "id": "N00", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).N00", + "name": "Total Assets/Liabilities (net)" + }, + { + "id": "N01", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).N01", + "name": "AT5-LT4" + }, + { + "id": "N10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).N10", + "name": "Narrow money (M1) - National definition" + }, + { + "id": "N20", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).N20", + "name": "Intermediate money (M2) - National definition" + }, + { + "id": "N30", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).N30", + "name": "Broad money (M3) - National definition" + }, + { + "id": "R31", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).R31", + "name": "Residuals of other counterparts of M3" + }, + { + "id": "T00", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).T00", + "name": "Total Assets/Liabilities" + }, + { + "id": "TMA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).TMA", + "name": "Total Main Assets (Total Assets minus Remaining assets)" + }, + { + "id": "TML", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).TML", + "name": "Total Main Liabilities (Total Liabilities minus Remaining liabilities)" + }, + { + "id": "V1D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).V1D", + "name": "Variant of M1 (excluding foreign currency components)" + }, + { + "id": "V2D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).V2D", + "name": "Variant of M2 (excluding foreign currency components)" + }, + { + "id": "V3A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).V3A", + "name": "Variant of M3 (excluding debt securities up to 2 years)" + }, + { + "id": "V3B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).V3B", + "name": "Variant of M3 (excluding MMFs shares/units)" + }, + { + "id": "V3C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).V3C", + "name": "Variant of M3 (excluding MMFs shares/units and Repos)" + }, + { + "id": "V3D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).V3D", + "name": "Variant of M3 (excluding foreign currency components)" + }, + { + "id": "X01", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_ITEM(1.0).X01", + "name": "International reserves held outside the central bank (IMF purposes)" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_BS_REP_SECTOR(1.0)": { + "id": "CL_BS_REP_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_BS_REP_SECTOR(1.0)", + "name": "Balance sheet reference sector breakdown code list", + "items": [ + { + "id": "A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).A", + "name": "MFIs excluding ESCB" + }, + { + "id": "A1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).A1", + "name": "MFIs excluding ESCB without being granted with a derogation under Article 9(1) of Regulation ECB/2013/33" + }, + { + "id": "A2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).A2", + "name": "MFIs excluding ESCB granted with derogation under Article 9(1) of Regulation ECB/2013/33" + }, + { + "id": "B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).B", + "name": "Credit and other institutions (MFI except MMFs and central banks)" + }, + { + "id": "C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).C", + "name": "Eurosystem" + }, + { + "id": "E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).E", + "name": "ECB" + }, + { + "id": "F", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).F", + "name": "Money Market Funds (MFIs excluding Eurosystem, credit institutions and other institutions)" + }, + { + "id": "G", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).G", + "name": "Central government and post office giro institutions" + }, + { + "id": "L", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).L", + "name": "Electronic money institutions" + }, + { + "id": "M", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).M", + "name": "MFIs excluding ECB" + }, + { + "id": "N", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).N", + "name": "NCBs" + }, + { + "id": "O", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).O", + "name": "MFIs excluding ESCB and credit institutions, issuing electronic money" + }, + { + "id": "P", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).P", + "name": "Non-MFIs issuing electronic money" + }, + { + "id": "R", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).R", + "name": "Credit institutions" + }, + { + "id": "S", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).S", + "name": "Payments institutions" + }, + { + "id": "S1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).S1", + "name": "Other payment service providers" + }, + { + "id": "S2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).S2", + "name": "Other payment service providers and e-money issuers" + }, + { + "id": "T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).T", + "name": "Total, credit institutions and payment institutions" + }, + { + "id": "U", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).U", + "name": "Monetary and Financial Institutions (MFIs)" + }, + { + "id": "V", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).V", + "name": "MFIs, central government and post office giro institutions" + }, + { + "id": "W", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).W", + "name": "Credit institutions legally incorporated in the reporting country" + }, + { + "id": "X", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).X", + "name": "Branches of euro area-based credit institutions" + }, + { + "id": "Y", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).Y", + "name": "Branches of EEA-based credit institutions (outside the euro area)" + }, + { + "id": "Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_REP_SECTOR(1.0).Z", + "name": "Branches of non-EEA based banks" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_BS_SUFFIX(1.0)": { + "id": "CL_BS_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_BS_SUFFIX(1.0)", + "name": "Balance sheet suffix code list", + "items": [ + { + "id": "25", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).25", + "name": "25th percentile of national data" + }, + { + "id": "25A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).25A", + "name": "25th percentile of national annual growth rates" + }, + { + "id": "3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).3", + "name": "3-month annualised growth rate" + }, + { + "id": "6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).6", + "name": "6-month annualised growth rate" + }, + { + "id": "75", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).75", + "name": "75th percentile of national data" + }, + { + "id": "75A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).75A", + "name": "75th percentile of national annual growth rates" + }, + { + "id": "A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).A", + "name": "Annual growth rate" + }, + { + "id": "A10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).A10", + "name": "Annual growth rates calculated on averaged monthly index series" + }, + { + "id": "A20", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).A20", + "name": "Annual growth rates calculated on averaged quarterly index series" + }, + { + "id": "B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).B", + "name": "Average" + }, + { + "id": "E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).E", + "name": "Euro" + }, + { + "id": "F", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).F", + "name": "Contribution to the M3 annual growth rate" + }, + { + "id": "F10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).F10", + "name": "Contribution to the M3 annual growth rate calculated on averaged monthly index series" + }, + { + "id": "I", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).I", + "name": "Interest rate" + }, + { + "id": "I10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).I10", + "name": "Share of cross border activity versus total activity" + }, + { + "id": "I11", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).I11", + "name": "Share of cross border activity with residents in the UK versus the euro area and the UK total activity" + }, + { + "id": "I12", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).I12", + "name": "Share of cross border activity with residents in the UK versus the euro area and the UK total cross-border activity" + }, + { + "id": "I20", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).I20", + "name": "Indicator of concentration of the national cross-border shares, based on the Herfindhal index" + }, + { + "id": "I30", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).I30", + "name": "Indicator of neutrality in the distribution of cross-border activity" + }, + { + "id": "I31", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).I31", + "name": "Indicator of neutrality in the distribution of cross-border activity, for countries sharing a land border" + }, + { + "id": "I40", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).I40", + "name": "Indicator of concordance in the cross-border activity, based on the Kendall co-graduation index" + }, + { + "id": "MA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).MA", + "name": "Maximum of national data" + }, + { + "id": "MAA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).MAA", + "name": "Maximum of national annual growth rates" + }, + { + "id": "MI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).MI", + "name": "Minimum of national data" + }, + { + "id": "MIA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).MIA", + "name": "Minimum of national annual growth rates" + }, + { + "id": "N", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).N", + "name": "National currency" + }, + { + "id": "P", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).P", + "name": "Growth rate to previous period" + }, + { + "id": "P10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).P10", + "name": "Currency ratio on total currency" + }, + { + "id": "V", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).V", + "name": "3-month moving average of annual growth rate" + }, + { + "id": "V00", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).V00", + "name": "3-month moving average of index of notional stocks" + }, + { + "id": "V10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).V10", + "name": "3-month moving average of growth rate to previous period" + }, + { + "id": "V30", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).V30", + "name": "3-month moving average of 3-month annualised growth rate" + }, + { + "id": "V60", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).V60", + "name": "3-month moving average of 6-month annualised growth rate" + }, + { + "id": "W10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).W10", + "name": "National proportion of M3 notional stock over the aggregated euro area countries M3 notional stocks" + }, + { + "id": "WA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).WA", + "name": "Weighted average of national data" + }, + { + "id": "WAA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).WAA", + "name": "Weighted average of national annual growth rates" + }, + { + "id": "Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_BS_SUFFIX(1.0).Z", + "name": "Not applicable" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_COLLECTION(1.0)": { + "id": "CL_COLLECTION", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_COLLECTION(1.0)", + "name": "Collection indicator code list", + "items": [ + { + "id": "A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_COLLECTION(1.0).A", + "name": "Average of observations through period" + }, + { + "id": "B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_COLLECTION(1.0).B", + "name": "Beginning of period" + }, + { + "id": "E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_COLLECTION(1.0).E", + "name": "End of period" + }, + { + "id": "H", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_COLLECTION(1.0).H", + "name": "Highest in period" + }, + { + "id": "L", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_COLLECTION(1.0).L", + "name": "Lowest in period" + }, + { + "id": "M", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_COLLECTION(1.0).M", + "name": "Middle of period" + }, + { + "id": "S", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_COLLECTION(1.0).S", + "name": "Summed through period" + }, + { + "id": "U", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_COLLECTION(1.0).U", + "name": "Unknown" + }, + { + "id": "V", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_COLLECTION(1.0).V", + "name": "Other" + }, + { + "id": "Y", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_COLLECTION(1.0).Y", + "name": "Annualised summed" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_CURRENCY(1.0)": { + "id": "CL_CURRENCY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_CURRENCY(1.0)", + "name": "Currency code list", + "items": [ + { + "id": "_T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0)._T", + "name": "All currencies of denomination" + }, + { + "id": "_X", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0)._X", + "name": "Not specified" + }, + { + "id": "_Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0)._Z", + "name": "Not applicable" + }, + { + "id": "ADF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ADF", + "name": "Andorran Franc (1-1 peg to the French franc)" + }, + { + "id": "ADP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ADP", + "name": "Andorran Peseta (1-1 peg to the Spanish peseta)" + }, + { + "id": "AED", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).AED", + "name": "United Arab Emirates dirham" + }, + { + "id": "AFA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).AFA", + "name": "Afghanistan afghani (old)" + }, + { + "id": "AFN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).AFN", + "name": "Afghanistan, Afghanis" + }, + { + "id": "ALL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ALL", + "name": "Albanian lek" + }, + { + "id": "AMD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).AMD", + "name": "Armenian dram" + }, + { + "id": "ANG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ANG", + "name": "Netherlands Antillean guilder" + }, + { + "id": "AOA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).AOA", + "name": "Angola, Kwanza" + }, + { + "id": "AON", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).AON", + "name": "Angolan kwanza (old)" + }, + { + "id": "AOR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).AOR", + "name": "Angolan kwanza readjustado" + }, + { + "id": "ARS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ARS", + "name": "Argentine peso" + }, + { + "id": "ATS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ATS", + "name": "Austrian schilling" + }, + { + "id": "AUD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).AUD", + "name": "Australian dollar" + }, + { + "id": "AWG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).AWG", + "name": "Aruban florin/guilder" + }, + { + "id": "AZM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).AZM", + "name": "Azerbaijanian manat (old)" + }, + { + "id": "AZN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).AZN", + "name": "Azerbaijan, manats" + }, + { + "id": "BAM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BAM", + "name": "Bosnia-Hezergovinian convertible mark" + }, + { + "id": "BBD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BBD", + "name": "Barbados dollar" + }, + { + "id": "BDT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BDT", + "name": "Bangladesh taka" + }, + { + "id": "BEF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BEF", + "name": "Belgian franc" + }, + { + "id": "BEL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BEL", + "name": "Belgian franc (financial)" + }, + { + "id": "BGL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BGL", + "name": "Bulgarian lev (old)" + }, + { + "id": "BGN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BGN", + "name": "Bulgarian lev" + }, + { + "id": "BHD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BHD", + "name": "Bahraini dinar" + }, + { + "id": "BIF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BIF", + "name": "Burundi franc" + }, + { + "id": "BMD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BMD", + "name": "Bermudian dollar" + }, + { + "id": "BND", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BND", + "name": "Brunei dollar" + }, + { + "id": "BOB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BOB", + "name": "Bolivian boliviano" + }, + { + "id": "BRE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BRE", + "name": "Brasilian cruzeiro (old)" + }, + { + "id": "BRL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BRL", + "name": "Brazilian real" + }, + { + "id": "BSD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BSD", + "name": "Bahamas dollar" + }, + { + "id": "BTN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BTN", + "name": "Bhutan ngultrum" + }, + { + "id": "BWP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BWP", + "name": "Botswana pula" + }, + { + "id": "BYB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BYB", + "name": "Belarussian rouble (old)" + }, + { + "id": "BYR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BYR", + "name": "Belarus, Rubles" + }, + { + "id": "BZD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).BZD", + "name": "Belize dollar" + }, + { + "id": "C36", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).C36", + "name": "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)" + }, + { + "id": "CAD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CAD", + "name": "Canadian dollar" + }, + { + "id": "CDF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CDF", + "name": "Congo franc (ex Zaire)" + }, + { + "id": "CHE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CHE", + "name": "WIR Euro" + }, + { + "id": "CHF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CHF", + "name": "Swiss franc" + }, + { + "id": "CHW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CHW", + "name": "WIR Franc" + }, + { + "id": "CLF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CLF", + "name": "Chile Unidades de fomento" + }, + { + "id": "CLP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CLP", + "name": "Chilean peso" + }, + { + "id": "CNH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CNH", + "name": "Chinese yuan offshore" + }, + { + "id": "CNY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CNY", + "name": "Chinese yuan renminbi" + }, + { + "id": "COP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).COP", + "name": "Colombian peso" + }, + { + "id": "COU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).COU", + "name": "Unidad de Valor Real" + }, + { + "id": "CRC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CRC", + "name": "Costa Rican colon" + }, + { + "id": "CSD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CSD", + "name": "Serbian dinar" + }, + { + "id": "CUC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CUC", + "name": "Cuban convertible peso" + }, + { + "id": "CUP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CUP", + "name": "Cuban peso" + }, + { + "id": "CVE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CVE", + "name": "Cape Verde escudo" + }, + { + "id": "CYP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CYP", + "name": "Cyprus pound" + }, + { + "id": "CZK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).CZK", + "name": "Czech koruna" + }, + { + "id": "DEM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).DEM", + "name": "German mark" + }, + { + "id": "DJF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).DJF", + "name": "Djibouti franc" + }, + { + "id": "DKK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).DKK", + "name": "Danish krone" + }, + { + "id": "DOP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).DOP", + "name": "Dominican peso" + }, + { + "id": "DZD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).DZD", + "name": "Algerian dinar" + }, + { + "id": "E0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).E0", + "name": "Euro area changing composition vis-a-vis the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US)" + }, + { + "id": "E1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).E1", + "name": "Euro area-18 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, LT, HU, PL, RO, HR and CN)" + }, + { + "id": "E2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).E2", + "name": "Euro area-18 countries vis-a-vis 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)" + }, + { + "id": "E3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).E3", + "name": "Euro area-18 countries vis-a-vis 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)" + }, + { + "id": "E4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).E4", + "name": "Euro area-18 countries vis-a-vis the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US)" + }, + { + "id": "E5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).E5", + "name": "Euro area-19 countries vis-a-vis 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)" + }, + { + "id": "E6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).E6", + "name": "Euro area-19 countries vis-a-vis 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)" + }, + { + "id": "E7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).E7", + "name": "Euro area-19 countries vis-a-vis 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)" + }, + { + "id": "E8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).E8", + "name": "Euro area-19 countries vis-a-vis the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US)" + }, + { + "id": "ECS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ECS", + "name": "Ecuador sucre" + }, + { + "id": "EEK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).EEK", + "name": "Estonian kroon" + }, + { + "id": "EGP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).EGP", + "name": "Egyptian pound" + }, + { + "id": "ERN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ERN", + "name": "Erytrean nafka" + }, + { + "id": "ESP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ESP", + "name": "Spanish peseta" + }, + { + "id": "ETB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ETB", + "name": "Ethiopian birr" + }, + { + "id": "EUR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).EUR", + "name": "Euro" + }, + { + "id": "FIM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).FIM", + "name": "Finnish markka" + }, + { + "id": "FJD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).FJD", + "name": "Fiji dollar" + }, + { + "id": "FKP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).FKP", + "name": "Falkland Islands pound" + }, + { + "id": "FRF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).FRF", + "name": "French franc" + }, + { + "id": "GBP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).GBP", + "name": "UK pound sterling" + }, + { + "id": "GEL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).GEL", + "name": "Georgian lari" + }, + { + "id": "GGP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).GGP", + "name": "Guernsey, Pounds" + }, + { + "id": "GHC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).GHC", + "name": "Ghana Cedi (old)" + }, + { + "id": "GHS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).GHS", + "name": "Ghana Cedi" + }, + { + "id": "GIP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).GIP", + "name": "Gibraltar pound" + }, + { + "id": "GMD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).GMD", + "name": "Gambian dalasi" + }, + { + "id": "GNF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).GNF", + "name": "Guinea franc" + }, + { + "id": "GRD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).GRD", + "name": "Greek drachma" + }, + { + "id": "GTQ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).GTQ", + "name": "Guatemalan quetzal" + }, + { + "id": "GWP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).GWP", + "name": "Guinea-Bissau peso (old)" + }, + { + "id": "GYD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).GYD", + "name": "Guyanan dollar" + }, + { + "id": "H1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).H1", + "name": "Euro area 18 currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LV, MT, SK)" + }, + { + "id": "H10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).H10", + "name": "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)" + }, + { + "id": "H11", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).H11", + "name": "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)" + }, + { + "id": "H2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).H2", + "name": "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)" + }, + { + "id": "H3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).H3", + "name": "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)" + }, + { + "id": "H36", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).H36", + "name": "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)" + }, + { + "id": "H37", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).H37", + "name": "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)" + }, + { + "id": "H4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).H4", + "name": "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)" + }, + { + "id": "H42", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).H42", + "name": "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)" + }, + { + "id": "H5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).H5", + "name": "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)" + }, + { + "id": "H6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).H6", + "name": "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)" + }, + { + "id": "H7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).H7", + "name": "Euro area 19 currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LT, LV, MT, SK)" + }, + { + "id": "H8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).H8", + "name": "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)" + }, + { + "id": "H9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).H9", + "name": "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)" + }, + { + "id": "HKD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).HKD", + "name": "Hong Kong dollar" + }, + { + "id": "HKQ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).HKQ", + "name": "Hong Kong dollar (old)" + }, + { + "id": "HNL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).HNL", + "name": "Honduran lempira" + }, + { + "id": "HRK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).HRK", + "name": "Croatian kuna" + }, + { + "id": "HTG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).HTG", + "name": "Haitian gourde" + }, + { + "id": "HUF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).HUF", + "name": "Hungarian forint" + }, + { + "id": "IDR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).IDR", + "name": "Indonesian rupiah" + }, + { + "id": "IEP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).IEP", + "name": "Irish pound" + }, + { + "id": "ILS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ILS", + "name": "Israeli shekel" + }, + { + "id": "IMP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).IMP", + "name": "Isle of Man, Pounds" + }, + { + "id": "INR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).INR", + "name": "Indian rupee" + }, + { + "id": "IQD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).IQD", + "name": "Iraqi dinar" + }, + { + "id": "IRR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).IRR", + "name": "Iranian rial" + }, + { + "id": "ISK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ISK", + "name": "Iceland krona" + }, + { + "id": "ITL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ITL", + "name": "Italian lira" + }, + { + "id": "JEP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).JEP", + "name": "Jersey, Pounds" + }, + { + "id": "JMD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).JMD", + "name": "Jamaican dollar" + }, + { + "id": "JOD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).JOD", + "name": "Jordanian dinar" + }, + { + "id": "JPY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).JPY", + "name": "Japanese yen" + }, + { + "id": "KES", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).KES", + "name": "Kenyan shilling" + }, + { + "id": "KGS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).KGS", + "name": "Kyrgyzstan som" + }, + { + "id": "KHR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).KHR", + "name": "Kampuchean real (Cambodian)" + }, + { + "id": "KMF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).KMF", + "name": "Comoros franc" + }, + { + "id": "KPW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).KPW", + "name": "Korean won (North)" + }, + { + "id": "KRW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).KRW", + "name": "Korean won (Republic)" + }, + { + "id": "KWD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).KWD", + "name": "Kuwait dinar" + }, + { + "id": "KYD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).KYD", + "name": "Cayman Islands dollar" + }, + { + "id": "KZT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).KZT", + "name": "Kazakstan tenge" + }, + { + "id": "LAK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).LAK", + "name": "Lao kip" + }, + { + "id": "LBP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).LBP", + "name": "Lebanese pound" + }, + { + "id": "LKR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).LKR", + "name": "Sri Lanka rupee" + }, + { + "id": "LRD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).LRD", + "name": "Liberian dollar" + }, + { + "id": "LSL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).LSL", + "name": "Lesotho loti" + }, + { + "id": "LTL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).LTL", + "name": "Lithuanian litas" + }, + { + "id": "LUF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).LUF", + "name": "Luxembourg franc" + }, + { + "id": "LVL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).LVL", + "name": "Latvian lats" + }, + { + "id": "LYD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).LYD", + "name": "Libyan dinar" + }, + { + "id": "MAD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MAD", + "name": "Moroccan dirham" + }, + { + "id": "MDL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MDL", + "name": "Moldovian leu" + }, + { + "id": "MGA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MGA", + "name": "Madagascar, Ariary" + }, + { + "id": "MGF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MGF", + "name": "Malagasy franc" + }, + { + "id": "MKD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MKD", + "name": "Macedonian denar" + }, + { + "id": "MMK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MMK", + "name": "Myanmar kyat" + }, + { + "id": "MNT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MNT", + "name": "Mongolian tugrik" + }, + { + "id": "MOP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MOP", + "name": "Macau pataca" + }, + { + "id": "MRO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MRO", + "name": "Mauritanian ouguiya" + }, + { + "id": "MTL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MTL", + "name": "Maltese lira" + }, + { + "id": "MUR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MUR", + "name": "Mauritius rupee" + }, + { + "id": "MVR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MVR", + "name": "Maldive rufiyaa" + }, + { + "id": "MWK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MWK", + "name": "Malawi kwacha" + }, + { + "id": "MXN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MXN", + "name": "Mexican peso" + }, + { + "id": "MXP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MXP", + "name": "Mexican peso (old)" + }, + { + "id": "MXV", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MXV", + "name": "Mexican Unidad de Inversion (UDI)" + }, + { + "id": "MYR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MYR", + "name": "Malaysian ringgit" + }, + { + "id": "MZM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MZM", + "name": "Mozambique metical (old)" + }, + { + "id": "MZN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).MZN", + "name": "Mozambique, Meticais" + }, + { + "id": "NAD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).NAD", + "name": "Namibian dollar" + }, + { + "id": "NGN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).NGN", + "name": "Nigerian naira" + }, + { + "id": "NIO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).NIO", + "name": "Nicaraguan cordoba" + }, + { + "id": "NLG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).NLG", + "name": "Netherlands guilder" + }, + { + "id": "NOK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).NOK", + "name": "Norwegian krone" + }, + { + "id": "NPR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).NPR", + "name": "Nepaleese rupee" + }, + { + "id": "NZD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).NZD", + "name": "New Zealand dollar" + }, + { + "id": "OMR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).OMR", + "name": "Oman Sul rial" + }, + { + "id": "PAB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).PAB", + "name": "Panama balboa" + }, + { + "id": "PEN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).PEN", + "name": "Peru nuevo sol" + }, + { + "id": "PGK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).PGK", + "name": "Papua New Guinea kina" + }, + { + "id": "PHP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).PHP", + "name": "Philippine peso" + }, + { + "id": "PKR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).PKR", + "name": "Pakistan rupee" + }, + { + "id": "PLN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).PLN", + "name": "Polish zloty" + }, + { + "id": "PLZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).PLZ", + "name": "Polish zloty (old)" + }, + { + "id": "PTE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).PTE", + "name": "Portuguese escudo" + }, + { + "id": "PYG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).PYG", + "name": "Paraguay guarani" + }, + { + "id": "QAR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).QAR", + "name": "Qatari rial" + }, + { + "id": "ROL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ROL", + "name": "Romanian leu (old)" + }, + { + "id": "RON", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).RON", + "name": "Romanian leu" + }, + { + "id": "RSD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).RSD", + "name": "Serbian dinar" + }, + { + "id": "RUB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).RUB", + "name": "Russian rouble" + }, + { + "id": "RUR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).RUR", + "name": "Russian ruble (old)" + }, + { + "id": "RWF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).RWF", + "name": "Rwanda franc" + }, + { + "id": "SAR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SAR", + "name": "Saudi riyal" + }, + { + "id": "SBD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SBD", + "name": "Solomon Islands dollar" + }, + { + "id": "SCR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SCR", + "name": "Seychelles rupee" + }, + { + "id": "SDD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SDD", + "name": "Sudanese dinar" + }, + { + "id": "SDG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SDG", + "name": "Sudan, Dinars" + }, + { + "id": "SDP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SDP", + "name": "Sudanese pound (old)" + }, + { + "id": "SEK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SEK", + "name": "Swedish krona" + }, + { + "id": "SGD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SGD", + "name": "Singapore dollar" + }, + { + "id": "SHP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SHP", + "name": "St. Helena pound" + }, + { + "id": "SIT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SIT", + "name": "Slovenian tolar" + }, + { + "id": "SKK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SKK", + "name": "Slovak koruna" + }, + { + "id": "SLL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SLL", + "name": "Sierra Leone leone" + }, + { + "id": "SOS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SOS", + "name": "Somali shilling" + }, + { + "id": "SPL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SPL", + "name": "Seborga, Luigini" + }, + { + "id": "SRD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SRD", + "name": "Suriname, Dollars" + }, + { + "id": "SRG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SRG", + "name": "Suriname guilder" + }, + { + "id": "SSP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SSP", + "name": "South sudanese pound" + }, + { + "id": "STD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).STD", + "name": "Sao Tome and Principe dobra" + }, + { + "id": "SVC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SVC", + "name": "El Salvador colon" + }, + { + "id": "SYP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SYP", + "name": "Syrian pound" + }, + { + "id": "SZL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).SZL", + "name": "Swaziland lilangeni" + }, + { + "id": "THB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).THB", + "name": "Thai baht" + }, + { + "id": "TJR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).TJR", + "name": "Tajikistan rouble" + }, + { + "id": "TJS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).TJS", + "name": "Tajikistan, Somoni" + }, + { + "id": "TMM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).TMM", + "name": "Turkmenistan manat (old)" + }, + { + "id": "TMT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).TMT", + "name": "Turkmenistan manat" + }, + { + "id": "TND", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).TND", + "name": "Tunisian dinar" + }, + { + "id": "TOP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).TOP", + "name": "Tongan paanga" + }, + { + "id": "TPE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).TPE", + "name": "East Timor escudo" + }, + { + "id": "TRL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).TRL", + "name": "Turkish lira (old)" + }, + { + "id": "TRY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).TRY", + "name": "Turkish lira" + }, + { + "id": "TTD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).TTD", + "name": "Trinidad and Tobago dollar" + }, + { + "id": "TVD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).TVD", + "name": "Tuvalu, Tuvalu Dollars" + }, + { + "id": "TWD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).TWD", + "name": "New Taiwan dollar" + }, + { + "id": "TZS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).TZS", + "name": "Tanzania shilling" + }, + { + "id": "U1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).U1", + "name": "Euro and domestic currency" + }, + { + "id": "UAH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).UAH", + "name": "Ukraine hryvnia" + }, + { + "id": "UGX", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).UGX", + "name": "Uganda Shilling" + }, + { + "id": "USD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).USD", + "name": "US dollar" + }, + { + "id": "UYI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).UYI", + "name": "Uruguay Peso en Unidades Indexadas" + }, + { + "id": "UYU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).UYU", + "name": "Uruguayan peso" + }, + { + "id": "UZS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).UZS", + "name": "Uzbekistan sum" + }, + { + "id": "VEB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).VEB", + "name": "Venezuelan bolivar (old)" + }, + { + "id": "VEF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).VEF", + "name": "Venezuelan bolivar" + }, + { + "id": "VND", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).VND", + "name": "Vietnamese dong" + }, + { + "id": "VUV", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).VUV", + "name": "Vanuatu vatu" + }, + { + "id": "WST", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).WST", + "name": "Samoan tala" + }, + { + "id": "X1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).X1", + "name": "All currencies except national currency" + }, + { + "id": "X2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).X2", + "name": "All currencies except USD" + }, + { + "id": "X3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).X3", + "name": "All currencies except EUR" + }, + { + "id": "X4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).X4", + "name": "All currencies except EUR, USD" + }, + { + "id": "X5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).X5", + "name": "All currencies except EUR, JPY, USD" + }, + { + "id": "X6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).X6", + "name": "All currencies except EUR, CHF, GBP, JPY, USD" + }, + { + "id": "X7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).X7", + "name": "All currencies except EUR, USD, JPY, GBP, CHF, domestic currency" + }, + { + "id": "XAF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XAF", + "name": "CFA franc / BEAC" + }, + { + "id": "XAG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XAG", + "name": "Silver" + }, + { + "id": "XAU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XAU", + "name": "Gold" + }, + { + "id": "XBA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XBA", + "name": "European composite unit" + }, + { + "id": "XBB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XBB", + "name": "European Monetary unit EC-6" + }, + { + "id": "XBC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XBC", + "name": "European Unit of Account 9 (E.U.A.-9)" + }, + { + "id": "XBD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XBD", + "name": "European Unit of Account 17 (E.U.A.-17)" + }, + { + "id": "XCD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XCD", + "name": "Eastern Caribbean dollar" + }, + { + "id": "XDB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XDB", + "name": "Currencies included in the SDR basket, gold and SDRs" + }, + { + "id": "XDC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XDC", + "name": "Domestic currency (incl. conversion to current currency made using a fixed parity)" + }, + { + "id": "XDM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XDM", + "name": "Domestic currency (incl. conversion to current currency made using market exchange rate)" + }, + { + "id": "XDN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XDN", + "name": "Domestic currency" + }, + { + "id": "XDO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XDO", + "name": "Other currencies not included in the SDR basket, exc. gold and SDRs" + }, + { + "id": "XDR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XDR", + "name": "Special Drawing Rights (SDR)" + }, + { + "id": "XEU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XEU", + "name": "European Currency Unit (E.C.U.)" + }, + { + "id": "XFO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XFO", + "name": "Gold-Franc" + }, + { + "id": "XFU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XFU", + "name": "UIC-Franc" + }, + { + "id": "XGO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XGO", + "name": "Gold fine troy ounces" + }, + { + "id": "XNC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XNC", + "name": "Euro area non-participating foreign currency" + }, + { + "id": "XOF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XOF", + "name": "CFA franc / BCEAO" + }, + { + "id": "XPC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XPC", + "name": "Euro area participating foreign currency" + }, + { + "id": "XPD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XPD", + "name": "Palladium Ounces" + }, + { + "id": "XPF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XPF", + "name": "Pacific franc" + }, + { + "id": "XPT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XPT", + "name": "Platinum, Ounces" + }, + { + "id": "XRH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XRH", + "name": "Rhodium" + }, + { + "id": "XSU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XSU", + "name": "Sucre" + }, + { + "id": "XTS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XTS", + "name": "Codes specifically reserved for testing purposes" + }, + { + "id": "XUA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XUA", + "name": "ADB Unit of Account" + }, + { + "id": "XXX", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).XXX", + "name": "Transactions where no currency is involved" + }, + { + "id": "YER", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).YER", + "name": "Yemeni rial" + }, + { + "id": "YUM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).YUM", + "name": "Yugoslav dinar" + }, + { + "id": "Z01", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z01", + "name": "All currencies combined" + }, + { + "id": "Z02", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z02", + "name": "Euro and euro area national currencies" + }, + { + "id": "Z03", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z03", + "name": "Other EU currencies combined" + }, + { + "id": "Z04", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z04", + "name": "Other currencies than EU combined" + }, + { + "id": "Z05", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z05", + "name": "All currencies other than EU, EUR, USD, CHF, JPY" + }, + { + "id": "Z06", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z06", + "name": "Non-Euro and non-euro area currencies combined" + }, + { + "id": "Z07", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z07", + "name": "All currencies other than domestic, Euro and euro area currencies" + }, + { + "id": "Z08", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z08", + "name": "ECB EER-12 group of currencies (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US), changing composition of the euro area" + }, + { + "id": "Z09", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z09", + "name": "EER broad group of currencies including also Greece until 01 january 2001" + }, + { + "id": "Z0Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z0Z", + "name": "Not applicable" + }, + { + "id": "Z10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z10", + "name": "EER-12 group of currencies (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US)" + }, + { + "id": "Z11", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z11", + "name": "EER broad group of currencies (excluding Greece)" + }, + { + "id": "Z12", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z12", + "name": "Euro and Euro Area countries currencies (including Greece)" + }, + { + "id": "Z13", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z13", + "name": "Other EU currencies combined (MU12; excluding GRD)" + }, + { + "id": "Z14", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z14", + "name": "Other currencies than EU15 and EUR combined" + }, + { + "id": "Z15", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z15", + "name": "All currencies other than EU15, EUR, USD, CHF, JPY" + }, + { + "id": "Z16", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z16", + "name": "Non-MU12 currencies combined" + }, + { + "id": "Z17", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z17", + "name": "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)" + }, + { + "id": "Z18", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z18", + "name": "ECB EER broad group of currencies and Euro Area countries currencies" + }, + { + "id": "Z19", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z19", + "name": "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)" + }, + { + "id": "Z20", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z20", + "name": "ECB EER-12 group of currencies (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US) - Euro area 15" + }, + { + "id": "Z21", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z21", + "name": "ECB EER broad group, regional breakdown, industrialised countries" + }, + { + "id": "Z22", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z22", + "name": "ECB EER broad group, regional breakdown, non-Japan Asia" + }, + { + "id": "Z23", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z23", + "name": "ECB EER broad group, regional breakdown, Latin America" + }, + { + "id": "Z24", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z24", + "name": "ECB EER broad group, regional breakdown, Central and Eastern Europe (CEEC)" + }, + { + "id": "Z25", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z25", + "name": "ECB EER broad group, regional breakdown, other countries" + }, + { + "id": "Z26", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z26", + "name": "Euro area 15 countries currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, MT and CY)" + }, + { + "id": "Z27", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z27", + "name": "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)" + }, + { + "id": "Z28", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z28", + "name": "Euro area-16 countries (BE, DE, IE, GR, ES, FR, IT, CY, LU, MT, NL, AT, PT, SI, SK and FI)" + }, + { + "id": "Z29", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z29", + "name": "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)" + }, + { + "id": "Z30", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z30", + "name": "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)" + }, + { + "id": "Z31", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z31", + "name": "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)" + }, + { + "id": "Z32", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z32", + "name": "Euro area-17 countries (BE, DE, EE, IE, GR, ES, FR, IT, CY, LU, MT, NL, AT, PT, SI, SK and FI)" + }, + { + "id": "Z33", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z33", + "name": "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)" + }, + { + "id": "Z37", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z37", + "name": "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)" + }, + { + "id": "Z38", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z38", + "name": "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)" + }, + { + "id": "Z40", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z40", + "name": "ECB EER-12 group of currencies (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB, US)" + }, + { + "id": "Z41", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z41", + "name": "All currencies other than domestic" + }, + { + "id": "Z42", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z42", + "name": "All currencies other than EUR, USD, GBP, CHF, JPY and domestic" + }, + { + "id": "Z44", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z44", + "name": "Other currencies than EU15, EUR and domestic" + }, + { + "id": "Z45", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z45", + "name": "All currencies other than EU15, EUR, USD, CHF, JPY and domestic" + }, + { + "id": "Z46", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z46", + "name": "All currencies other than EUR, USD, GBP and JPY" + }, + { + "id": "Z50", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z50", + "name": "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)" + }, + { + "id": "Z51", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z51", + "name": "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)" + }, + { + "id": "Z52", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z52", + "name": "Euro and Euro area 13 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI)" + }, + { + "id": "Z53", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z53", + "name": "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)" + }, + { + "id": "Z54", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z54", + "name": "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" + }, + { + "id": "Z55", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z55", + "name": "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" + }, + { + "id": "Z56", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z56", + "name": "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)" + }, + { + "id": "Z57", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z57", + "name": "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)" + }, + { + "id": "Z58", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z58", + "name": "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)" + }, + { + "id": "Z59", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z59", + "name": "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)" + }, + { + "id": "Z60", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z60", + "name": "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)" + }, + { + "id": "Z61", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z61", + "name": "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)" + }, + { + "id": "Z62", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z62", + "name": "Euro and Euro area 15 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT)" + }, + { + "id": "Z63", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z63", + "name": "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)" + }, + { + "id": "Z64", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z64", + "name": "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)" + }, + { + "id": "Z65", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z65", + "name": "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)" + }, + { + "id": "Z66", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z66", + "name": "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)" + }, + { + "id": "Z67", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z67", + "name": "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)" + }, + { + "id": "Z68", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z68", + "name": "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)" + }, + { + "id": "Z69", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z69", + "name": "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)" + }, + { + "id": "Z70", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z70", + "name": "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)" + }, + { + "id": "Z72", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z72", + "name": "Euro and Euro area 16 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT, SK)" + }, + { + "id": "Z73", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z73", + "name": "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)" + }, + { + "id": "Z82", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z82", + "name": "Euro and Euro area 17 country currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, MT, SK, EE)" + }, + { + "id": "Z83", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).Z83", + "name": "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)" + }, + { + "id": "ZAR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ZAR", + "name": "South African rand" + }, + { + "id": "ZMK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ZMK", + "name": "Zambian kwacha" + }, + { + "id": "ZMW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ZMW", + "name": "New zambian kwacha" + }, + { + "id": "ZWD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ZWD", + "name": "Zimbabwe dollar" + }, + { + "id": "ZWL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ZWL", + "name": "Fourth Zimbabwe dollar" + }, + { + "id": "ZWN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ZWN", + "name": "Zimbabwe, Zimbabwe Dollars" + }, + { + "id": "ZWR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_CURRENCY(1.0).ZWR", + "name": "Third Zimbabwe dollar" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_DATA_TYPE(1.0)": { + "id": "CL_DATA_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_DATA_TYPE(1.0)", + "name": "MB type of data, flow & position code list", + "items": [ + { + "id": "1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).1", + "name": "Outstanding amounts at the end of the period (stocks)" + }, + { + "id": "2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).2", + "name": "Gross issues (flows)" + }, + { + "id": "3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).3", + "name": "Redemptions (flows)" + }, + { + "id": "4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).4", + "name": "Financial transactions (flows)" + }, + { + "id": "5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).5", + "name": "Reclassifications and other adjustments" + }, + { + "id": "6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).6", + "name": "Exchange rate changes" + }, + { + "id": "7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).7", + "name": "Other adjustments" + }, + { + "id": "8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).8", + "name": "Revaluations, write-down/write-offs and exchange rate adjustments" + }, + { + "id": "9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).9", + "name": "Financial transactions (flows) - annualised" + }, + { + "id": "A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).A", + "name": "Weighted average of national log adjusted levels, with fixed 2001 GDP weights constructed on the basis of PPP exchange rates" + }, + { + "id": "B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).B", + "name": "Average of period" + }, + { + "id": "C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).C", + "name": "Reclassification due to change in composition of Monetary Union" + }, + { + "id": "D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).D", + "name": "Difference in Gross Stocks (gross stock[t] - gross stock[t-1])" + }, + { + "id": "E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).E", + "name": "Number of accounts at the end of the period" + }, + { + "id": "F", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).F", + "name": "Minimum" + }, + { + "id": "G", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).G", + "name": "Stock as percentage of GDP" + }, + { + "id": "H", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).H", + "name": "Standard deviation" + }, + { + "id": "I", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).I", + "name": "Index of Notional Stocks" + }, + { + "id": "J", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).J", + "name": "Index of unadjusted stocks" + }, + { + "id": "K", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).K", + "name": "First quartile" + }, + { + "id": "L", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).L", + "name": "Median" + }, + { + "id": "M", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).M", + "name": "Third quartile" + }, + { + "id": "N", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).N", + "name": "Notional stocks" + }, + { + "id": "O", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).O", + "name": "Maximum" + }, + { + "id": "P", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).P", + "name": "Stock as percentage per million inhabitants" + }, + { + "id": "Q", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).Q", + "name": "Contribution to the annual growth rate of M3" + }, + { + "id": "R", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).R", + "name": "Average of the last reserve maintenance period" + }, + { + "id": "S", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).S", + "name": "Sum of flows over the previous 12 months, [t-11] to [t] (flows adjusted for reclassifications, revaluations and exchange rate adjustments)" + }, + { + "id": "T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).T", + "name": "Number of observations" + }, + { + "id": "U", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).U", + "name": "All adjustments combined (sum of 5, 6, 7)" + }, + { + "id": "V", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).V", + "name": "All adjustments combined, plus loan transfers (acquisitions minus disposals)" + }, + { + "id": "W", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).W", + "name": "Weighted average of national log index of notional stocks, with fixed 2001 GDP weights constructed on the basis of PPP exchange rates" + }, + { + "id": "X", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).X", + "name": "Not specified" + }, + { + "id": "Y", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DATA_TYPE(1.0).Y", + "name": "Loan transfers (acquisitions minus disposals)" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_DECIMALS(1.0)": { + "id": "CL_DECIMALS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_DECIMALS(1.0)", + "name": "Decimals code list", + "items": [ + { + "id": "0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).0", + "name": "Zero" + }, + { + "id": "1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).1", + "name": "One" + }, + { + "id": "10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).10", + "name": "Ten" + }, + { + "id": "11", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).11", + "name": "Eleven" + }, + { + "id": "12", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).12", + "name": "Twelve" + }, + { + "id": "13", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).13", + "name": "Thirteen" + }, + { + "id": "14", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).14", + "name": "Fourteen" + }, + { + "id": "15", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).15", + "name": "Fifteen" + }, + { + "id": "2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).2", + "name": "Two" + }, + { + "id": "3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).3", + "name": "Three" + }, + { + "id": "4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).4", + "name": "Four" + }, + { + "id": "5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).5", + "name": "Five" + }, + { + "id": "6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).6", + "name": "Six" + }, + { + "id": "7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).7", + "name": "Seven" + }, + { + "id": "8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).8", + "name": "Eight" + }, + { + "id": "9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_DECIMALS(1.0).9", + "name": "Nine" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_FREQ(1.0)": { + "id": "CL_FREQ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_FREQ(1.0)", + "name": "Frequency code list", + "items": [ + { + "id": "A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_FREQ(1.0).A", + "name": "Annual" + }, + { + "id": "B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_FREQ(1.0).B", + "name": "Business" + }, + { + "id": "D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_FREQ(1.0).D", + "name": "Daily" + }, + { + "id": "E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_FREQ(1.0).E", + "name": "Event (not supported)" + }, + { + "id": "H", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_FREQ(1.0).H", + "name": "Half-yearly" + }, + { + "id": "M", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_FREQ(1.0).M", + "name": "Monthly" + }, + { + "id": "N", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_FREQ(1.0).N", + "name": "Minutely" + }, + { + "id": "Q", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_FREQ(1.0).Q", + "name": "Quarterly" + }, + { + "id": "S", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_FREQ(1.0).S", + "name": "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)" + }, + { + "id": "W", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_FREQ(1.0).W", + "name": "Weekly" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_MATURITY_ORIG(1.0)": { + "id": "CL_MATURITY_ORIG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_MATURITY_ORIG(1.0)", + "name": "Original maturity code list", + "items": [ + { + "id": "A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).A", + "name": "Total" + }, + { + "id": "AM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).AM", + "name": "Total calculated by weighting the volumes with a moving average (defined for cost of borrowing purposes)" + }, + { + "id": "B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).B", + "name": "Short-Term" + }, + { + "id": "C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).C", + "name": "Long-Term" + }, + { + "id": "D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).D", + "name": "Up to 3 months" + }, + { + "id": "E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).E", + "name": "Over 3 months" + }, + { + "id": "F", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).F", + "name": "Up to 1 year" + }, + { + "id": "FM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).FM", + "name": "Up to 1 year calculated by weighting the volumes with a moving average (defined for cost of borrowing purposes)" + }, + { + "id": "G", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).G", + "name": "Over 1 and up to 2 years" + }, + { + "id": "H", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).H", + "name": "Over 2 years" + }, + { + "id": "HHL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).HHL", + "name": "Original maturity over 2 years, remaining maturity over 2 years and interest rate reset within the next 24 months" + }, + { + "id": "HL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).HL", + "name": "Original maturity over 2 years and remaining maturity up to 2 years" + }, + { + "id": "I", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).I", + "name": "Over 1 and up to 5 years" + }, + { + "id": "J", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).J", + "name": "Over 5 years" + }, + { + "id": "K", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).K", + "name": "Over 1 year" + }, + { + "id": "KF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).KF", + "name": "Original maturity over 1 year and remaining maturity up to 1 year" + }, + { + "id": "KKF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).KKF", + "name": "Original maturity over 1 year, remaining maturity over 1 year and interest rate reset within the next 12 months" + }, + { + "id": "KM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).KM", + "name": "Over 1 year calculated by weighting the volumes with a moving average (defined for cost of borrowing purposes)" + }, + { + "id": "L", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).L", + "name": "Up to two years" + }, + { + "id": "M", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).M", + "name": "Agreed maturity up to 2 years and redeemable at notice up to 3 months" + }, + { + "id": "N", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).N", + "name": "Agreed maturity over 2 years and redeemable at notice over 3 months" + }, + { + "id": "O", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).O", + "name": "Over 5 and up to 10 years" + }, + { + "id": "P", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).P", + "name": "Over 10 years" + }, + { + "id": "Q", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).Q", + "name": "Over 3 months and up to 1 year" + }, + { + "id": "R", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).R", + "name": "Over 1 and up to 3 years" + }, + { + "id": "S", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).S", + "name": "Over 3 and up to 5 years" + }, + { + "id": "T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).T", + "name": "Over 2 and up to 5 years" + }, + { + "id": "X", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).X", + "name": "Not applicable" + }, + { + "id": "Y", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).Y", + "name": "Period of initial rate fixation below 1 year and original maturity over 1 year" + }, + { + "id": "Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).Z", + "name": "Not allocated / Unspecified" + }, + { + "id": "ZF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).ZF", + "name": "Original maturity up to 1 year with unspecified period of fixation" + }, + { + "id": "ZK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_MATURITY_ORIG(1.0).ZK", + "name": "Original maturity over 1 year with unspecified period of fixation" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_OBS_CONF(1.0)": { + "id": "CL_OBS_CONF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_OBS_CONF(1.0)", + "name": "Observation confidentiality code list", + "items": [ + { + "id": "C", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_CONF(1.0).C", + "name": "Confidential statistical information" + }, + { + "id": "D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_CONF(1.0).D", + "name": "Secondary confidentiality set by the sender, not for publication" + }, + { + "id": "F", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_CONF(1.0).F", + "name": "Free" + }, + { + "id": "N", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_CONF(1.0).N", + "name": "Not for publication, restricted for internal use only" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_OBS_STATUS(1.0)": { + "id": "CL_OBS_STATUS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_OBS_STATUS(1.0)", + "name": "Observation status code list", + "items": [ + { + "id": "A", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).A", + "name": "Normal value" + }, + { + "id": "B", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).B", + "name": "Time series break" + }, + { + "id": "D", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).D", + "name": "Definition differs" + }, + { + "id": "E", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).E", + "name": "Estimated value" + }, + { + "id": "F", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).F", + "name": "Forecast value" + }, + { + "id": "G", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).G", + "name": "Experimental value" + }, + { + "id": "H", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).H", + "name": "Missing value; holiday or weekend" + }, + { + "id": "I", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).I", + "name": "Imputed value (CCSA definition)" + }, + { + "id": "J", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).J", + "name": "Derogation" + }, + { + "id": "L", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).L", + "name": "Missing value; data exist but were not collected" + }, + { + "id": "M", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).M", + "name": "Missing value; data cannot exist" + }, + { + "id": "N", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).N", + "name": "Not significant" + }, + { + "id": "P", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).P", + "name": "Provisional value" + }, + { + "id": "Q", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).Q", + "name": "Missing value; suppressed" + }, + { + "id": "S", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).S", + "name": "Strike and any special events" + }, + { + "id": "U", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).U", + "name": "Low reliability" + }, + { + "id": "V", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_OBS_STATUS(1.0).V", + "name": "Unvalidated value" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_ORGANISATION(1.0)": { + "id": "CL_ORGANISATION", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_ORGANISATION(1.0)", + "name": "Organisation code list", + "items": [ + { + "id": "1A0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1A0", + "name": "International organisations" + }, + { + "id": "1B0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1B0", + "name": "UN organisations" + }, + { + "id": "1C0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1C0", + "name": "International Monetary Fund (IMF)" + }, + { + "id": "1D0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1D0", + "name": "World Trade Organisation" + }, + { + "id": "1E0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1E0", + "name": "International Bank for Reconstruction and Development" + }, + { + "id": "1F0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1F0", + "name": "International Development Association" + }, + { + "id": "1G0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1G0", + "name": "Other UN Organisations (includes 1H, 1J-1T)" + }, + { + "id": "1H0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1H0", + "name": "UNESCO (United Nations Educational, Scientific and Cultural Organisation)" + }, + { + "id": "1J0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1J0", + "name": "FAO (Food and Agriculture Organisation)" + }, + { + "id": "1K0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1K0", + "name": "WHO (World Health Organisation)" + }, + { + "id": "1L0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1L0", + "name": "IFAD (International Fund for Agricultural Development)" + }, + { + "id": "1M0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1M0", + "name": "IFC (International Finance Corporation)" + }, + { + "id": "1N0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1N0", + "name": "MIGA (Multilateral Investment Guarantee Agency)" + }, + { + "id": "1O0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1O0", + "name": "UNICEF (United Nations Children Fund)" + }, + { + "id": "1P0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1P0", + "name": "UNHCR (United Nations High Commissioner for Refugees)" + }, + { + "id": "1Q0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1Q0", + "name": "UNRWA (United Nations Relief and Works Agency for Palestine)" + }, + { + "id": "1R0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1R0", + "name": "IAEA (International Atomic Energy Agency)" + }, + { + "id": "1S0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1S0", + "name": "ILO (International Labour Organisation)" + }, + { + "id": "1T0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1T0", + "name": "ITU (International Telecommunication Union)" + }, + { + "id": "1U0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1U0", + "name": "UNECE (United Nations Economic Commission for Europe)" + }, + { + "id": "1W0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1W0", + "name": "World Bank" + }, + { + "id": "1Z0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).1Z0", + "name": "Rest of UN Organisations n.i.e." + }, + { + "id": "4A0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4A0", + "name": "European Community Institutions, Organs and Organisms" + }, + { + "id": "4B0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4B0", + "name": "EMS (European Monetary System)" + }, + { + "id": "4C0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4C0", + "name": "European Investment Bank" + }, + { + "id": "4D0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4D0", + "name": "Statistical Office of the European Commission (Eurostat)" + }, + { + "id": "4D1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4D1", + "name": "European Commission (including Eurostat)" + }, + { + "id": "4E0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4E0", + "name": "European Development Fund" + }, + { + "id": "4F0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4F0", + "name": "European Central Bank (ECB)" + }, + { + "id": "4G0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4G0", + "name": "EIF (European Investment Fund)" + }, + { + "id": "4H0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4H0", + "name": "European Community of Steel and Coal" + }, + { + "id": "4I0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4I0", + "name": "Neighbourhood Investment Facility" + }, + { + "id": "4J0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4J0", + "name": "Other EC Institutions, Organs and Organisms covered by General budget" + }, + { + "id": "4J10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4J10", + "name": "European Parliament" + }, + { + "id": "4J20", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4J20", + "name": "Council of the European Union" + }, + { + "id": "4J30", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4J30", + "name": "Court of Justice" + }, + { + "id": "4J40", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4J40", + "name": "Court of Auditors" + }, + { + "id": "4J50", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4J50", + "name": "European Council" + }, + { + "id": "4J60", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4J60", + "name": "Economic and Social Committee" + }, + { + "id": "4J70", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4J70", + "name": "Committee of Regions" + }, + { + "id": "4J80", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4J80", + "name": "Other European Community Institutions, Organs and Organisms" + }, + { + "id": "4K0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4K0", + "name": "European Parliament" + }, + { + "id": "4L0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4L0", + "name": "European Council" + }, + { + "id": "4M0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4M0", + "name": "Court of Justice" + }, + { + "id": "4N0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4N0", + "name": "Court of Auditors" + }, + { + "id": "4P0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4P0", + "name": "Economic and Social Committee" + }, + { + "id": "4Q0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4Q0", + "name": "Committee of Regions" + }, + { + "id": "4S0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4S0", + "name": "European Stability Mechanism (ESM)" + }, + { + "id": "4T0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4T0", + "name": "Joint Committee of the European Supervisory Authorities (ESAs)" + }, + { + "id": "4T1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4T1", + "name": "European Banking Agency (EBA, European Supervisory Authority)" + }, + { + "id": "4T10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4T10", + "name": "EBA (European Banking Authority)" + }, + { + "id": "4T2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4T2", + "name": "European Insurance and Occupational Pensions Authority (EIOPA, European Supervisory Authority)" + }, + { + "id": "4T20", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4T20", + "name": "ESMA (European Securities and Markets Authority)" + }, + { + "id": "4T3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4T3", + "name": "European Securities and Markets Agency (ESMA, European Supervisory Authority)" + }, + { + "id": "4T30", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4T30", + "name": "EIOPA (European Insurance and Occupational Pensions Authority)" + }, + { + "id": "4V0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4V0", + "name": "FEMIP (Facility for Euro-Mediterranean Investment and Partnership)" + }, + { + "id": "4Y0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4Y0", + "name": "All the European Union Institutions including the ECB and ESM" + }, + { + "id": "4Z0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).4Z0", + "name": "Other European Community Institutions, Organs and Organisms" + }, + { + "id": "5A0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5A0", + "name": "Organisation for Economic Cooperation and Development (OECD)" + }, + { + "id": "5B0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5B0", + "name": "Bank for International Settlements (BIS)" + }, + { + "id": "5C0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5C0", + "name": "Inter-American Development Bank" + }, + { + "id": "5D0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5D0", + "name": "African Development Bank" + }, + { + "id": "5E0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5E0", + "name": "Asian Development Bank" + }, + { + "id": "5F0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5F0", + "name": "European Bank for Reconstruction and Development" + }, + { + "id": "5G0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5G0", + "name": "IIC (Inter-American Investment Corporation)" + }, + { + "id": "5H0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5H0", + "name": "NIB (Nordic Investment Bank)" + }, + { + "id": "5I0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5I0", + "name": "Eastern Caribbean Central Bank (ECCB)" + }, + { + "id": "5J0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5J0", + "name": "IBEC (International Bank for Economic Co-operation)" + }, + { + "id": "5K0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5K0", + "name": "IIB (International Investment Bank)" + }, + { + "id": "5L0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5L0", + "name": "CDB (Caribbean Development Bank)" + }, + { + "id": "5M0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5M0", + "name": "AMF (Arab Monetary Fund)" + }, + { + "id": "5N0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5N0", + "name": "BADEA (Banque arabe pour le developpement economique en Afrique)" + }, + { + "id": "5O0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5O0", + "name": "Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO)" + }, + { + "id": "5P0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5P0", + "name": "CASDB (Central African States Development Bank)" + }, + { + "id": "5Q0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5Q0", + "name": "African Development Fund" + }, + { + "id": "5R0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5R0", + "name": "Asian Development Fund" + }, + { + "id": "5S0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5S0", + "name": "Fonds special unifie de developpement" + }, + { + "id": "5T0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5T0", + "name": "CABEI (Central American Bank for Economic Integration)" + }, + { + "id": "5U0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5U0", + "name": "ADC (Andean Development Corporation)" + }, + { + "id": "5V0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5V0", + "name": "Other International Organisations (financial institutions)" + }, + { + "id": "5W0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5W0", + "name": "Banque des Etats de l`Afrique Centrale (BEAC)" + }, + { + "id": "5X0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5X0", + "name": "Communaute economique et Monetaire de l`Afrique Centrale (CEMAC)" + }, + { + "id": "5Y0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5Y0", + "name": "Eastern Caribbean Currency Union (ECCU)" + }, + { + "id": "5Z0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).5Z0", + "name": "Other International Financial Organisations n.i.e." + }, + { + "id": "6A0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6A0", + "name": "Other International Organisations (non-financial institutions)" + }, + { + "id": "6B0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6B0", + "name": "NATO (North Atlantic Treaty Organisation)" + }, + { + "id": "6C0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6C0", + "name": "Council of Europe" + }, + { + "id": "6D0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6D0", + "name": "ICRC (International Committee of the Red Cross)" + }, + { + "id": "6E0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6E0", + "name": "ESA (European Space Agency)" + }, + { + "id": "6F0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6F0", + "name": "EPO (European Patent Office)" + }, + { + "id": "6G0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6G0", + "name": "EUROCONTROL (European Organisation for the Safety of Air Navigation)" + }, + { + "id": "6H0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6H0", + "name": "EUTELSAT (European Telecommunications Satellite Organisation)" + }, + { + "id": "6I0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6I0", + "name": "West African Economic and Monetary Union (WAEMU)" + }, + { + "id": "6J0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6J0", + "name": "INTELSAT (International Telecommunications Satellite Organisation)" + }, + { + "id": "6K0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6K0", + "name": "EBU/UER (European Broadcasting Union/Union europeenne de radio-television)" + }, + { + "id": "6L0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6L0", + "name": "EUMETSAT (European Organisation for the Exploitation of Meteorological Satellites)" + }, + { + "id": "6M0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6M0", + "name": "ESO (European Southern Observatory)" + }, + { + "id": "6N0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6N0", + "name": "ECMWF (European Centre for Medium-Range Weather Forecasts)" + }, + { + "id": "6O0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6O0", + "name": "Organisation for Economic Cooperation and Development (OECD)" + }, + { + "id": "6P0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6P0", + "name": "CERN (European Organisation for Nuclear Research)" + }, + { + "id": "6Q0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6Q0", + "name": "IOM (International Organisation for Migration)" + }, + { + "id": "6R0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6R0", + "name": "Islamic Development Bank (IDB)" + }, + { + "id": "6S0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6S0", + "name": "Eurasian Development Bank (EDB)" + }, + { + "id": "6T0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6T0", + "name": "Paris Club Creditor Institutions" + }, + { + "id": "6Z0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).6Z0", + "name": "Other International Non-Financial Organisations n.i.e." + }, + { + "id": "7A0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).7A0", + "name": "WAEMU (West African Economic and Monetary Union)" + }, + { + "id": "7B0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).7B0", + "name": "IDB (Islamic Development Bank)" + }, + { + "id": "7C0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).7C0", + "name": "EDB (Eurasian Development Bank )" + }, + { + "id": "7D0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).7D0", + "name": "Paris Club Creditor Institutions" + }, + { + "id": "7E0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).7E0", + "name": "CEB (Council of Europe Development Bank)" + }, + { + "id": "7F0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).7F0", + "name": "International Union of Credit and Investment Insurers" + }, + { + "id": "7G0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).7G0", + "name": "Black Sea Trade and Development Banks" + }, + { + "id": "7H0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).7H0", + "name": "AFREXIMBANK (African Export-Import Bank)" + }, + { + "id": "7I0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).7I0", + "name": "BLADEX (Banco Latino Americano De Comercio Exterior)" + }, + { + "id": "7J0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).7J0", + "name": "FLAR (Fondo Latino Americano de Reservas)" + }, + { + "id": "7K0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).7K0", + "name": "Fonds Belgo-Congolais d Amortissement et de Gestion" + }, + { + "id": "7L0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).7L0", + "name": "IFFIm (International finance Facility for Immunisation)" + }, + { + "id": "7M0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).7M0", + "name": "EUROFIMA (European Company for the Financing of Railroad Rolling Stock)" + }, + { + "id": "7Z0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).7Z0", + "name": "International Organisations excl. European Community Institutions (4A)" + }, + { + "id": "8A0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).8A0", + "name": "International Union of Credit and Investment Insurers" + }, + { + "id": "9A0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).9A0", + "name": "International Organisations excl. European Community Institutions (4Y)" + }, + { + "id": "AE1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AE1", + "name": "Central Statistical Organization, part of the Ministry of Economy and Planning (United Arab Emirates)" + }, + { + "id": "AE2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AE2", + "name": "Central Bank of the United Arab Emirates" + }, + { + "id": "AE4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AE4", + "name": "Ministry of Finance and Industry (United Arab Emirates)" + }, + { + "id": "AF2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AF2", + "name": "Da Afghanistan Bank" + }, + { + "id": "AF4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AF4", + "name": "Ministry of Finance (Afghanistan, Islamic State of)" + }, + { + "id": "AG2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AG2", + "name": "Eastern Caribbean Central Bank (ECCB) (Antigua and Barbuda)" + }, + { + "id": "AG4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AG4", + "name": "Ministry of Finance (Antigua and Barbuda)" + }, + { + "id": "AI1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AI1", + "name": "Central Statistical Office (Anguilla)" + }, + { + "id": "AI4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AI4", + "name": "Ministry of Finance (Anguilla)" + }, + { + "id": "AI99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AI99", + "name": "Other competent National Authority (Anguilla)" + }, + { + "id": "AL1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AL1", + "name": "Institution of Statistics (Albania)" + }, + { + "id": "AL2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AL2", + "name": "Bank of Albania" + }, + { + "id": "AL4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AL4", + "name": "Ministere des Finances (Albania)" + }, + { + "id": "AM1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AM1", + "name": "State National Statistics Service (Armenia)" + }, + { + "id": "AM2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AM2", + "name": "Central Bank of Armenia" + }, + { + "id": "AM4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AM4", + "name": "Ministry of Finance and Economy (Armenia)" + }, + { + "id": "AM99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AM99", + "name": "Other competent National Authority (Armenia, Republic of)" + }, + { + "id": "AN1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AN1", + "name": "Central Bureau of Statistics (Netherlands Antilles)" + }, + { + "id": "AN2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AN2", + "name": "Bank of the Netherlands Antilles" + }, + { + "id": "AN99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AN99", + "name": "Other competent National Authority (Netherlands Antilles)" + }, + { + "id": "AO1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AO1", + "name": "National Institute of Statistics (Angola)" + }, + { + "id": "AO2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AO2", + "name": "Banco Nacional de Angola" + }, + { + "id": "AO4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AO4", + "name": "Ministerio das Financas (Angola)" + }, + { + "id": "AR1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AR1", + "name": "Instituto Nacional de Estadistica y Censos (Argentina)" + }, + { + "id": "AR2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AR2", + "name": "Banco Central de la Republica Argentina" + }, + { + "id": "AR4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AR4", + "name": "Ministerio de Economia (Argentina)" + }, + { + "id": "AR99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AR99", + "name": "Other competent National Authority (Argentina)" + }, + { + "id": "AT1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AT1", + "name": "Statistik Osterreich (Austria)" + }, + { + "id": "AT2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AT2", + "name": "Oesterreichische Nationalbank (Austria)" + }, + { + "id": "AT6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AT6", + "name": "FMA (Austria Financial Market Authority)" + }, + { + "id": "AT99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AT99", + "name": "Other competent National Authority (Austria)" + }, + { + "id": "AU1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AU1", + "name": "Australian Bureau of Statistics" + }, + { + "id": "AU2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AU2", + "name": "Reserve Bank of Australia" + }, + { + "id": "AU3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AU3", + "name": "Australian Prudential Regulation Authority" + }, + { + "id": "AU5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AU5", + "name": "Department of the Treasury (Australia)" + }, + { + "id": "AU99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AU99", + "name": "Other competent National Authority (Australia)" + }, + { + "id": "AW1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AW1", + "name": "Central Bureau of Statistics (Aruba)" + }, + { + "id": "AW2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AW2", + "name": "Centrale Bank van Aruba" + }, + { + "id": "AW99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AW99", + "name": "Other competent National Authority (Aruba)" + }, + { + "id": "AZ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AZ1", + "name": "State Statistics Committee of the Azerbaijan Republic" + }, + { + "id": "AZ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AZ2", + "name": "National Bank of Azerbaijan" + }, + { + "id": "AZ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AZ4", + "name": "Ministry of Finance (Azerbaijan)" + }, + { + "id": "AZ99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).AZ99", + "name": "Other competent National Authority (Azerbaijan, Republic of)" + }, + { + "id": "B22", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).B22", + "name": "EU 15 central banks" + }, + { + "id": "B32", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).B32", + "name": "EU 25 central banks" + }, + { + "id": "B42", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).B42", + "name": "EU 27 central banks" + }, + { + "id": "B52", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).B52", + "name": "EU 28 central banks" + }, + { + "id": "BA1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BA1", + "name": "Institute of Statistics (Bosnia and Herzegovina)" + }, + { + "id": "BA2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BA2", + "name": "Central Bank of Bosnia and Herzegovina" + }, + { + "id": "BA4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BA4", + "name": "Ministry of Finance for the Federation of Bosnia and Herzegovina" + }, + { + "id": "BA99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BA99", + "name": "Other competent National Authority (Bosnia and Herzegovina)" + }, + { + "id": "BB1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BB1", + "name": "Barbados Statistical Service" + }, + { + "id": "BB2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BB2", + "name": "Central Bank of Barbados" + }, + { + "id": "BB4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BB4", + "name": "Ministry of Finance and Economic Affairs (Barbados)" + }, + { + "id": "BB99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BB99", + "name": "Other competent National Authority (Barbados)" + }, + { + "id": "BD1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BD1", + "name": "Bangladesh Bureau of Statistics" + }, + { + "id": "BD2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BD2", + "name": "Bangladesh Bank" + }, + { + "id": "BD4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BD4", + "name": "Ministry of Finance (Bangladesh)" + }, + { + "id": "BE1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BE1", + "name": "Institut National de Statistiques de Belgique (Belgium)" + }, + { + "id": "BE2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BE2", + "name": "Banque Nationale de Belgique (Belgium)" + }, + { + "id": "BE3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BE3", + "name": "Federal Public Service Budget (Belgium)" + }, + { + "id": "BE9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BE9", + "name": "Bureau van Dijk" + }, + { + "id": "BE99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BE99", + "name": "Other competent National Authority (Belgium)" + }, + { + "id": "BF2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BF2", + "name": "Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Burkina Faso)" + }, + { + "id": "BF4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BF4", + "name": "Ministere de l`Economie et des Finances (Burkina Faso)" + }, + { + "id": "BG1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BG1", + "name": "National Statistical Institute of Bulgaria" + }, + { + "id": "BG2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BG2", + "name": "Bulgarian National Bank" + }, + { + "id": "BG3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BG3", + "name": "Prime Ministers Office (Bulgaria)" + }, + { + "id": "BG4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BG4", + "name": "Ministry of Finance (Bulgaria)" + }, + { + "id": "BG99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BG99", + "name": "Other competent National Authority (Bulgaria)" + }, + { + "id": "BH1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BH1", + "name": "Directorate of Statistics (Bahrain)" + }, + { + "id": "BH2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BH2", + "name": "Bahrain Monetary Authority" + }, + { + "id": "BH4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BH4", + "name": "Ministry of Finance and National Economy (Bahrain)" + }, + { + "id": "BH99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BH99", + "name": "Other competent National Authority (Bahrain, Kingdom of)" + }, + { + "id": "BI2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BI2", + "name": "Banque de la Republique du Burundi" + }, + { + "id": "BI3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BI3", + "name": "Ministere du Plan (Burundi)" + }, + { + "id": "BI4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BI4", + "name": "Ministere des finances (Burundi)" + }, + { + "id": "BJ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BJ1", + "name": "Institut National de la Statistique et de l`Analyse Economique (Benin)" + }, + { + "id": "BJ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BJ2", + "name": "Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Benin)" + }, + { + "id": "BJ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BJ4", + "name": "Ministere des Finances (Benin)" + }, + { + "id": "BJ99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BJ99", + "name": "Other competent National Authority (Benin)" + }, + { + "id": "BM1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BM1", + "name": "Bermuda Government - Department of Statistics" + }, + { + "id": "BM2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BM2", + "name": "Bermuda Monetary Authority" + }, + { + "id": "BM99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BM99", + "name": "Other competent National Authority (Bermuda)" + }, + { + "id": "BN1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BN1", + "name": "Department of Statistics (Brunei Darussalam)" + }, + { + "id": "BN2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BN2", + "name": "Brunei Currency and Monetary Board (BCMB)" + }, + { + "id": "BN3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BN3", + "name": "Department of Economic Planning and Development (DEPD) (Brunei Darussalam)" + }, + { + "id": "BN4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BN4", + "name": "Ministry of Finance (Brunei Darussalam)" + }, + { + "id": "BN99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BN99", + "name": "Other competent National Authority (Brunei Darussalam)" + }, + { + "id": "BO1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BO1", + "name": "Instituto Nacional de Estadistica (Bolivia)" + }, + { + "id": "BO2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BO2", + "name": "Banco Central de Bolivia" + }, + { + "id": "BO3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BO3", + "name": "Secretaria Nacional de Hacienda (Bolivia)" + }, + { + "id": "BO4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BO4", + "name": "Ministerio de Hacienda (Bolivia)" + }, + { + "id": "BO99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BO99", + "name": "Other competent National Authority (Bolivia)" + }, + { + "id": "BR1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BR1", + "name": "Brazilian Institute of Statistics and Geography (IBGE) (Brazil)" + }, + { + "id": "BR2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BR2", + "name": "Banco Central do Brasil" + }, + { + "id": "BR3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BR3", + "name": "Ministry of Industry, Commerce and Tourism, Secretariat of Foreign Commerce (SECEX) (Brazil)" + }, + { + "id": "BR4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BR4", + "name": "Ministerio da Fazenda (Brazil)" + }, + { + "id": "BS1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BS1", + "name": "Department of Statistics (Bahamas)" + }, + { + "id": "BS2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BS2", + "name": "The Central Bank of the Bahamas" + }, + { + "id": "BS4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BS4", + "name": "Ministry of Finance (Bahamas)" + }, + { + "id": "BS99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BS99", + "name": "Other competent National Authority (Bahamas, The)" + }, + { + "id": "BT1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BT1", + "name": "Central Statistical Office (Bhutan)" + }, + { + "id": "BT2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BT2", + "name": "Royal Monetary Authority of Bhutan" + }, + { + "id": "BT4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BT4", + "name": "Ministry of Finance (Bhutan)" + }, + { + "id": "BW1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BW1", + "name": "Central Statistics Office (Botswana)" + }, + { + "id": "BW2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BW2", + "name": "Bank of Botswana" + }, + { + "id": "BW3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BW3", + "name": "Department of Customs and Excise (Botswana)" + }, + { + "id": "BW4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BW4", + "name": "Ministry of Finance and Development Planning (Botswana)" + }, + { + "id": "BY1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BY1", + "name": "Ministry of Statistics and Analysis of the Republic of Belarus" + }, + { + "id": "BY2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BY2", + "name": "National Bank of Belarus" + }, + { + "id": "BY4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BY4", + "name": "Ministry of Finance of the Republic of Belarus" + }, + { + "id": "BY99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BY99", + "name": "Other competent National Authority (Belarus)" + }, + { + "id": "BZ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BZ1", + "name": "Central Statistical Office (Belize)" + }, + { + "id": "BZ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BZ2", + "name": "Central Bank of Belize" + }, + { + "id": "BZ3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BZ3", + "name": "Ministry of Foreign Affairs (Belize)" + }, + { + "id": "BZ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BZ4", + "name": "Ministry of Finance (Belize)" + }, + { + "id": "BZ99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).BZ99", + "name": "Other competent National Authority (Belize)" + }, + { + "id": "C992", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).C992", + "name": "Central banks of the new EU Member States 2004 (CY,CZ,EE,HU,LV,LT,MT,PL,SK,SI)" + }, + { + "id": "CA1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CA1", + "name": "Statistics Canada" + }, + { + "id": "CA2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CA2", + "name": "Bank of Canada" + }, + { + "id": "CA99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CA99", + "name": "Other competent National Authority (Canada)" + }, + { + "id": "CD1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CD1", + "name": "Institute National de la Statistique (Congo, Dem. Rep. of)" + }, + { + "id": "CD2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CD2", + "name": "Banque Centrale du Congo (Congo, Dem. Rep. of)" + }, + { + "id": "CD4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CD4", + "name": "Ministry of Finance and Budget (Congo, Dem. Rep. of)" + }, + { + "id": "CD5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CD5", + "name": "National Office of Research and Development (Congo, Dem. Rep. of)" + }, + { + "id": "CD99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CD99", + "name": "Other competent National Authority (Congo, Democratic Republic of)" + }, + { + "id": "CF2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CF2", + "name": "Banque des Etats de l`Afrique Centrale (BEAC) (Central African Republic)" + }, + { + "id": "CF3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CF3", + "name": "Presidence de la Republique (Central African Republic)" + }, + { + "id": "CF4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CF4", + "name": "Ministere des Finances, du Plan et de la Cooperation International (Central African Republic)" + }, + { + "id": "CG1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CG1", + "name": "Centre National de la Statistique et des Etudes Economiques (CNSEE) (Congo, Rep of)" + }, + { + "id": "CG2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CG2", + "name": "Banque des Etats de l`Afrique Centrale (BEAC) (Congo, Rep. of)" + }, + { + "id": "CG4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CG4", + "name": "Ministere de l`economie, des finances et du budget (Congo, Rep of)" + }, + { + "id": "CG99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CG99", + "name": "Other competent National Authority (Congo, Republic of)" + }, + { + "id": "CH1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CH1", + "name": "Swiss Federal Statistical Office" + }, + { + "id": "CH2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CH2", + "name": "Schweizerische Nationalbank (Switzerland)" + }, + { + "id": "CH3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CH3", + "name": "Direction generale des douanes (Switzerland)" + }, + { + "id": "CH4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CH4", + "name": "Swiss Federal Finance Administration (Switzerland)" + }, + { + "id": "CH99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CH99", + "name": "Other competent National Authority (Switzerland)" + }, + { + "id": "CI2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CI2", + "name": "Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Cote d`Ivoire)" + }, + { + "id": "CI4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CI4", + "name": "Ministere de l`Economie et des Finances (Cote d`Ivoire)" + }, + { + "id": "CK1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CK1", + "name": "Cook Islands Statistics Office" + }, + { + "id": "CK4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CK4", + "name": "Cook Islands Ministry of Finance" + }, + { + "id": "CL2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CL2", + "name": "Banco Central de Chile" + }, + { + "id": "CL4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CL4", + "name": "Ministerio de Hacienda (Chile)" + }, + { + "id": "CM2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CM2", + "name": "Banque des Etats de l`Afrique Centrale (BEAC) (Cameroon)" + }, + { + "id": "CM3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CM3", + "name": "Ministere du Plan et de l`Amenagement du Territoire (Cameroon)" + }, + { + "id": "CM4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CM4", + "name": "Ministere de l`economie et des finances (Cameroon)" + }, + { + "id": "CN1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CN1", + "name": "State National Bureau of Statistics (China, P.R. Mainland)" + }, + { + "id": "CN2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CN2", + "name": "The Peoples Bank of China" + }, + { + "id": "CN3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CN3", + "name": "State Administration of Foreign Exchange (China, P.R. Mainland)" + }, + { + "id": "CN4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CN4", + "name": "Ministry of Finance (China, P.R. Mainland)" + }, + { + "id": "CN5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CN5", + "name": "General Administration of Customs (China, P.R. Mainland)" + }, + { + "id": "CN99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CN99", + "name": "Other competent National Authority (China, P.R., Mainland)" + }, + { + "id": "CO1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CO1", + "name": "Centro Administrativo Nacional (Colombia)" + }, + { + "id": "CO2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CO2", + "name": "Banco de la Republica (Colombia)" + }, + { + "id": "CO4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CO4", + "name": "Ministerio de Hacienda y Credito Publico (Colombia)" + }, + { + "id": "CO99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CO99", + "name": "Other competent National Authority (Colombia)" + }, + { + "id": "CR2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CR2", + "name": "Banco Central de Costa Rica" + }, + { + "id": "CR4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CR4", + "name": "Ministerio de Hacienda (Costa Rica)" + }, + { + "id": "CS1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CS1", + "name": "Federal Statistical Office (Serbia and Montenegro)" + }, + { + "id": "CS2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CS2", + "name": "National Bank of Serbia and Montenegro" + }, + { + "id": "CS4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CS4", + "name": "Federal Ministry of Finance (Serbia and Montenegro)" + }, + { + "id": "CS99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CS99", + "name": "Other competent National Authority (Serbia and Montenegro)" + }, + { + "id": "CU1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CU1", + "name": "Oficina National de Estadisticas (Cuba)" + }, + { + "id": "CU2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CU2", + "name": "Banco Central de Cuba" + }, + { + "id": "CU99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CU99", + "name": "Other competent National Authority (Cuba)" + }, + { + "id": "CV1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CV1", + "name": "Instituto Nacional de Estatistica (Cape Verde)" + }, + { + "id": "CV2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CV2", + "name": "Banco de Cabo Verde (Cape Verde)" + }, + { + "id": "CV3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CV3", + "name": "Ministere de la coordination economique (Cape Verde)" + }, + { + "id": "CV4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CV4", + "name": "Ministerio das Financas (Cape Verde)" + }, + { + "id": "CV99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CV99", + "name": "Other competent National Authority (Cape Verde)" + }, + { + "id": "CW1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CW1", + "name": "Central Bureau of Statistics (Curacao)" + }, + { + "id": "CW2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CW2", + "name": "Central Bank of Curacao and Sint Maarten" + }, + { + "id": "CW99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CW99", + "name": "Other competent National Authority (Curacao)" + }, + { + "id": "CY1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CY1", + "name": "Cyprus, Department of Statistics and Research (Ministry of Finance)" + }, + { + "id": "CY2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CY2", + "name": "Central Bank of Cyprus" + }, + { + "id": "CY4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CY4", + "name": "Ministry of Finance (Cyprus)" + }, + { + "id": "CY99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CY99", + "name": "Other competent National Authority (Cyprus)" + }, + { + "id": "CZ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CZ1", + "name": "Czech Statistical Office" + }, + { + "id": "CZ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CZ2", + "name": "Czech National Bank" + }, + { + "id": "CZ3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CZ3", + "name": "Ministry of Transport and Communications/Transport Policy (Czech Republic)" + }, + { + "id": "CZ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CZ4", + "name": "Ministry of Finance of the Czech Republic" + }, + { + "id": "CZ99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).CZ99", + "name": "Other competent National Authority (Czech Republic)" + }, + { + "id": "D22", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).D22", + "name": "EU 15 central banks" + }, + { + "id": "D32", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).D32", + "name": "EU 25 central banks" + }, + { + "id": "D82", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).D82", + "name": "Central banks of the new EU Member States 2004 (CY,CZ,EE,HU,LV,LT,MT,PL,SK,SI)" + }, + { + "id": "DE1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DE1", + "name": "Statistisches Bundesamt (Germany)" + }, + { + "id": "DE2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DE2", + "name": "Deutsche Bundesbank (Germany)" + }, + { + "id": "DE3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DE3", + "name": "Kraftfahrt-Bundesamt (Germany)" + }, + { + "id": "DE4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DE4", + "name": "Bundesministerium der Finanzen (Germany)" + }, + { + "id": "DE6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DE6", + "name": "BAFIN (Germany Federal Financial Supervisory Authority)" + }, + { + "id": "DE8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DE8", + "name": "IFO Institut fur Wirtschaftsforschung (Germany)" + }, + { + "id": "DE9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DE9", + "name": "Zentrum fur Europaische Wirtschaftsforschnung (ZEW, Germany)" + }, + { + "id": "DE99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DE99", + "name": "Other competent National Authority (Germany)" + }, + { + "id": "DJ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DJ1", + "name": "Direction Nationale de la Statistique (National Department of Statistics) (Djibouti)" + }, + { + "id": "DJ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DJ2", + "name": "Banque Nationale de Djibouti" + }, + { + "id": "DJ3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DJ3", + "name": "Tresor National (Djibouti)" + }, + { + "id": "DJ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DJ4", + "name": "Ministere de l`Economie et des Finances (Djibouti)" + }, + { + "id": "DK1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DK1", + "name": "Danmarks Statistik (Denmark)" + }, + { + "id": "DK2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DK2", + "name": "Danmarks Nationalbank (Denmark)" + }, + { + "id": "DK98", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DK98", + "name": "Danish Civil Aviation Administration" + }, + { + "id": "DK99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DK99", + "name": "Other competent National Authority (Denmark)" + }, + { + "id": "DM1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DM1", + "name": "Central Statistical Office (Dominica)" + }, + { + "id": "DM2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DM2", + "name": "Eastern Caribbean Central Bank (ECCB) (Dominica)" + }, + { + "id": "DM4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DM4", + "name": "Ministry of Finance (Dominica)" + }, + { + "id": "DM99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DM99", + "name": "Other competent National Authority (Dominica)" + }, + { + "id": "DO2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DO2", + "name": "Banco Central de la Republica Dominicana" + }, + { + "id": "DZ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DZ1", + "name": "Office National des Statistiques (Algeria)" + }, + { + "id": "DZ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DZ2", + "name": "Banque d`Algerie" + }, + { + "id": "DZ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DZ4", + "name": "Ministere des Finances (Algeria)" + }, + { + "id": "DZ99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).DZ99", + "name": "Other competent National Authority (Algeria)" + }, + { + "id": "EC1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).EC1", + "name": "Instituto Nacional de Estadistica y Censos (Ecuador)" + }, + { + "id": "EC2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).EC2", + "name": "Banco Central del Ecuador" + }, + { + "id": "EC4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).EC4", + "name": "Ministerio de Finanzas y Credito Publico (Ecuador)" + }, + { + "id": "EC99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).EC99", + "name": "Other competent National Authority (Ecuador)" + }, + { + "id": "EE1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).EE1", + "name": "Estonia, State Statistical Office" + }, + { + "id": "EE2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).EE2", + "name": "Bank of Estonia" + }, + { + "id": "EE4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).EE4", + "name": "Ministry of Finance (Estonia)" + }, + { + "id": "EE99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).EE99", + "name": "Other competent National Authority (Estonia)" + }, + { + "id": "EG1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).EG1", + "name": "Central Agency for Public Mobilization and Stats. (Egypt)" + }, + { + "id": "EG2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).EG2", + "name": "Central Bank of Egypt" + }, + { + "id": "EG4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).EG4", + "name": "Ministry of Finance (Egypt)" + }, + { + "id": "EG99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).EG99", + "name": "Other competent National Authority (Egypt)" + }, + { + "id": "ER2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ER2", + "name": "Bank of Eritrea" + }, + { + "id": "ER4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ER4", + "name": "Ministry of Finance (Eritrea)" + }, + { + "id": "ES1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ES1", + "name": "Instituto Nacional de Statistica (Spain)" + }, + { + "id": "ES2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ES2", + "name": "Banco de Espana (Spain)" + }, + { + "id": "ES3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ES3", + "name": "Departamento de Aduanas (Spain)" + }, + { + "id": "ES4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ES4", + "name": "Ministerio de Economia y Hacienda (Spain)" + }, + { + "id": "ES5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ES5", + "name": "Ministerio de Industria, Tourismo y Comerco (Spain)" + }, + { + "id": "ES97", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ES97", + "name": "Puertos del Estado/Portel Spain" + }, + { + "id": "ES98", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ES98", + "name": "Ministerio de Fomento - AENA" + }, + { + "id": "ES99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ES99", + "name": "Other competent National Authority (Spain)" + }, + { + "id": "ET2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ET2", + "name": "National Bank of Ethiopia" + }, + { + "id": "ET3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ET3", + "name": "Customs and Excise Administration (Ethiopia)" + }, + { + "id": "ET4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ET4", + "name": "Ministry of Finance (Ethiopia)" + }, + { + "id": "FI1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FI1", + "name": "Statistics Finland (Finland)" + }, + { + "id": "FI2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FI2", + "name": "Bank of Finland (Finland)" + }, + { + "id": "FI3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FI3", + "name": "National Board of Customs (Finland)" + }, + { + "id": "FI4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FI4", + "name": "Ministry of Finance ((Finland)" + }, + { + "id": "FI97", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FI97", + "name": "Finnish Maritime Administration" + }, + { + "id": "FI98", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FI98", + "name": "Finavia(Civil Aviation Administration)" + }, + { + "id": "FI99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FI99", + "name": "Other competent National Authority (Finland)" + }, + { + "id": "FJ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FJ1", + "name": "Bureau of Statistics (Fiji)" + }, + { + "id": "FJ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FJ2", + "name": "Reserve Bank of Fiji" + }, + { + "id": "FJ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FJ4", + "name": "Ministry of Finance and National Planning (Fiji)" + }, + { + "id": "FJ99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FJ99", + "name": "Other competent National Authority (Fiji)" + }, + { + "id": "FM1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FM1", + "name": "Office of Planning and Statistics (Micronesia, Federated States of)" + }, + { + "id": "FM2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FM2", + "name": "Federal States of Micronesia Banking Board (Micronesia, Federated States of)" + }, + { + "id": "FM99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FM99", + "name": "Other competent National Authority (Micronesia, Federated States of)" + }, + { + "id": "FR1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FR1", + "name": "Institut National de la Statistique et des Etudes Economiques - INSEE (France)" + }, + { + "id": "FR2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FR2", + "name": "Banque de France (France)" + }, + { + "id": "FR3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FR3", + "name": "Ministere de l Equipement, des Transports et du Logement (France)" + }, + { + "id": "FR4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FR4", + "name": "Ministere de l`Economie et des Finances (France)" + }, + { + "id": "FR5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FR5", + "name": "Direction generale des douanes (France)" + }, + { + "id": "FR6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FR6", + "name": "National Council of Credit (France)" + }, + { + "id": "FR97", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FR97", + "name": "DTMPL France" + }, + { + "id": "FR98", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FR98", + "name": "DGAC(Direction General de l`Aviation Civil)" + }, + { + "id": "FR99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).FR99", + "name": "Other competent National Authority (France)" + }, + { + "id": "GA2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GA2", + "name": "Banque des Etats de l`Afrique Centrale (BEAC) (Gabon)" + }, + { + "id": "GA3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GA3", + "name": "Ministere du Plan (Gabon)" + }, + { + "id": "GA4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GA4", + "name": "Ministry of Economy, Finance and Privatization (Gabon)" + }, + { + "id": "GA5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GA5", + "name": "Tresorier-Payeur General du Gabon" + }, + { + "id": "GB1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GB1", + "name": "Office for National Statistics (United Kingdom)" + }, + { + "id": "GB2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GB2", + "name": "Bank of England (United Kingdom)" + }, + { + "id": "GB3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GB3", + "name": "Department of Environment, Transport and the Regions (United Kingdom)" + }, + { + "id": "GB4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GB4", + "name": "Department of Trade and Industry (United Kingdom)" + }, + { + "id": "GB9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GB9", + "name": "Markit (United Kingdom)" + }, + { + "id": "GB98", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GB98", + "name": "CAA (Civil Aviation Authority)" + }, + { + "id": "GB99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GB99", + "name": "Other competent National Authority (United Kingdom)" + }, + { + "id": "GD2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GD2", + "name": "Eastern Caribbean Central Bank (ECCB) (Grenada)" + }, + { + "id": "GD4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GD4", + "name": "Ministry of Finance (Grenada)" + }, + { + "id": "GE1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GE1", + "name": "State Department for Statistics of Georgia" + }, + { + "id": "GE2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GE2", + "name": "National Bank of Georgia" + }, + { + "id": "GE4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GE4", + "name": "Ministry of Finance (Georgia)" + }, + { + "id": "GE99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GE99", + "name": "Other competent National Authority (Georgia)" + }, + { + "id": "GF1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GF1", + "name": "Institut National de la Statistique et des Etudes Economiques - INSEE - Service regional (Guiana, French)" + }, + { + "id": "GF99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GF99", + "name": "Other competent National Authority (Guiana, French)" + }, + { + "id": "GG6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GG6", + "name": "Financial Services Commission, Guernsey (GG)" + }, + { + "id": "GH1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GH1", + "name": "Ghana Statistical Service" + }, + { + "id": "GH2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GH2", + "name": "Bank of Ghana" + }, + { + "id": "GH4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GH4", + "name": "Ministry of Finance (Ghana)" + }, + { + "id": "GH99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GH99", + "name": "Other competent National Authority (Ghana)" + }, + { + "id": "GM1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GM1", + "name": "Central Statistics Division (Gambia)" + }, + { + "id": "GM2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GM2", + "name": "Central Bank of The Gambia" + }, + { + "id": "GM4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GM4", + "name": "Ministry of Finance and Economic Affairs (Gambia)" + }, + { + "id": "GN1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GN1", + "name": "Service de la Statistique generale et de la Mecanographie (Guinea)" + }, + { + "id": "GN2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GN2", + "name": "Banque Centrale de la Republique de Guinee" + }, + { + "id": "GN4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GN4", + "name": "Ministere de l`Economie et des Finances (Guinea)" + }, + { + "id": "GN99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GN99", + "name": "Other competent National Authority (Guinea)" + }, + { + "id": "GP1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GP1", + "name": "Institut National de la Statistique et des Etudes Economiques - INSEE -Service regional (Guadeloupe)" + }, + { + "id": "GP99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GP99", + "name": "Other competent National Authority (Guadeloupe)" + }, + { + "id": "GQ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GQ2", + "name": "Banque des Etats de l`Afrique Centrale (BEAC) (Equatorial Guinea)" + }, + { + "id": "GQ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GQ4", + "name": "Ministerio de Economia y Hacienda (Equatorial Guinea)" + }, + { + "id": "GR1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GR1", + "name": "National Statistical Service of Greece (Greece)" + }, + { + "id": "GR2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GR2", + "name": "Bank of Greece (Greece)" + }, + { + "id": "GR4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GR4", + "name": "Ministry of Economy and Finance (Greece)" + }, + { + "id": "GR98", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GR98", + "name": "Civil Aviation Authority" + }, + { + "id": "GR99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GR99", + "name": "Other competent National Authority (Greece)" + }, + { + "id": "GT1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GT1", + "name": "Instituto Nacional de Estadistica (Guatemala)" + }, + { + "id": "GT2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GT2", + "name": "Banco de Guatemala" + }, + { + "id": "GT4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GT4", + "name": "Ministerio de Finanzas Publicas (Guatemala)" + }, + { + "id": "GT99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GT99", + "name": "Other competent National Authority (Guatemala)" + }, + { + "id": "GU1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GU1", + "name": "Guam Bureau of Statistics" + }, + { + "id": "GW2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GW2", + "name": "Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Guinea-Bissau)" + }, + { + "id": "GW4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GW4", + "name": "Ministere de l`Economie et des Finances (Guinea-Bissau)" + }, + { + "id": "GY1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GY1", + "name": "Statistical Bureau / Ministry of Planning (Guyana)" + }, + { + "id": "GY2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GY2", + "name": "Bank of Guyana" + }, + { + "id": "GY4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GY4", + "name": "Ministry of Finance (Guyana)" + }, + { + "id": "GY99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).GY99", + "name": "Other competent National Authority (Guyana)" + }, + { + "id": "HK1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HK1", + "name": "Census and Statistics Department (China, P.R. Hong Kong)" + }, + { + "id": "HK2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HK2", + "name": "Hong Kong Monetary Authority" + }, + { + "id": "HK4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HK4", + "name": "Financial Services and the Treasury Bureau (Treasury) (China, P.R. Hong Kong)" + }, + { + "id": "HK99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HK99", + "name": "Other competent National Authority (Hong Kong)" + }, + { + "id": "HN1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HN1", + "name": "Direccion General de Censos y Estadisticas (Honduras)" + }, + { + "id": "HN2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HN2", + "name": "Banco Central de Honduras" + }, + { + "id": "HN4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HN4", + "name": "Ministerio de Hacienda y Credito Publico (Honduras)" + }, + { + "id": "HN99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HN99", + "name": "Other competent National Authority (Honduras)" + }, + { + "id": "HR1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HR1", + "name": "Central Bureau of Statistics (Croatia)" + }, + { + "id": "HR2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HR2", + "name": "Croatian National Bank" + }, + { + "id": "HR4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HR4", + "name": "Ministry of Finance (Croatia)" + }, + { + "id": "HR99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HR99", + "name": "Other competent National Authority (Croatia)" + }, + { + "id": "HT1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HT1", + "name": "Institut Haitien de Statistique et d`Informatique (Haiti)" + }, + { + "id": "HT2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HT2", + "name": "Banque de la Republique dHaiti" + }, + { + "id": "HT4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HT4", + "name": "Ministere de l`Economie et des Finances (Haiti)" + }, + { + "id": "HT99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HT99", + "name": "Other competent National Authority (Haiti)" + }, + { + "id": "HU1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HU1", + "name": "Hungarian Central Statistical Office" + }, + { + "id": "HU2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HU2", + "name": "National Bank of Hungary" + }, + { + "id": "HU4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HU4", + "name": "Ministry of Finance (Hungary)" + }, + { + "id": "HU99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).HU99", + "name": "Other competent National Authority (Hungary)" + }, + { + "id": "I22", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).I22", + "name": "Euro area 12 central banks" + }, + { + "id": "I32", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).I32", + "name": "Euro area 13 central banks" + }, + { + "id": "I42", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).I42", + "name": "Euro area 15 central banks" + }, + { + "id": "I52", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).I52", + "name": "Euro area 16 central banks" + }, + { + "id": "I62", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).I62", + "name": "Euro area 17 central banks" + }, + { + "id": "I72", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).I72", + "name": "Euro area 18 central banks" + }, + { + "id": "I82", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).I82", + "name": "Euro area 19 central banks" + }, + { + "id": "ID1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ID1", + "name": "BPS-Statistics Indonesia" + }, + { + "id": "ID2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ID2", + "name": "Bank Indonesia" + }, + { + "id": "ID4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ID4", + "name": "Ministry of Finance (Indonesia)" + }, + { + "id": "ID99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ID99", + "name": "Other competent National Authority (Indonesia)" + }, + { + "id": "IE1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IE1", + "name": "Central Statistical Office (Ireland)" + }, + { + "id": "IE2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IE2", + "name": "Central Bank of Ireland (Ireland)" + }, + { + "id": "IE3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IE3", + "name": "The Office of the Revenue Commissioners (Ireland)" + }, + { + "id": "IE4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IE4", + "name": "Department of Finance (Ireland)" + }, + { + "id": "IE99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IE99", + "name": "Other competent National Authority (Ireland)" + }, + { + "id": "IL1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IL1", + "name": "Central Bureau of Statistics (Israel)" + }, + { + "id": "IL2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IL2", + "name": "Bank of Israel" + }, + { + "id": "IL99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IL99", + "name": "Other competent National Authority (Israel)" + }, + { + "id": "IM6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IM6", + "name": "Financial Supervision Commission, Isle of Man (IM)" + }, + { + "id": "IN2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IN2", + "name": "Reserve Bank of India" + }, + { + "id": "IN4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IN4", + "name": "Ministry of Finance (India)" + }, + { + "id": "IQ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IQ2", + "name": "Central Bank of Iraq" + }, + { + "id": "IQ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IQ4", + "name": "Ministry of Finance (Iraq)" + }, + { + "id": "IR2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IR2", + "name": "The Central Bank of the Islamic Republic of Iran" + }, + { + "id": "IS1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IS1", + "name": "Statistics Iceland" + }, + { + "id": "IS2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IS2", + "name": "Central Bank of Iceland" + }, + { + "id": "IS98", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IS98", + "name": "Civil Aviation Administration" + }, + { + "id": "IS99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IS99", + "name": "Other competent National Authority (Iceland)" + }, + { + "id": "IT1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IT1", + "name": "Instituto Nazionale di Statistica - ISTAT (Italy)" + }, + { + "id": "IT2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IT2", + "name": "Banca d` Italia (Italy)" + }, + { + "id": "IT3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IT3", + "name": "Ufficio Italiano dei Cambi (Italy)" + }, + { + "id": "IT4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IT4", + "name": "Ministerio de Tesore (Italy)" + }, + { + "id": "IT9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IT9", + "name": "Instituto di Studi e Analisi Economica (Italy)" + }, + { + "id": "IT99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).IT99", + "name": "Other competent National Authority (Italy)" + }, + { + "id": "JE6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).JE6", + "name": "Financial Services Commission, Jersey (JE)" + }, + { + "id": "JM1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).JM1", + "name": "Statistical Institute of Jamaica" + }, + { + "id": "JM2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).JM2", + "name": "Bank of Jamaica" + }, + { + "id": "JM4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).JM4", + "name": "Ministry of Finance and Planning (Jamaica)" + }, + { + "id": "JM99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).JM99", + "name": "Other competent National Authority (Jamaica)" + }, + { + "id": "JO1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).JO1", + "name": "Department of Statistics (Jordon)" + }, + { + "id": "JO2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).JO2", + "name": "Central Bank of Jordan" + }, + { + "id": "JO4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).JO4", + "name": "Ministry of Finance (Jordon)" + }, + { + "id": "JO99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).JO99", + "name": "Other competent National Authority (Jordan)" + }, + { + "id": "JP1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).JP1", + "name": "Bureau of Statistics (Japan)" + }, + { + "id": "JP2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).JP2", + "name": "Bank of Japan" + }, + { + "id": "JP4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).JP4", + "name": "Ministry of Finance (Japan)" + }, + { + "id": "JP6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).JP6", + "name": "Financial Services Agency (Japan)" + }, + { + "id": "KE1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KE1", + "name": "Central Bureau of Statistics (Kenya)" + }, + { + "id": "KE2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KE2", + "name": "Central Bank of Kenya" + }, + { + "id": "KE3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KE3", + "name": "Ministry of Planning and National Development (Kenya)" + }, + { + "id": "KE4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KE4", + "name": "Office of the Vice President and Ministry of Finance (Kenya)" + }, + { + "id": "KE99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KE99", + "name": "Other competent National Authority (Kenya)" + }, + { + "id": "KG1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KG1", + "name": "National Statistical Committee of Kyrgyz Republic" + }, + { + "id": "KG2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KG2", + "name": "National Bank of the Kyrgyz Republic" + }, + { + "id": "KG4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KG4", + "name": "Ministry of Finance (Kyrgyz Republic)" + }, + { + "id": "KG99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KG99", + "name": "Other competent National Authority (Kyrgyz Republic)" + }, + { + "id": "KH1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KH1", + "name": "National Institute of Statistics (Cambodia)" + }, + { + "id": "KH2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KH2", + "name": "National Bank of Cambodia" + }, + { + "id": "KH4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KH4", + "name": "Ministere de l`economie et des finances (Cambodia)" + }, + { + "id": "KI2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KI2", + "name": "Bank of Kiribati, Ltd" + }, + { + "id": "KI4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KI4", + "name": "Ministry of Finance and Economic Planning (Kiribati)" + }, + { + "id": "KM2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KM2", + "name": "Banque Centrale des Comoros" + }, + { + "id": "KM4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KM4", + "name": "Ministere des Finances, du budget et du plan (Comoros)" + }, + { + "id": "KN1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KN1", + "name": "Statistical Office (St. Kitts and Nevis)" + }, + { + "id": "KN2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KN2", + "name": "Eastern Caribbean Central Bank (ECCB) (St. Kitts and Nevis)" + }, + { + "id": "KN4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KN4", + "name": "Ministry of Finance (St. Kitts and Nevis)" + }, + { + "id": "KR1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KR1", + "name": "Korea National Statistical Office (KNSO)" + }, + { + "id": "KR2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KR2", + "name": "The Bank of Korea" + }, + { + "id": "KR3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KR3", + "name": "Economic Planning Board (Korea, Republic of)" + }, + { + "id": "KR4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KR4", + "name": "Ministry of Finance and Economy (Korea, Republic of)" + }, + { + "id": "KW1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KW1", + "name": "Statistics and Information Technology Sector (Kuwait)" + }, + { + "id": "KW2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KW2", + "name": "Central Bank of Kuwait" + }, + { + "id": "KW4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KW4", + "name": "Ministry of Finance (Kuwait)" + }, + { + "id": "KW99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KW99", + "name": "Other competent National Authority (Kuwait)" + }, + { + "id": "KY1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KY1", + "name": "Department of Finance and Development / Statistical Office (Cayman Islands)" + }, + { + "id": "KY2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KY2", + "name": "Cayman Islands Monetary Authority" + }, + { + "id": "KY99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KY99", + "name": "Other competent National Authority (Cayman Islands)" + }, + { + "id": "KZ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KZ1", + "name": "National Statistical Agency / Ministry of Economy and Trade of the Republic of Kazakhstan" + }, + { + "id": "KZ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KZ2", + "name": "National Bank of the Republic of Kazakhstan" + }, + { + "id": "KZ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KZ4", + "name": "Ministry of Finance (Kazakhstan)" + }, + { + "id": "KZ99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).KZ99", + "name": "Other competent National Authority (Kazakhstan)" + }, + { + "id": "LA2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LA2", + "name": "Bank of the Lao P.D.R." + }, + { + "id": "LA4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LA4", + "name": "Ministry of Finance (Lao Peoples Democratic Republic)" + }, + { + "id": "LB1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LB1", + "name": "Central Administration of Statistics (Lebanon)" + }, + { + "id": "LB2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LB2", + "name": "Banque du Liban (Lebanon)" + }, + { + "id": "LB4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LB4", + "name": "Ministere des finances (Lebanon)" + }, + { + "id": "LB99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LB99", + "name": "Other competent National Authority (Lebanon)" + }, + { + "id": "LC1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LC1", + "name": "Statistical Office (St. Lucia)" + }, + { + "id": "LC2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LC2", + "name": "Eastern Caribbean Central Bank (ECCB) (St. Lucia)" + }, + { + "id": "LC4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LC4", + "name": "Ministry of Finance, International Financial Services and Economic Affairs (St. Lucia)" + }, + { + "id": "LI1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LI1", + "name": "Amt fur Volkswirtschaft" + }, + { + "id": "LI99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LI99", + "name": "Other competent National Authority (Liechtenstein)" + }, + { + "id": "LK2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LK2", + "name": "Central Bank of Sri Lanka" + }, + { + "id": "LR1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LR1", + "name": "Ministry of Planning and Economic Affairs (Liberia)" + }, + { + "id": "LR2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LR2", + "name": "Central Bank of Liberia" + }, + { + "id": "LR4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LR4", + "name": "Ministry of Finance (Liberia)" + }, + { + "id": "LR99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LR99", + "name": "Other competent National Authority (Liberia)" + }, + { + "id": "LS1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LS1", + "name": "Bureau of Statistics (Lesotho)" + }, + { + "id": "LS2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LS2", + "name": "Central Bank of Lesotho" + }, + { + "id": "LS4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LS4", + "name": "Ministry of Finance (Lesotho)" + }, + { + "id": "LT1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LT1", + "name": "Lithuania, Department of Statistics" + }, + { + "id": "LT2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LT2", + "name": "Bank of Lithuania" + }, + { + "id": "LT4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LT4", + "name": "Ministry of Finance (Lithuania)" + }, + { + "id": "LT99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LT99", + "name": "Other competent National Authority (Lithuania)" + }, + { + "id": "LU1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LU1", + "name": "STATEC - Service central de la statistique et des etudes economiques du Luxembourg" + }, + { + "id": "LU2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LU2", + "name": "Banque centrale du Luxembourg" + }, + { + "id": "LU6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LU6", + "name": "CSSF (Luxembourg Financial Sector Surveillance Commission)" + }, + { + "id": "LU99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LU99", + "name": "Other competent National Authority (Luxembourg)" + }, + { + "id": "LV1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LV1", + "name": "Central Statistical Bureau of Latvia" + }, + { + "id": "LV2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LV2", + "name": "Bank of Latvia" + }, + { + "id": "LV3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LV3", + "name": "The Treasury of the Republic of Latvia" + }, + { + "id": "LV6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LV6", + "name": "FCMC (Latvia Financial and Capital Market Commission)" + }, + { + "id": "LV99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LV99", + "name": "Other competent National Authority (Latvia)" + }, + { + "id": "LY1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LY1", + "name": "The National Corporation for Information and Documentation (Libya)" + }, + { + "id": "LY2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LY2", + "name": "Central Bank of Libya" + }, + { + "id": "LY3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LY3", + "name": "General Peoples Secretariat of the Treasury (Libya)" + }, + { + "id": "LY4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LY4", + "name": "General Directorate for Economic and Social Planning (Libya)" + }, + { + "id": "LY5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LY5", + "name": "The National Corporation for Information and Documentation (Libya)" + }, + { + "id": "LY99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).LY99", + "name": "Other competent National Authority (Libya)" + }, + { + "id": "MA1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MA1", + "name": "Ministere de la Prevision Economique et du Plan (Morocco)" + }, + { + "id": "MA2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MA2", + "name": "Bank Al-Maghrib (Morocco)" + }, + { + "id": "MA4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MA4", + "name": "Ministere de l`Economie, des Finances, de la Privatisation et du Tourisme (Morocco)" + }, + { + "id": "MA5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MA5", + "name": "Office des Changes (Morocco)" + }, + { + "id": "MA99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MA99", + "name": "Other competent National Authority (Morocco)" + }, + { + "id": "MC1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MC1", + "name": "Statistical Office (Monaco)" + }, + { + "id": "MC99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MC99", + "name": "Other competent National Authority (Monaco)" + }, + { + "id": "MD1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MD1", + "name": "State Depart. of Statist. of the Rep. of Moldova" + }, + { + "id": "MD2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MD2", + "name": "National Bank of Moldova" + }, + { + "id": "MD4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MD4", + "name": "Ministry of Finance (Moldova)" + }, + { + "id": "MD99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MD99", + "name": "Other competent National Authority (Moldova)" + }, + { + "id": "ME1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ME1", + "name": "Statistical Office (Montenegro)" + }, + { + "id": "ME2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ME2", + "name": "Central Bank of Montenegro" + }, + { + "id": "MG1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MG1", + "name": "INSTAT/Exchanges Commerciaux et des Services (Madagascar)" + }, + { + "id": "MG2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MG2", + "name": "Banque Centrale de Madagascar" + }, + { + "id": "MG4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MG4", + "name": "Ministere des finances de l`Economie (Madagascar)" + }, + { + "id": "MG99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MG99", + "name": "Other competent National Authority (Madagascar)" + }, + { + "id": "MH4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MH4", + "name": "Ministry of Finance (Marshall Islands, Rep)" + }, + { + "id": "MK1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MK1", + "name": "State Statistical Office (Macedonia)" + }, + { + "id": "MK2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MK2", + "name": "National Bank of the Republic of Macedonia" + }, + { + "id": "MK4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MK4", + "name": "Ministry of Finance (Macedonia)" + }, + { + "id": "MK99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MK99", + "name": "Other competent National Authority (Macedonia, FYR)" + }, + { + "id": "ML1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ML1", + "name": "Direction Nationale de la Statistique et de l`Informatique (DNSI) (Mali)" + }, + { + "id": "ML2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ML2", + "name": "Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Mali)" + }, + { + "id": "ML4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ML4", + "name": "Ministere des Finances et du Commerce (Mali)" + }, + { + "id": "ML99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ML99", + "name": "Other competent National Authority (Mali)" + }, + { + "id": "MM1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MM1", + "name": "Central Statistical Organization (Myanmar)" + }, + { + "id": "MM2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MM2", + "name": "Central Bank of Myanmar" + }, + { + "id": "MM4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MM4", + "name": "Ministry of Finance and Revenue (Myanmar)" + }, + { + "id": "MM99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MM99", + "name": "Other competent National Authority (Myanmar)" + }, + { + "id": "MN1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MN1", + "name": "National Statistical Office (Mongolia)" + }, + { + "id": "MN2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MN2", + "name": "Bank of Mongolia" + }, + { + "id": "MN4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MN4", + "name": "Ministry of Finance and Economy (Mongolia)" + }, + { + "id": "MN99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MN99", + "name": "Other competent National Authority (Mongolia)" + }, + { + "id": "MO1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MO1", + "name": "Statistics and Census Department (China, P.R. Macao)" + }, + { + "id": "MO2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MO2", + "name": "Monetary Authority of Macau (China, P.R. Macao)" + }, + { + "id": "MO3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MO3", + "name": "Revenue Bureau of Macao" + }, + { + "id": "MO4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MO4", + "name": "Departamento de Estudos e Planeamento Financeiro (China, P.R. Macao)" + }, + { + "id": "MO99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MO99", + "name": "Other competent National Authority (China,P.R., Macao)" + }, + { + "id": "MQ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MQ1", + "name": "Department of Statistics (Martinique)" + }, + { + "id": "MQ99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MQ99", + "name": "Other competent National Authority (Martinique)" + }, + { + "id": "MR1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MR1", + "name": "Department of Statistics and Economic Studies (Mauritania)" + }, + { + "id": "MR2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MR2", + "name": "Banque Centrale de Mauritanie" + }, + { + "id": "MR3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MR3", + "name": "Ministere du Plan (Mauritania)" + }, + { + "id": "MR4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MR4", + "name": "Ministere des Finances (Mauritania)" + }, + { + "id": "MT1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MT1", + "name": "Malta - Central Office of Statistics" + }, + { + "id": "MT2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MT2", + "name": "Central Bank of Malta" + }, + { + "id": "MT4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MT4", + "name": "Ministry of Finance (Malta)" + }, + { + "id": "MT6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MT6", + "name": "MFSA (Malta Financial Services Authority)" + }, + { + "id": "MT97", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MT97", + "name": "Malta Maritime Authority" + }, + { + "id": "MT98", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MT98", + "name": "Malta International Airport" + }, + { + "id": "MT99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MT99", + "name": "Other competent National Authority (Malta)" + }, + { + "id": "MU1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MU1", + "name": "Central Statistical Office (Mauritius)" + }, + { + "id": "MU2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MU2", + "name": "Bank of Mauritius" + }, + { + "id": "MU99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MU99", + "name": "Other competent National Authority (Mauritius)" + }, + { + "id": "MV2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MV2", + "name": "Maldives Monetary Authority (Maldives)" + }, + { + "id": "MV3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MV3", + "name": "Ministry of Planning and Development (Maldives)" + }, + { + "id": "MV4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MV4", + "name": "Ministry of Finance and Treasury (Maldives)" + }, + { + "id": "MW1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MW1", + "name": "National Statistical Office (Malawi)" + }, + { + "id": "MW2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MW2", + "name": "Reserve Bank of Malawi" + }, + { + "id": "MW4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MW4", + "name": "Ministry of Finance (Malawi)" + }, + { + "id": "MW99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MW99", + "name": "Other competent National Authority (Malawi)" + }, + { + "id": "MX1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MX1", + "name": "Instituto Nacional de Estadisticas (INEGI) (Mexico)" + }, + { + "id": "MX2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MX2", + "name": "Banco de Mexico" + }, + { + "id": "MX4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MX4", + "name": "Secretaria de Hacienda y Credito Publico (Mexico)" + }, + { + "id": "MX99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MX99", + "name": "Other competent National Authority (Mexico)" + }, + { + "id": "MY1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MY1", + "name": "Department of Statistics Malaysia" + }, + { + "id": "MY2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MY2", + "name": "Bank Negara Malaysia" + }, + { + "id": "MY99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MY99", + "name": "Other competent National Authority (Malaysia)" + }, + { + "id": "MZ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MZ1", + "name": "Direccao Nacional de Estatistica (Mozambique)" + }, + { + "id": "MZ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MZ2", + "name": "Banco de Mocambique" + }, + { + "id": "MZ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MZ4", + "name": "Ministry of Planning and Finance (Mozambique)" + }, + { + "id": "MZ99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).MZ99", + "name": "Other competent National Authority (Mozambique)" + }, + { + "id": "NA1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NA1", + "name": "Central Bureau of Statistics (Namibia)" + }, + { + "id": "NA2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NA2", + "name": "Bank of Namibia" + }, + { + "id": "NA4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NA4", + "name": "Ministry of Finance (Namibia)" + }, + { + "id": "NC1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NC1", + "name": "Institut Territorial de la Statistique et des Etudes Economiques (New Caledonia)" + }, + { + "id": "NC99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NC99", + "name": "Other competent National Authority (French Territories, New Caledonia)" + }, + { + "id": "NE2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NE2", + "name": "Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Niger)" + }, + { + "id": "NE3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NE3", + "name": "Ministere du Plan (Niger)" + }, + { + "id": "NE4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NE4", + "name": "Ministere des Finances (Niger)" + }, + { + "id": "NG1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NG1", + "name": "Federal Office of Statistics (Nigeria)" + }, + { + "id": "NG2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NG2", + "name": "Central Bank of Nigeria" + }, + { + "id": "NG4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NG4", + "name": "Federal Ministry of Finance (Nigeria)" + }, + { + "id": "NG99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NG99", + "name": "Other competent National Authority (Nigeria)" + }, + { + "id": "NI2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NI2", + "name": "Banco Central de Nicaragua" + }, + { + "id": "NI4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NI4", + "name": "Ministerio de Hacienda y Credito Publico (Nicaragua)" + }, + { + "id": "NL1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NL1", + "name": "Central Bureau voor de Statistiek (Netherlands)" + }, + { + "id": "NL2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NL2", + "name": "Nederlandse Bank (Netherlands)" + }, + { + "id": "NL4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NL4", + "name": "Ministry of Finance (Netherlands)" + }, + { + "id": "NL99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NL99", + "name": "Other competent National Authority (Netherlands)" + }, + { + "id": "NO1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NO1", + "name": "Statistics Norway" + }, + { + "id": "NO2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NO2", + "name": "Norges Bank (Norway)" + }, + { + "id": "NO98", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NO98", + "name": "Avinor (Civil Aviation Administration)" + }, + { + "id": "NO99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NO99", + "name": "Other competent National Authority (Norway)" + }, + { + "id": "NP1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NP1", + "name": "Central Bureau of Statistics (Nepal)" + }, + { + "id": "NP2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NP2", + "name": "Nepal Rastra Bank" + }, + { + "id": "NP4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NP4", + "name": "Ministry of Finance (Nepal)" + }, + { + "id": "NR1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NR1", + "name": "Nauru Bureau of Statistics (Nauru)" + }, + { + "id": "NR4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NR4", + "name": "Ministry of Finance (Nauru)" + }, + { + "id": "NR99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NR99", + "name": "Other competent National Authority (Nauru)" + }, + { + "id": "NU1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NU1", + "name": "Statistics Offie Niue" + }, + { + "id": "NZ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NZ1", + "name": "Statistics New Zealand" + }, + { + "id": "NZ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NZ2", + "name": "Reserve Bank of New Zealand" + }, + { + "id": "NZ99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).NZ99", + "name": "Other competent National Authority (New Zealand)" + }, + { + "id": "OM2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).OM2", + "name": "Central Bank of Oman" + }, + { + "id": "OM4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).OM4", + "name": "Ministry of Finance (Oman)" + }, + { + "id": "PA1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PA1", + "name": "Directorate of Statistics and Census (Panama)" + }, + { + "id": "PA2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PA2", + "name": "Banco Nacional de Panama" + }, + { + "id": "PA3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PA3", + "name": "Office of the Controller General (Panama)" + }, + { + "id": "PA6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PA6", + "name": "Superintendencia de Bancos (Panama)" + }, + { + "id": "PE2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PE2", + "name": "Banco Central de Reserva del Peru" + }, + { + "id": "PE4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PE4", + "name": "Ministerio de Economia y Finanzas (Peru)" + }, + { + "id": "PG1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PG1", + "name": "National Statistical Office (Papua New Guinea)" + }, + { + "id": "PG2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PG2", + "name": "Bank of Papua New Guinea" + }, + { + "id": "PG99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PG99", + "name": "Other competent National Authority (Papua New Guinea)" + }, + { + "id": "PH2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PH2", + "name": "Central Bank of the Philippines" + }, + { + "id": "PH3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PH3", + "name": "Bureau of the Treasury (Philippines)" + }, + { + "id": "PK1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PK1", + "name": "Federal Bureau of Statistics (Pakistan)" + }, + { + "id": "PK2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PK2", + "name": "State Bank of Pakistan" + }, + { + "id": "PK4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PK4", + "name": "Ministry of Finance and Revenue (Pakistan)" + }, + { + "id": "PK99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PK99", + "name": "Other competent National Authority (Pakistan)" + }, + { + "id": "PL1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PL1", + "name": "Central Statistical Office of Poland" + }, + { + "id": "PL2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PL2", + "name": "Bank of Poland" + }, + { + "id": "PL4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PL4", + "name": "Ministry of Finance (Poland)" + }, + { + "id": "PL99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PL99", + "name": "Other competent National Authority (Poland)" + }, + { + "id": "PS1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PS1", + "name": "Palestinian Central Bureau of Statistics" + }, + { + "id": "PS2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PS2", + "name": "Palestine Monetary Authority" + }, + { + "id": "PS99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PS99", + "name": "Other competent National Authority (West Bank and Gaza)" + }, + { + "id": "PT1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PT1", + "name": "Instituto Nacional de Estatistica (Portugal)" + }, + { + "id": "PT2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PT2", + "name": "Banco de Portugal (Portugal)" + }, + { + "id": "PT3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PT3", + "name": "Direccao Geral do Orcamento (DGO) (Portugal)" + }, + { + "id": "PT4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PT4", + "name": "Ministerio Das Financas (Portugal)" + }, + { + "id": "PT99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PT99", + "name": "Other competent National Authority (Portugal)" + }, + { + "id": "PW1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PW1", + "name": "Statistical office (Palau)" + }, + { + "id": "PW99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PW99", + "name": "Other competent National Authority (Palau)" + }, + { + "id": "PY2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PY2", + "name": "Banco Central del Paraguay" + }, + { + "id": "PY4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).PY4", + "name": "Ministerio de Hacienda (Paraguay)" + }, + { + "id": "QA2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).QA2", + "name": "Qatar Central Bank" + }, + { + "id": "QA3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).QA3", + "name": "Customs Department (Qatar)" + }, + { + "id": "QA4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).QA4", + "name": "Ministry of Finance, Economy and Commerce (Qatar)" + }, + { + "id": "RO1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).RO1", + "name": "Romania, National Commission for Statistics" + }, + { + "id": "RO2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).RO2", + "name": "National Bank of Romania" + }, + { + "id": "RO4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).RO4", + "name": "Ministere des Finances Public (Romania)" + }, + { + "id": "RO99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).RO99", + "name": "Other competent National Authority (Romania)" + }, + { + "id": "RS1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).RS1", + "name": "Statistical Office of the Republic of Serbia" + }, + { + "id": "RS2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).RS2", + "name": "National Bank of Serbia (NBS) (Serbia, Rep. of)" + }, + { + "id": "RU1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).RU1", + "name": "State Committee of the Russian Federation on Statistics" + }, + { + "id": "RU2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).RU2", + "name": "Central Bank of Russian Federation" + }, + { + "id": "RU3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).RU3", + "name": "State Customs Committee of the Russian Federation" + }, + { + "id": "RU4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).RU4", + "name": "Ministry of Finance (Russian Federation)" + }, + { + "id": "RU99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).RU99", + "name": "Other competent National Authority (Russian Federation)" + }, + { + "id": "RW1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).RW1", + "name": "General Office of Statistics (Rwanda)" + }, + { + "id": "RW2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).RW2", + "name": "Banque Nationale Du Rwanda" + }, + { + "id": "RW4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).RW4", + "name": "Ministere des Finances et Planification Economie (Rwanda)" + }, + { + "id": "SA1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SA1", + "name": "Central Department of Statistics (Saudi Arabia)" + }, + { + "id": "SA2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SA2", + "name": "Saudi Arabian Monetary Agency" + }, + { + "id": "SA4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SA4", + "name": "Ministry of Finance (Saudi Arabia)" + }, + { + "id": "SA99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SA99", + "name": "Other competent National Authority (Saudi Arabia)" + }, + { + "id": "SB1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SB1", + "name": "Statistical Office (Solomon Islands)" + }, + { + "id": "SB2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SB2", + "name": "Central Bank of Solomon Islands" + }, + { + "id": "SB4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SB4", + "name": "Ministry of Finance and Treasury (Solomon Islands)" + }, + { + "id": "SC2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SC2", + "name": "Central Bank of Seychelles" + }, + { + "id": "SC4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SC4", + "name": "Ministry of Finance (Seychelles)" + }, + { + "id": "SC6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SC6", + "name": "Ministry of Administration and Manpower, Management and Information Systems Division (Seychelles)" + }, + { + "id": "SD1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SD1", + "name": "Central Bureau of Statistics (Sudan)" + }, + { + "id": "SD2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SD2", + "name": "Bank of Sudan" + }, + { + "id": "SD4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SD4", + "name": "Ministry of Finance and National Economy (Sudan)" + }, + { + "id": "SD99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SD99", + "name": "Other competent National Authority (Sudan)" + }, + { + "id": "SE1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SE1", + "name": "Statistics Sweden (Sweden)" + }, + { + "id": "SE2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SE2", + "name": "Sveriges Riksbank (Sweden)" + }, + { + "id": "SE3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SE3", + "name": "Sika Swedish Institute for Transport and Communications Analysis" + }, + { + "id": "SE4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SE4", + "name": "Banverket (National Rail Administration) Sweden" + }, + { + "id": "SE5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SE5", + "name": "National Institute of Economic Research (Sweden)" + }, + { + "id": "SE99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SE99", + "name": "Other competent National Authority (Sweden)" + }, + { + "id": "SG1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SG1", + "name": "Ministry of Trade and Industry / Department of Statistics (Singapore)" + }, + { + "id": "SG2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SG2", + "name": "Monetary Authority of Singapore" + }, + { + "id": "SG3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SG3", + "name": "International Enterprise Singapore" + }, + { + "id": "SG4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SG4", + "name": "Ministry of Finance (Singapore)" + }, + { + "id": "SG99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SG99", + "name": "Other competent National Authority (Singapore)" + }, + { + "id": "SH1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SH1", + "name": "Saint Helena Statistical Office" + }, + { + "id": "SI1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SI1", + "name": "Statistical Office of the Republic of Slovenia" + }, + { + "id": "SI2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SI2", + "name": "Bank of Slovenia" + }, + { + "id": "SI4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SI4", + "name": "Ministry of Finance (Slovenia)" + }, + { + "id": "SI99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SI99", + "name": "Other competent National Authority (Slovenia)" + }, + { + "id": "SK1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SK1", + "name": "Statistical Office of the Slovak Republic" + }, + { + "id": "SK2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SK2", + "name": "National Bank of Slovakia" + }, + { + "id": "SK4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SK4", + "name": "Ministry of Finance of the Slovak Republic" + }, + { + "id": "SK99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SK99", + "name": "Other competent National Authority (Slovak Republic)" + }, + { + "id": "SL2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SL2", + "name": "Bank of Sierra Leone" + }, + { + "id": "SM1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SM1", + "name": "Office of Economic Planning and Data Processing Center and Statistics (San Marino)" + }, + { + "id": "SM2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SM2", + "name": "Instituto di Credito Sammarinese / Central Bank (San Marino)" + }, + { + "id": "SM4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SM4", + "name": "Ministry of Finance and Budget (San Marino)" + }, + { + "id": "SN1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SN1", + "name": "Direction de la Prevision et de la Statistique (Senegal)" + }, + { + "id": "SN2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SN2", + "name": "Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Senegal)" + }, + { + "id": "SN4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SN4", + "name": "Ministere de l`Economie et des Finances (Senegal)" + }, + { + "id": "SN99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SN99", + "name": "Other competent National Authority (Senegal)" + }, + { + "id": "SO2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SO2", + "name": "Central Bank of Somalia" + }, + { + "id": "SR1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SR1", + "name": "General Bureau of Statistics (Suriname)" + }, + { + "id": "SR2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SR2", + "name": "Centrale Bank van Suriname" + }, + { + "id": "SR4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SR4", + "name": "Ministry of Finance (Suriname)" + }, + { + "id": "SR99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SR99", + "name": "Other competent National Authority (Suriname)" + }, + { + "id": "SS1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SS1", + "name": "National Bureau of Statistics (South Sudan)" + }, + { + "id": "SS2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SS2", + "name": "Central bank of South Sudan" + }, + { + "id": "SS99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SS99", + "name": "Other competent National Authority (South Sudan)" + }, + { + "id": "ST2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ST2", + "name": "Banco Central de Sao Tome e Principe" + }, + { + "id": "ST4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ST4", + "name": "Ministry of Planning and Financing (Sao Tome and Principe)" + }, + { + "id": "SV2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SV2", + "name": "Banco Central de Reserva de El Salvador" + }, + { + "id": "SV4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SV4", + "name": "Ministerio de Hacienda (El Salvador)" + }, + { + "id": "SX1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SX1", + "name": "Bureau for Statistics Sint Maarten" + }, + { + "id": "SX99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SX99", + "name": "Other competent National Authority (Sint Maarten)" + }, + { + "id": "SY1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SY1", + "name": "Central Bureau of Statistics (Syria Arab Rep.)" + }, + { + "id": "SY2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SY2", + "name": "Central Bank of Syria" + }, + { + "id": "SY4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SY4", + "name": "Ministry of Finance (Syrian Arab Rep.)" + }, + { + "id": "SY99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SY99", + "name": "Other competent National Authority (Syrian Arab Republic)" + }, + { + "id": "SZ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SZ1", + "name": "Central Statistical Office (Swaziland)" + }, + { + "id": "SZ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SZ2", + "name": "Central Bank of Swaziland" + }, + { + "id": "SZ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).SZ4", + "name": "Ministry of Finance (Swaziland)" + }, + { + "id": "TC4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TC4", + "name": "Ministry of Finance (Turks and Caicos)" + }, + { + "id": "TC99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TC99", + "name": "Other competent National Authority (Turks and Caicos)" + }, + { + "id": "TD1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TD1", + "name": "Institut de la Statistique (INSDEE) (Chad)" + }, + { + "id": "TD2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TD2", + "name": "Banque des Etats de l`Afrique Centrale (BEAC) (Chad)" + }, + { + "id": "TD4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TD4", + "name": "Ministere des finances (Chad)" + }, + { + "id": "TD99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TD99", + "name": "Other competent National Authority (Chad)" + }, + { + "id": "TG2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TG2", + "name": "Banque Centrale des Etats de l`Afrique de l`Ouest (BCEAO) (Togo)" + }, + { + "id": "TG3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TG3", + "name": "Ministere du Plan (Togo)" + }, + { + "id": "TG4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TG4", + "name": "Ministere de l`Economie des Finances (Togo)" + }, + { + "id": "TH2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TH2", + "name": "Bank of Thailand" + }, + { + "id": "TH4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TH4", + "name": "Ministry of Finance (Thailand)" + }, + { + "id": "TH5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TH5", + "name": "National Economic and Social Development Board (Thailand)" + }, + { + "id": "TJ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TJ1", + "name": "State Statistical Agency of Tajikistan" + }, + { + "id": "TJ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TJ2", + "name": "National Bank of Tajikistan" + }, + { + "id": "TJ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TJ4", + "name": "Ministry of Finance (Tajikistan)" + }, + { + "id": "TJ99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TJ99", + "name": "Other competent National Authority (Tajikistan)" + }, + { + "id": "TL1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TL1", + "name": "Statistical Office (Timor Leste)" + }, + { + "id": "TL2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TL2", + "name": "Banco Central de Timor-Leste" + }, + { + "id": "TL4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TL4", + "name": "Ministry of Finance (Timor-Leste)" + }, + { + "id": "TL99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TL99", + "name": "Other competent National Authority (Timor-Leste)" + }, + { + "id": "TM1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TM1", + "name": "National Institute of State Statistics and Information (Turkmenistan)" + }, + { + "id": "TM2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TM2", + "name": "Central Bank of Turkmenistan" + }, + { + "id": "TM4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TM4", + "name": "Ministry of Economy and Finance (Turkmenistan)" + }, + { + "id": "TM99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TM99", + "name": "Other competent National Authority (Turkmenistan)" + }, + { + "id": "TN1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TN1", + "name": "National Institute of Statistics (Tunisia)" + }, + { + "id": "TN2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TN2", + "name": "Banque centrale de Tunisie" + }, + { + "id": "TN4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TN4", + "name": "Ministere des Finances (Tunisia)" + }, + { + "id": "TO1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TO1", + "name": "Statistics Department (Tongo)" + }, + { + "id": "TO2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TO2", + "name": "National Reserve Bank of Tonga" + }, + { + "id": "TO4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TO4", + "name": "Ministry of Finance (Tongo)" + }, + { + "id": "TO99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TO99", + "name": "Other competent National Authority (Tonga)" + }, + { + "id": "TR1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TR1", + "name": "State Institute of Statistics (Turkey)" + }, + { + "id": "TR2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TR2", + "name": "Central Bank of the Republic of Turkey" + }, + { + "id": "TR3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TR3", + "name": "Hazine Mustesarligi (Turkish Treasury)" + }, + { + "id": "TR98", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TR98", + "name": "State Airports Authority" + }, + { + "id": "TR99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TR99", + "name": "Other competent National Authority (Turkey)" + }, + { + "id": "TT1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TT1", + "name": "Central Statistical Office (Trinidad and Tobago)" + }, + { + "id": "TT2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TT2", + "name": "Central Bank of Trinidad and Tobago" + }, + { + "id": "TT4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TT4", + "name": "Ministry of Finance (Trinidad and Tobago)" + }, + { + "id": "TV1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TV1", + "name": "Tuvalu Statistics" + }, + { + "id": "TW2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TW2", + "name": "Central Bank of China, Taipei" + }, + { + "id": "TZ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TZ1", + "name": "Central Statistical Bureau (Tanzania)" + }, + { + "id": "TZ2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TZ2", + "name": "Bank of Tanzania" + }, + { + "id": "TZ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TZ4", + "name": "Ministry of Finance (Tanzania)" + }, + { + "id": "TZ99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).TZ99", + "name": "Other competent National Authority (Tanzania)" + }, + { + "id": "U22", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).U22", + "name": "Central banks belonging to the Euro area" + }, + { + "id": "U32", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).U32", + "name": "EU central banks not belonging to the Euro area" + }, + { + "id": "UA1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).UA1", + "name": "State Statistics Committee of Ukraine" + }, + { + "id": "UA2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).UA2", + "name": "National Bank of Ukraine" + }, + { + "id": "UA4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).UA4", + "name": "Ministry of Finance (Ukraine)" + }, + { + "id": "UA99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).UA99", + "name": "Other competent National Authority (Ukraine)" + }, + { + "id": "UG1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).UG1", + "name": "Uganda Bureau of Statistics" + }, + { + "id": "UG2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).UG2", + "name": "Bank of Uganda" + }, + { + "id": "UG4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).UG4", + "name": "Ministry of Finance, Planning and Economic Development (Uganda)" + }, + { + "id": "UG99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).UG99", + "name": "Other competent National Authority (Uganda)" + }, + { + "id": "US2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).US2", + "name": "Federal Reserve Bank of New York (USA)" + }, + { + "id": "US3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).US3", + "name": "Board of Governors of the Federal Reserve System (USA)" + }, + { + "id": "US4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).US4", + "name": "U.S. Department of Treasury (USA)" + }, + { + "id": "US5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).US5", + "name": "U.S. Department of Commerce (USA)" + }, + { + "id": "US6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).US6", + "name": "Bureau of Labor Statistics" + }, + { + "id": "US7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).US7", + "name": "Bureau of Census" + }, + { + "id": "US8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).US8", + "name": "Bureau of Economic Analysis" + }, + { + "id": "UY2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).UY2", + "name": "Banco Central del Uruguay" + }, + { + "id": "UY4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).UY4", + "name": "Ministerio de Economia y Finanzas (Uruguay)" + }, + { + "id": "UZ1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).UZ1", + "name": "Goskomprognozstat (Uzbekistan)" + }, + { + "id": "UZ3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).UZ3", + "name": "Ministry of Economy (Uzbekistan)" + }, + { + "id": "UZ4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).UZ4", + "name": "Ministry of Finance (Uzbekistan)" + }, + { + "id": "UZ99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).UZ99", + "name": "Other competent National Authority (Uzbekistan)" + }, + { + "id": "V12", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).V12", + "name": "EU 27 central banks" + }, + { + "id": "V32", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).V32", + "name": "EU 28 central banks" + }, + { + "id": "VC1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).VC1", + "name": "Statistical Unit (St. Vincent and Grenadines)" + }, + { + "id": "VC2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).VC2", + "name": "Eastern Caribbean Central Bank (ECCB) (St. Vincent and Grenadines)" + }, + { + "id": "VC4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).VC4", + "name": "Ministry of Finance and Planning (St. Vincent and the Grenadines)" + }, + { + "id": "VE2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).VE2", + "name": "Banco Central de Venezuela" + }, + { + "id": "VE4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).VE4", + "name": "Ministerio de Finanzas (Venezuela)" + }, + { + "id": "VG99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).VG99", + "name": "Other competent National Authority (Virgin Islands, British)" + }, + { + "id": "VI99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).VI99", + "name": "Other competent National Authority (Virgin Islands, US)" + }, + { + "id": "VN1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).VN1", + "name": "General Statistics Office (Vietnam)" + }, + { + "id": "VN2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).VN2", + "name": "State Bank of Vietnam" + }, + { + "id": "VN99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).VN99", + "name": "Other competent National Authority (Vietnam)" + }, + { + "id": "VU1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).VU1", + "name": "Statistical Office (Vanuatu)" + }, + { + "id": "VU2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).VU2", + "name": "Reserve Bank of Vanuatu" + }, + { + "id": "VU4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).VU4", + "name": "Ministry of Finance and Economic Management (Vanuatu)" + }, + { + "id": "VU99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).VU99", + "name": "Other competent National Authority (Vanuatu)" + }, + { + "id": "WS1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).WS1", + "name": "Department of Statistics (Samoa)" + }, + { + "id": "WS2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).WS2", + "name": "Central Bank of Samoa" + }, + { + "id": "WS4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).WS4", + "name": "Samoa Treasury Department" + }, + { + "id": "WS99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).WS99", + "name": "Other competent National Authority (Samoa)" + }, + { + "id": "XK1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).XK1", + "name": "Kosovo National statistical Office" + }, + { + "id": "XK2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).XK2", + "name": "Kosovo National Bank" + }, + { + "id": "XK4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).XK4", + "name": "Ministry of Finance (Kosovo)" + }, + { + "id": "XK99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).XK99", + "name": "Other competent National Authority (Kosovo)" + }, + { + "id": "YE1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).YE1", + "name": "Central Statistical Organization (Yemen)" + }, + { + "id": "YE2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).YE2", + "name": "Central Bank of Yemen" + }, + { + "id": "YE4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).YE4", + "name": "Ministry of Finance (Yemen)" + }, + { + "id": "YE99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).YE99", + "name": "Other competent National Authority (Yemen, Republic of)" + }, + { + "id": "ZA1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ZA1", + "name": "South African Reserve Service" + }, + { + "id": "ZA2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ZA2", + "name": "South African Reserve Bank" + }, + { + "id": "ZA3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ZA3", + "name": "Department of Customs and Excise (South Africa)" + }, + { + "id": "ZA99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ZA99", + "name": "Other competent National Authority (South Africa)" + }, + { + "id": "ZM1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ZM1", + "name": "Central Statistical Office (Zambia)" + }, + { + "id": "ZM2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ZM2", + "name": "Bank of Zambia" + }, + { + "id": "ZM99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ZM99", + "name": "Other competent National Authority (Zambia)" + }, + { + "id": "ZW1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ZW1", + "name": "Central Statistical Office (Zimbabwe)" + }, + { + "id": "ZW2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ZW2", + "name": "Reserve Bank of Zimbabwe" + }, + { + "id": "ZW4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ZW4", + "name": "Ministry of Finance, Economic Planning and Development (Zimbabwe)" + }, + { + "id": "ZW99", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ZW99", + "name": "Other competent National Authority (Zimbabwe)" + }, + { + "id": "ZZZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_ORGANISATION(1.0).ZZZ", + "name": "Unspecified (e.g. any, dissemination, internal exchange etc)" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_UNIT(1.0)": { + "id": "CL_UNIT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_UNIT(1.0)", + "name": "Unit code list", + "items": [ + { + "id": "_T", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0)._T", + "name": "All currencies of denomination" + }, + { + "id": "_X", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0)._X", + "name": "Not specified" + }, + { + "id": "_Z", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0)._Z", + "name": "Not applicable" + }, + { + "id": "ADF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ADF", + "name": "Andorran franc (1-1 peg to the French franc)" + }, + { + "id": "ADP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ADP", + "name": "Andorran peseta (1-1 peg to the Spanish peseta)" + }, + { + "id": "AED", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).AED", + "name": "United Arab Emirates dirham" + }, + { + "id": "AFA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).AFA", + "name": "Afghanistan afghani (old)" + }, + { + "id": "AFN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).AFN", + "name": "Afghanistan, Afghanis" + }, + { + "id": "ALL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ALL", + "name": "Albanian lek" + }, + { + "id": "AMD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).AMD", + "name": "Armenian dram" + }, + { + "id": "ANG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ANG", + "name": "Netherlands Antillean guilder" + }, + { + "id": "AOA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).AOA", + "name": "Angolan kwanza" + }, + { + "id": "AON", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).AON", + "name": "Angolan kwanza (old)" + }, + { + "id": "AOR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).AOR", + "name": "Angolan kwanza readjustado" + }, + { + "id": "ARS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ARS", + "name": "Argentine peso" + }, + { + "id": "ATS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ATS", + "name": "Austrian schilling" + }, + { + "id": "AUD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).AUD", + "name": "Australian dollar" + }, + { + "id": "AWG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).AWG", + "name": "Aruban florin/guilder" + }, + { + "id": "AZM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).AZM", + "name": "Azerbaijanian manat (old)" + }, + { + "id": "AZN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).AZN", + "name": "Azerbaijan, manats" + }, + { + "id": "BAM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BAM", + "name": "Bosnia-Hezergovinian convertible mark" + }, + { + "id": "BBD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BBD", + "name": "Barbados dollar" + }, + { + "id": "BDT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BDT", + "name": "Bangladesh taka" + }, + { + "id": "BEF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BEF", + "name": "Belgian franc" + }, + { + "id": "BEL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BEL", + "name": "Belgian franc (financial)" + }, + { + "id": "BGL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BGL", + "name": "Bulgarian lev (old)" + }, + { + "id": "BGN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BGN", + "name": "Bulgarian lev" + }, + { + "id": "BHD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BHD", + "name": "Bahraini dinar" + }, + { + "id": "BIF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BIF", + "name": "Burundi franc" + }, + { + "id": "BMD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BMD", + "name": "Bermudian dollar" + }, + { + "id": "BND", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BND", + "name": "Brunei dollar" + }, + { + "id": "BOB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BOB", + "name": "Bolivian boliviano" + }, + { + "id": "BRL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BRL", + "name": "Brazilian real" + }, + { + "id": "BSD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BSD", + "name": "Bahamas dollar" + }, + { + "id": "BTN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BTN", + "name": "Bhutan ngultrum" + }, + { + "id": "BWP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BWP", + "name": "Botswana pula" + }, + { + "id": "BYB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BYB", + "name": "Belarussian rouble (old)" + }, + { + "id": "BYR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BYR", + "name": "Belarus, Rubles" + }, + { + "id": "BZD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).BZD", + "name": "Belize dollar" + }, + { + "id": "CAD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CAD", + "name": "Canadian dollar" + }, + { + "id": "CDF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CDF", + "name": "Congo franc (ex Zaire)" + }, + { + "id": "CHE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CHE", + "name": "WIR Euro" + }, + { + "id": "CHF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CHF", + "name": "Swiss franc" + }, + { + "id": "CHW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CHW", + "name": "WIR Franc" + }, + { + "id": "CLF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CLF", + "name": "Chile Unidades de fomento" + }, + { + "id": "CLP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CLP", + "name": "Chilean peso" + }, + { + "id": "CNH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CNH", + "name": "Chinese yuan offshore" + }, + { + "id": "CNY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CNY", + "name": "Chinese yuan renminbi" + }, + { + "id": "COP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).COP", + "name": "Colombian peso" + }, + { + "id": "COU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).COU", + "name": "Unidad de Valor Real" + }, + { + "id": "CRC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CRC", + "name": "Costa Rican colon" + }, + { + "id": "CSD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CSD", + "name": "Serbian dinar" + }, + { + "id": "CUC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CUC", + "name": "Cuban convertible peso" + }, + { + "id": "CUP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CUP", + "name": "Cuban peso" + }, + { + "id": "CVE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CVE", + "name": "Cape Verde escudo" + }, + { + "id": "CYP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CYP", + "name": "Cypriot pound" + }, + { + "id": "CZK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).CZK", + "name": "Czech koruna" + }, + { + "id": "DAYS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).DAYS", + "name": "Days" + }, + { + "id": "DEM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).DEM", + "name": "German mark" + }, + { + "id": "DJF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).DJF", + "name": "Djibouti franc" + }, + { + "id": "DKK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).DKK", + "name": "Danish krone" + }, + { + "id": "DOP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).DOP", + "name": "Dominican peso" + }, + { + "id": "DZD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).DZD", + "name": "Algerian dinar" + }, + { + "id": "E0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).E0", + "name": "Euro area changing composition vis-a-vis the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US)" + }, + { + "id": "E1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).E1", + "name": "Euro area-18 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, LT, HU, PL, RO, HR and CN)" + }, + { + "id": "E2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).E2", + "name": "Euro area-18 countries vis-a-vis 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)" + }, + { + "id": "E3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).E3", + "name": "Euro area-18 countries vis-a-vis 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)" + }, + { + "id": "E4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).E4", + "name": "Euro area-18 countries vis-a-vis the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US)" + }, + { + "id": "E5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).E5", + "name": "Euro area-19 countries vis-a-vis 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)" + }, + { + "id": "E6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).E6", + "name": "Euro area-19 countries vis-a-vis 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)" + }, + { + "id": "E7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).E7", + "name": "Euro area-19 countries vis-a-vis 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)" + }, + { + "id": "E8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).E8", + "name": "Euro area-19 countries vis-a-vis the EER-12 group of trading partners (AU, CA, DK, HK, JP, NO, SG, KR, SE, CH, GB and US)" + }, + { + "id": "ECS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ECS", + "name": "Ecuador sucre" + }, + { + "id": "EEK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).EEK", + "name": "Estonian kroon" + }, + { + "id": "EGP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).EGP", + "name": "Egyptian pound" + }, + { + "id": "ERN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ERN", + "name": "Erytrean nafka" + }, + { + "id": "ESP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ESP", + "name": "Spanish peseta" + }, + { + "id": "ETB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ETB", + "name": "Ethiopian birr" + }, + { + "id": "EUR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).EUR", + "name": "Euro" + }, + { + "id": "FIM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).FIM", + "name": "Finnish markka" + }, + { + "id": "FJD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).FJD", + "name": "Fiji dollar" + }, + { + "id": "FKP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).FKP", + "name": "Falkland Islands pound" + }, + { + "id": "FRF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).FRF", + "name": "French franc" + }, + { + "id": "FT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).FT", + "name": "Full time equivalent" + }, + { + "id": "GBP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).GBP", + "name": "UK pound sterling" + }, + { + "id": "GEL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).GEL", + "name": "Georgian lari" + }, + { + "id": "GGP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).GGP", + "name": "Guernsey, Pounds" + }, + { + "id": "GHC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).GHC", + "name": "Ghana Cedi (old)" + }, + { + "id": "GHS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).GHS", + "name": "Ghana Cedi" + }, + { + "id": "GIP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).GIP", + "name": "Gibraltar pound" + }, + { + "id": "GMD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).GMD", + "name": "Gambian dalasi" + }, + { + "id": "GNF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).GNF", + "name": "Guinea franc" + }, + { + "id": "GR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).GR", + "name": "Grams" + }, + { + "id": "GRD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).GRD", + "name": "Greek drachma" + }, + { + "id": "GTQ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).GTQ", + "name": "Guatemalan quetzal" + }, + { + "id": "GWP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).GWP", + "name": "Guinea-Bissau Peso (old)" + }, + { + "id": "GYD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).GYD", + "name": "Guyanan dollar" + }, + { + "id": "H1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).H1", + "name": "Euro area 18 currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LV, MT, SK)" + }, + { + "id": "H10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).H10", + "name": "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)" + }, + { + "id": "H11", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).H11", + "name": "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)" + }, + { + "id": "H2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).H2", + "name": "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)" + }, + { + "id": "H3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).H3", + "name": "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)" + }, + { + "id": "H36", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).H36", + "name": "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)" + }, + { + "id": "H37", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).H37", + "name": "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)" + }, + { + "id": "H4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).H4", + "name": "ECB EER-40 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)" + }, + { + "id": "H42", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).H42", + "name": "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)" + }, + { + "id": "H5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).H5", + "name": "ECB EER-21 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)" + }, + { + "id": "H6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).H6", + "name": "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)" + }, + { + "id": "H7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).H7", + "name": "Euro area 19 currencies (FR, BE, LU, NL, DE, IT, IE, PT, ES, FI, AT, GR, SI, CY, EE, LT, LV, MT, SK)" + }, + { + "id": "H8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).H8", + "name": "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)" + }, + { + "id": "H9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).H9", + "name": "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)" + }, + { + "id": "HKD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).HKD", + "name": "Hong Kong dollar" + }, + { + "id": "HKQ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).HKQ", + "name": "Hong Kong dollar (old)" + }, + { + "id": "HNL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).HNL", + "name": "Honduran lempira" + }, + { + "id": "HOURS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).HOURS", + "name": "Hours" + }, + { + "id": "HR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).HR", + "name": "Hours" + }, + { + "id": "HRK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).HRK", + "name": "Croatian kuna" + }, + { + "id": "HTG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).HTG", + "name": "Haitian gourde" + }, + { + "id": "HUF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).HUF", + "name": "Hungarian forint" + }, + { + "id": "HW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).HW", + "name": "Hours worked" + }, + { + "id": "IDR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).IDR", + "name": "Indonesian rupiah" + }, + { + "id": "IEP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).IEP", + "name": "Irish pound" + }, + { + "id": "ILS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ILS", + "name": "Israeli shekel" + }, + { + "id": "IMP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).IMP", + "name": "Isle of Man, Pounds" + }, + { + "id": "INR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).INR", + "name": "Indian rupee" + }, + { + "id": "IQD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).IQD", + "name": "Iraqi dinar" + }, + { + "id": "IRR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).IRR", + "name": "Iranian rial" + }, + { + "id": "ISK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ISK", + "name": "Iceland krona" + }, + { + "id": "ITL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ITL", + "name": "Italian lira" + }, + { + "id": "IX", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).IX", + "name": "Index" + }, + { + "id": "JB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).JB", + "name": "Jobs" + }, + { + "id": "JEP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).JEP", + "name": "Jersey, Pounds" + }, + { + "id": "JMD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).JMD", + "name": "Jamaican dollar" + }, + { + "id": "JOD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).JOD", + "name": "Jordanian dinar" + }, + { + "id": "JPY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).JPY", + "name": "Japanese yen" + }, + { + "id": "KES", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).KES", + "name": "Kenyan shilling" + }, + { + "id": "KG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).KG", + "name": "Kilograms" + }, + { + "id": "KGS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).KGS", + "name": "Kyrgyzstan som" + }, + { + "id": "KHR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).KHR", + "name": "Kampuchean real (Cambodian)" + }, + { + "id": "KILO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).KILO", + "name": "Kilograms" + }, + { + "id": "KL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).KL", + "name": "Kilolitres" + }, + { + "id": "KLITRE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).KLITRE", + "name": "Kilolitres" + }, + { + "id": "KMF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).KMF", + "name": "Comoros franc" + }, + { + "id": "KPW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).KPW", + "name": "Korean won (North)" + }, + { + "id": "KRW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).KRW", + "name": "Korean won (Republic)" + }, + { + "id": "KWD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).KWD", + "name": "Kuwait dinar" + }, + { + "id": "KYD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).KYD", + "name": "Cayman Islands dollar" + }, + { + "id": "KZT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).KZT", + "name": "Kazakstan tenge" + }, + { + "id": "LAK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).LAK", + "name": "Lao kip" + }, + { + "id": "LBP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).LBP", + "name": "Lebanese pound" + }, + { + "id": "LITRES", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).LITRES", + "name": "Litres" + }, + { + "id": "LKR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).LKR", + "name": "Sri Lanka rupee" + }, + { + "id": "LRD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).LRD", + "name": "Liberian dollar" + }, + { + "id": "LSL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).LSL", + "name": "Lesotho loti" + }, + { + "id": "LT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).LT", + "name": "Litres" + }, + { + "id": "LTL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).LTL", + "name": "Lithuanian litas" + }, + { + "id": "LUF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).LUF", + "name": "Luxembourg franc" + }, + { + "id": "LVL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).LVL", + "name": "Latvian lats" + }, + { + "id": "LYD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).LYD", + "name": "Libyan dinar" + }, + { + "id": "MAD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MAD", + "name": "Moroccan dirham" + }, + { + "id": "MD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MD", + "name": "Man Days" + }, + { + "id": "MDL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MDL", + "name": "Moldovian leu" + }, + { + "id": "MGA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MGA", + "name": "Madagascar, Ariary" + }, + { + "id": "MGF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MGF", + "name": "Malagasy franc" + }, + { + "id": "MH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MH", + "name": "Months" + }, + { + "id": "MKD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MKD", + "name": "Macedonian denar" + }, + { + "id": "MMK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MMK", + "name": "Myanmar kyat" + }, + { + "id": "MNT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MNT", + "name": "Mongolian tugrik" + }, + { + "id": "MONTHS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MONTHS", + "name": "Months" + }, + { + "id": "MOP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MOP", + "name": "Macau pataca" + }, + { + "id": "MQ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MQ", + "name": "Square Metres" + }, + { + "id": "MRO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MRO", + "name": "Mauritanian ouguiya" + }, + { + "id": "MTL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MTL", + "name": "Maltese lira" + }, + { + "id": "MUR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MUR", + "name": "Mauritius rupee" + }, + { + "id": "MVR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MVR", + "name": "Maldive rufiyaa" + }, + { + "id": "MWK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MWK", + "name": "Malawi kwacha" + }, + { + "id": "MXN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MXN", + "name": "Mexican peso" + }, + { + "id": "MXP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MXP", + "name": "Mexican peso (old)" + }, + { + "id": "MXV", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MXV", + "name": "Mexican Unidad de Inversion (UDI)" + }, + { + "id": "MY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MY", + "name": "Man Years" + }, + { + "id": "MYR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MYR", + "name": "Malaysian ringgit" + }, + { + "id": "MZM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MZM", + "name": "Mozambique metical (old)" + }, + { + "id": "MZN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).MZN", + "name": "Mozambique, Meticais" + }, + { + "id": "NAD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).NAD", + "name": "Namibian dollar" + }, + { + "id": "NATCUR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).NATCUR", + "name": "National currency" + }, + { + "id": "NGN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).NGN", + "name": "Nigerian naira" + }, + { + "id": "NIO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).NIO", + "name": "Nicaraguan cordoba" + }, + { + "id": "NLG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).NLG", + "name": "Netherlands guilder" + }, + { + "id": "NOK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).NOK", + "name": "Norwegian krone" + }, + { + "id": "NPR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).NPR", + "name": "Nepaleese rupee" + }, + { + "id": "NZD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).NZD", + "name": "New Zealand dollar" + }, + { + "id": "OMR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).OMR", + "name": "Oman Sul rial" + }, + { + "id": "OUNCES", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).OUNCES", + "name": "Ounces" + }, + { + "id": "OZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).OZ", + "name": "Ounces" + }, + { + "id": "PA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PA", + "name": "Percent per annum" + }, + { + "id": "PAB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PAB", + "name": "Panama balboa" + }, + { + "id": "PC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PC", + "name": "Percentage change" + }, + { + "id": "PCCH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PCCH", + "name": "Percentage change" + }, + { + "id": "PCPA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PCPA", + "name": "Percent per annum" + }, + { + "id": "PCT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PCT", + "name": "Percentage change (code value to be discontinued)" + }, + { + "id": "PE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PE", + "name": "Euro, converted using purchasing power parities" + }, + { + "id": "PEN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PEN", + "name": "Peru nuevo sol" + }, + { + "id": "PERS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PERS", + "name": "Persons" + }, + { + "id": "PGK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PGK", + "name": "Papua New Guinea kina" + }, + { + "id": "PHP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PHP", + "name": "Philippine peso" + }, + { + "id": "PKR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PKR", + "name": "Pakistan rupee" + }, + { + "id": "PLN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PLN", + "name": "Polish zloty" + }, + { + "id": "PLZ", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PLZ", + "name": "Polish zloty (old)" + }, + { + "id": "PM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PM", + "name": "Per thousand" + }, + { + "id": "PN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PN", + "name": "Pure number" + }, + { + "id": "PO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PO", + "name": "Points" + }, + { + "id": "POINTS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).POINTS", + "name": "Points" + }, + { + "id": "PP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PP", + "name": "Purchasing power parities" + }, + { + "id": "PS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PS", + "name": "Persons" + }, + { + "id": "PT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PT", + "name": "Percent" + }, + { + "id": "PTE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PTE", + "name": "Portuguese escudo" + }, + { + "id": "PU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PU", + "name": "US dollar, converted using purchasing power parities" + }, + { + "id": "PURE_NUMB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PURE_NUMB", + "name": "Pure number" + }, + { + "id": "PYG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).PYG", + "name": "Paraguay guarani" + }, + { + "id": "QAR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).QAR", + "name": "Qatari rial" + }, + { + "id": "RO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).RO", + "name": "Ratio" + }, + { + "id": "ROL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ROL", + "name": "Romanian leu (old)" + }, + { + "id": "RON", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).RON", + "name": "Romanian leu" + }, + { + "id": "RSD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).RSD", + "name": "Serbian dinar" + }, + { + "id": "RT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).RT", + "name": "Interest rate" + }, + { + "id": "RUB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).RUB", + "name": "Russian rouble" + }, + { + "id": "RUR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).RUR", + "name": "Russian ruble (old)" + }, + { + "id": "RWF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).RWF", + "name": "Rwanda franc" + }, + { + "id": "SAR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SAR", + "name": "Saudi riyal" + }, + { + "id": "SBD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SBD", + "name": "Solomon Islands dollar" + }, + { + "id": "SCR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SCR", + "name": "Seychelles rupee" + }, + { + "id": "SDD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SDD", + "name": "Sudanese dinar" + }, + { + "id": "SDG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SDG", + "name": "Sudan, Dinars" + }, + { + "id": "SDP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SDP", + "name": "Sudanese pound (old)" + }, + { + "id": "SEK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SEK", + "name": "Swedish krona" + }, + { + "id": "SGD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SGD", + "name": "Singapore dollar" + }, + { + "id": "SHP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SHP", + "name": "St. Helena pound" + }, + { + "id": "SIT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SIT", + "name": "Slovenian tolar" + }, + { + "id": "SKK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SKK", + "name": "Slovak koruna" + }, + { + "id": "SLL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SLL", + "name": "Sierra Leone leone" + }, + { + "id": "SOS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SOS", + "name": "Somali shilling" + }, + { + "id": "SPL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SPL", + "name": "Seborga, Luigini" + }, + { + "id": "SQ_M", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SQ_M", + "name": "Square Metres" + }, + { + "id": "SRD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SRD", + "name": "Suriname, Dollars" + }, + { + "id": "SRG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SRG", + "name": "Suriname guilder" + }, + { + "id": "SSP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SSP", + "name": "South sudanese pound" + }, + { + "id": "STD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).STD", + "name": "Sao Tome and Principe dobra" + }, + { + "id": "SVC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SVC", + "name": "El Salvador colon" + }, + { + "id": "SYP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SYP", + "name": "Syrian pound" + }, + { + "id": "SZL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).SZL", + "name": "Swaziland lilangeni" + }, + { + "id": "THB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).THB", + "name": "Thai baht" + }, + { + "id": "TJR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TJR", + "name": "Tajikistan rouble" + }, + { + "id": "TJS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TJS", + "name": "Tajikistan, Somoni" + }, + { + "id": "TMM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TMM", + "name": "Turkmenistan manat (old)" + }, + { + "id": "TMT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TMT", + "name": "Turkmenistan manat" + }, + { + "id": "TN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TN", + "name": "Tonnes" + }, + { + "id": "TND", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TND", + "name": "Tunisian dinar" + }, + { + "id": "TONNES", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TONNES", + "name": "Tonnes" + }, + { + "id": "TOP", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TOP", + "name": "Tongan paanga" + }, + { + "id": "TPE", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TPE", + "name": "East Timor escudo" + }, + { + "id": "TRL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TRL", + "name": "Turkish lira (old)" + }, + { + "id": "TRY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TRY", + "name": "Turkish lira" + }, + { + "id": "TTD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TTD", + "name": "Trinidad and Tobago dollar" + }, + { + "id": "TVD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TVD", + "name": "Tuvalu, Tuvalu Dollars" + }, + { + "id": "TWD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TWD", + "name": "New Taiwan dollar" + }, + { + "id": "TZS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).TZS", + "name": "Tanzania shilling" + }, + { + "id": "UAH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).UAH", + "name": "Ukraine hryvnia" + }, + { + "id": "UGX", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).UGX", + "name": "Uganda Shilling" + }, + { + "id": "UNITS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).UNITS", + "name": "Unit described in title" + }, + { + "id": "USD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).USD", + "name": "US dollar" + }, + { + "id": "UT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).UT", + "name": "Unit described in title" + }, + { + "id": "UYI", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).UYI", + "name": "Uruguay Peso en Unidades Indexadas" + }, + { + "id": "UYU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).UYU", + "name": "Uruguayan peso" + }, + { + "id": "UZS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).UZS", + "name": "Uzbekistan sum" + }, + { + "id": "VEB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).VEB", + "name": "Venezuelan bolivar (old)" + }, + { + "id": "VEF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).VEF", + "name": "Venezuelan bolivar" + }, + { + "id": "VND", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).VND", + "name": "Vietnamese dong" + }, + { + "id": "VUV", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).VUV", + "name": "Vanuatu vatu" + }, + { + "id": "WST", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).WST", + "name": "Samoan tala" + }, + { + "id": "X1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).X1", + "name": "All currencies except national currency" + }, + { + "id": "X2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).X2", + "name": "All currencies except USD" + }, + { + "id": "X3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).X3", + "name": "All currencies except EUR" + }, + { + "id": "X4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).X4", + "name": "All currencies except EUR, USD" + }, + { + "id": "X5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).X5", + "name": "All currencies except EUR, JPY, USD" + }, + { + "id": "X6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).X6", + "name": "All currencies except EUR, CHF, GBP, JPY, USD" + }, + { + "id": "X7", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).X7", + "name": "All currencies except EUR, USD, JPY, GBP, CHF, domestic currency" + }, + { + "id": "XAF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XAF", + "name": "CFA franc / BEAC" + }, + { + "id": "XAG", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XAG", + "name": "Silver" + }, + { + "id": "XAU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XAU", + "name": "Gold" + }, + { + "id": "XBA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XBA", + "name": "European composite unit" + }, + { + "id": "XBB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XBB", + "name": "European Monetary unit EC-6" + }, + { + "id": "XBC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XBC", + "name": "European Unit of Account 9 (E.U.A.-9)" + }, + { + "id": "XBD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XBD", + "name": "European Unit of Account 17 (E.U.A.-17)" + }, + { + "id": "XCD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XCD", + "name": "Eastern Caribbean dollar" + }, + { + "id": "XDB", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XDB", + "name": "Currencies included in the SDR basket, gold and SDRs" + }, + { + "id": "XDC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XDC", + "name": "Domestic currency (incl. conversion to current currency made using a fixed parity)" + }, + { + "id": "XDC_R_B1N", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XDC_R_B1N", + "name": "Domestic currency (incl. conversion to current currency made using a fix parity); ratio to net value added" + }, + { + "id": "XDC_R_B1N_CY", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XDC_R_B1N_CY", + "name": "Domestic currency (incl. conversion to current currency made using a fix parity); ratio to annual moving sum of sector specific net value added" + }, + { + "id": "XDC_R_GF10", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XDC_R_GF10", + "name": "Domestic currency (including conversion to current currency made using a fix parity); ratio to total expenditure in social protection" + }, + { + "id": "XDC_R_I8", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XDC_R_I8", + "name": "Domestic currency (incl. conversion to current currency made using a fix parity); ratio to Euro area 19" + }, + { + "id": "XDM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XDM", + "name": "Domestic currency (incl. conversion to current currency made using market exchange rate)" + }, + { + "id": "XDN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XDN", + "name": "Domestic currency" + }, + { + "id": "XDO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XDO", + "name": "Other currencies not included in the SDR basket, exc. gold and SDRs" + }, + { + "id": "XDR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XDR", + "name": "Special Drawing Rights (S.D.R.)" + }, + { + "id": "XEU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XEU", + "name": "European Currency Unit (E.C.U.)" + }, + { + "id": "XFO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XFO", + "name": "Gold-Franc" + }, + { + "id": "XFU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XFU", + "name": "UIC-Franc" + }, + { + "id": "XGO", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XGO", + "name": "Gold fine troy ounces" + }, + { + "id": "XNC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XNC", + "name": "Euro area non-participating foreign currency" + }, + { + "id": "XOF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XOF", + "name": "CFA franc / BCEAO" + }, + { + "id": "XPC", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XPC", + "name": "Euro area participating foreign currency" + }, + { + "id": "XPD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XPD", + "name": "Palladium Ounces" + }, + { + "id": "XPF", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XPF", + "name": "Pacific franc" + }, + { + "id": "XPT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XPT", + "name": "Platinum, Ounces" + }, + { + "id": "XRH", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XRH", + "name": "Rhodium" + }, + { + "id": "XSU", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XSU", + "name": "Sucre" + }, + { + "id": "XTS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XTS", + "name": "Codes specifically reserved for testing purposes" + }, + { + "id": "XUA", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XUA", + "name": "ADB Unit of Account" + }, + { + "id": "XXX", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).XXX", + "name": "Transactions where no currency is involved" + }, + { + "id": "YEARS", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).YEARS", + "name": "Years" + }, + { + "id": "YER", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).YER", + "name": "Yemeni rial" + }, + { + "id": "YR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).YR", + "name": "Years" + }, + { + "id": "YUM", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).YUM", + "name": "Yugoslav dinar" + }, + { + "id": "ZAR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ZAR", + "name": "South African rand" + }, + { + "id": "ZMK", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ZMK", + "name": "Zambian kwacha" + }, + { + "id": "ZMW", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ZMW", + "name": "New zambian kwacha" + }, + { + "id": "ZWD", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ZWD", + "name": "Zimbabwe dollar" + }, + { + "id": "ZWL", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ZWL", + "name": "Fourth Zimbabwe dollar" + }, + { + "id": "ZWN", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ZWN", + "name": "Zimbabwe, Zimbabwe Dollars" + }, + { + "id": "ZWR", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT(1.0).ZWR", + "name": "Third Zimbabwe dollar" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_UNIT_MULT(1.0)": { + "id": "CL_UNIT_MULT", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_UNIT_MULT(1.0)", + "name": "Unit multiplier code list", + "items": [ + { + "id": "0", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT_MULT(1.0).0", + "name": "Units" + }, + { + "id": "1", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT_MULT(1.0).1", + "name": "Tens" + }, + { + "id": "12", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT_MULT(1.0).12", + "name": "Trillions" + }, + { + "id": "15", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT_MULT(1.0).15", + "name": "Quadrillions" + }, + { + "id": "2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT_MULT(1.0).2", + "name": "Hundreds" + }, + { + "id": "-2", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT_MULT(1.0).-2", + "name": "Hundredth" + }, + { + "id": "3", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT_MULT(1.0).3", + "name": "Thousands" + }, + { + "id": "4", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT_MULT(1.0).4", + "name": "Tens of thousands" + }, + { + "id": "5", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT_MULT(1.0).5", + "name": "Hundreds of thousands" + }, + { + "id": "6", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT_MULT(1.0).6", + "name": "Millions" + }, + { + "id": "9", + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Code=ECB:CL_UNIT_MULT(1.0).9", + "name": "Billions" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=ECB:ECB_CONCEPTS(1.0)": { + "id": "ECB_CONCEPTS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.ConceptScheme=ECB:ECB_CONCEPTS(1.0)", + "name": "ECB concepts", + "items": [ + { + "id": "TIME_HORIZON", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TIME_HORIZON", + "name": "Time horizon" + }, + { + "id": "EMBARGO", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).EMBARGO", + "name": "Embargo" + }, + { + "id": "DATA_TYPE_FXS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE_FXS", + "name": "Data type in FXS context" + }, + { + "id": "WOB_TAXATION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).WOB_TAXATION", + "name": "Weekly oil bulletin taxation" + }, + { + "id": "REF_AREA_MEI", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).REF_AREA_MEI", + "name": "OECD MEI & QNA reference area" + }, + { + "id": "FCT_BREAKDOWN", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FCT_BREAKDOWN", + "name": "Forecast histograph breakdown" + }, + { + "id": "GOVNT_COUNT_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).GOVNT_COUNT_SECTOR", + "name": "Debtor resource liabil sector" + }, + { + "id": "COMPILATION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COMPILATION", + "name": "Compilation" + }, + { + "id": "ESA95_BREAKDOWN", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95_BREAKDOWN", + "name": "ESA95 breakdown" + }, + { + "id": "EXT_REF_AREA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).EXT_REF_AREA", + "name": "External reference area" + }, + { + "id": "ADJUST_DETAIL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ADJUST_DETAIL", + "name": "Adjustment detail" + }, + { + "id": "CIBL_CATEGORY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CIBL_CATEGORY", + "name": "Basis, measure" + }, + { + "id": "SHI_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SHI_SUFFIX", + "name": "Series variation -SHI context" + }, + { + "id": "STS_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).STS_SUFFIX", + "name": "Series variation - STS context" + }, + { + "id": "CIBL_TABLE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CIBL_TABLE", + "name": "Type of reporting banks" + }, + { + "id": "FUNCTIONAL_CAT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FUNCTIONAL_CAT", + "name": "Functional category" + }, + { + "id": "NA_PRICE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).NA_PRICE", + "name": "Nat accounts price reference" + }, + { + "id": "CB_REP_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CB_REP_SECTOR", + "name": "CBD reference sector breakdown" + }, + { + "id": "UNIT_PRICE_BASE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).UNIT_PRICE_BASE", + "name": "Unit price base" + }, + { + "id": "DATA_TYPE_LIG", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE_LIG", + "name": "Data type - LIG context" + }, + { + "id": "SOURCE_AGENCY_2", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SOURCE_AGENCY_2", + "name": "Source agency 2" + }, + { + "id": "ADJU_DETAIL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ADJU_DETAIL", + "name": "Adjustment detail" + }, + { + "id": "FM_MATURITY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FM_MATURITY", + "name": "Bond maturity" + }, + { + "id": "VALUATION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).VALUATION", + "name": "Valuation" + }, + { + "id": "UNIT_MEASURE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).UNIT_MEASURE", + "name": "Unit of measure" + }, + { + "id": "MUFA_VALUATION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MUFA_VALUATION", + "name": "MUFAs valuation" + }, + { + "id": "CB_EXP_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CB_EXP_TYPE", + "name": "CBD exposure type" + }, + { + "id": "ICP_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ICP_ITEM", + "name": "Classification - ICP context" + }, + { + "id": "CIBL_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CIBL_TYPE", + "name": "Data type (vis-a-vis sector / maturity / risk transfers etc.)" + }, + { + "id": "FM_LOT_SIZE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FM_LOT_SIZE", + "name": "Lot size units" + }, + { + "id": "AME_REF_AREA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).AME_REF_AREA", + "name": "Ameco reference area" + }, + { + "id": "FREQ", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FREQ", + "name": "Frequency" + }, + { + "id": "MARKET_ROLE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MARKET_ROLE", + "name": "Market role" + }, + { + "id": "BANKING_REF", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BANKING_REF", + "name": "Banking reference institution" + }, + { + "id": "BANKING_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BANKING_SUFFIX", + "name": "DBI suffix" + }, + { + "id": "COLLECTION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COLLECTION", + "name": "Collection indicator" + }, + { + "id": "IR_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).IR_TYPE", + "name": "Interest rate type" + }, + { + "id": "SAFE_ANSWER", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SAFE_ANSWER", + "name": "SAFE answer" + }, + { + "id": "COUNT_AREA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COUNT_AREA", + "name": "Counterpart area" + }, + { + "id": "ISSUER_AREA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ISSUER_AREA", + "name": "Issuer domicile country" + }, + { + "id": "CURRENCY_S", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CURRENCY_S", + "name": "Currency sale" + }, + { + "id": "DECIMALS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DECIMALS", + "name": "Decimals" + }, + { + "id": "EXT_TITLE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).EXT_TITLE", + "name": "External title" + }, + { + "id": "EXR_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).EXR_SUFFIX", + "name": "Series variation - EXR context" + }, + { + "id": "PUBLICATION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PUBLICATION", + "name": "ECB publication" + }, + { + "id": "INSTR_ASSET", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).INSTR_ASSET", + "name": "Instrument and assets classification" + }, + { + "id": "DISS_ORG", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DISS_ORG", + "name": "Data dissemination organisation" + }, + { + "id": "ISSUER_IN", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ISSUER_IN", + "name": "Split into EMU/non-EMU issuer" + }, + { + "id": "SOURCE_PUBL_2", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SOURCE_PUBL_2", + "name": "Publication source 2" + }, + { + "id": "CB_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CB_ITEM", + "name": "Consolidated banking data item" + }, + { + "id": "REPO_CPARTY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).REPO_CPARTY", + "name": "Repo counterparty" + }, + { + "id": "ESA95TP_CPAREA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95TP_CPAREA", + "name": "Counterpart area" + }, + { + "id": "PSS_INSTRUMENT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PSS_INSTRUMENT", + "name": "PSS instrument" + }, + { + "id": "OEO_CODE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OEO_CODE", + "name": "OEO code" + }, + { + "id": "MFI_STATUS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MFI_STATUS", + "name": "MFI status" + }, + { + "id": "DOM_SER_IDS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DOM_SER_IDS", + "name": "Domestic series ids" + }, + { + "id": "IN_OUT_DATA_IFI", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).IN_OUT_DATA_IFI", + "name": "IFI input-output data" + }, + { + "id": "ESA95_UNIT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95_UNIT", + "name": "Series unit - ESA95 context" + }, + { + "id": "TRG_ACCOUNT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TRG_ACCOUNT", + "name": "Type of accounts in TARGET2" + }, + { + "id": "CB_REP_FRAMEWRK", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CB_REP_FRAMEWRK", + "name": "CBD reporting framework" + }, + { + "id": "ESA95TP_PRICE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95TP_PRICE", + "name": "Valuation" + }, + { + "id": "MATURITY_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MATURITY_TYPE", + "name": "Maturity type" + }, + { + "id": "ICO_PAY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ICO_PAY", + "name": "Insurance corporations payments item" + }, + { + "id": "TRG_CATEGORY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TRG_CATEGORY", + "name": "Type of payments in TARGET2" + }, + { + "id": "MEASURE_MEI", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MEASURE_MEI", + "name": "OECD MEI measure" + }, + { + "id": "ICO_UNIT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ICO_UNIT", + "name": "Insurance corporations unit" + }, + { + "id": "NON_RESID_ECON_ACT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).NON_RESID_ECON_ACT", + "name": "Non-resident economic activity" + }, + { + "id": "RT_ECON_CONCEPT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).RT_ECON_CONCEPT", + "name": "Real time database item" + }, + { + "id": "TIME_FORMAT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TIME_FORMAT", + "name": "Time format code" + }, + { + "id": "BIS_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BIS_SUFFIX", + "name": "BIS suffix" + }, + { + "id": "TIME_PERIOD", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TIME_PERIOD", + "name": "Time period or range" + }, + { + "id": "FIRM_AGE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FIRM_AGE", + "name": "Firm age (SAFE)" + }, + { + "id": "TRD_PRODUCT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TRD_PRODUCT", + "name": "Product breakdown -TRD context" + }, + { + "id": "SSS_SYSTEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SSS_SYSTEM", + "name": "System in securities settlement and clearing context" + }, + { + "id": "REF_PERIOD_DETAIL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).REF_PERIOD_DETAIL", + "name": "Reference period detail" + }, + { + "id": "BS_REP_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BS_REP_SECTOR", + "name": "BS reference sector breakdown" + }, + { + "id": "BKN_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BKN_TYPE", + "name": "Banknote or coin" + }, + { + "id": "DD_TRANSF", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DD_TRANSF", + "name": "Derived data transformation" + }, + { + "id": "VAL_REPORT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).VAL_REPORT", + "name": "Publication sub-report value" + }, + { + "id": "EMBARGO_DETAIL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).EMBARGO_DETAIL", + "name": "Embargo details" + }, + { + "id": "CONF_STATUS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CONF_STATUS", + "name": "Confidentiality status" + }, + { + "id": "BDS_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BDS_ITEM", + "name": "Business demography item" + }, + { + "id": "ESA95TP_CONS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95TP_CONS", + "name": "Consolidation" + }, + { + "id": "METHOD_DETAIL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).METHOD_DETAIL", + "name": "Methodology detail" + }, + { + "id": "ESA95TP_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95TP_SUFFIX", + "name": "Reference table number" + }, + { + "id": "SSI_INDICATOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SSI_INDICATOR", + "name": "Structural statist indicator" + }, + { + "id": "MFI_LIST_IND", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MFI_LIST_IND", + "name": "Individual MFI list" + }, + { + "id": "PUBL_ECB", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PUBL_ECB", + "name": "Source publication (ECB only)" + }, + { + "id": "REF_AREA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).REF_AREA", + "name": "Reference area" + }, + { + "id": "PRE_BREAK_VALUE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PRE_BREAK_VALUE", + "name": "Pre-break value" + }, + { + "id": "FCT_TOPIC", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FCT_TOPIC", + "name": "Forecast topic" + }, + { + "id": "DD_ECON_CONCEPT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DD_ECON_CONCEPT", + "name": "Derived data economic concept" + }, + { + "id": "CPP_METHOD", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CPP_METHOD", + "name": "Method in CPP context" + }, + { + "id": "IVF_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).IVF_ITEM", + "name": "Investment funds item" + }, + { + "id": "FM_STRIKE_PRICE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FM_STRIKE_PRICE", + "name": "Strike price of the options" + }, + { + "id": "SUFFIX_QNA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SUFFIX_QNA", + "name": "OECD QNA suffix" + }, + { + "id": "STS_CONCEPT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).STS_CONCEPT", + "name": "Concept - STS context" + }, + { + "id": "BLS_COUNT_DETAIL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BLS_COUNT_DETAIL", + "name": "BLS counterpart motivation" + }, + { + "id": "MATURITY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MATURITY", + "name": "Maturity" + }, + { + "id": "AME_TRANSFORMATION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).AME_TRANSFORMATION", + "name": "Ameco transformation" + }, + { + "id": "OFI_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OFI_ITEM", + "name": "OFI balance sheet item" + }, + { + "id": "BIS_TOPIC", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BIS_TOPIC", + "name": "BIS economic phenomenon" + }, + { + "id": "WOB_CONCEPT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).WOB_CONCEPT", + "name": "Weekly oil bulletin concept" + }, + { + "id": "COUNTERPART_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COUNTERPART_SECTOR", + "name": "Counterpart sector" + }, + { + "id": "TRG_ANCILLARY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TRG_ANCILLARY", + "name": "Ancillary systems settling in TARGET2" + }, + { + "id": "COMMENT_TS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COMMENT_TS", + "name": "Title complement, detailed description of the series" + }, + { + "id": "UNIT_DETAIL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).UNIT_DETAIL", + "name": "Unit detail" + }, + { + "id": "ORGANISATION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ORGANISATION", + "name": "Organisation" + }, + { + "id": "MUFA_DEBT_AREA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MUFA_DEBT_AREA", + "name": "MUFA debtor area" + }, + { + "id": "TIME_PER_COLLECT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TIME_PER_COLLECT", + "name": "Time period collection" + }, + { + "id": "FVC_REP_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FVC_REP_SECTOR", + "name": "Reporting sector in financial vehicle corporation context" + }, + { + "id": "PD_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PD_ITEM", + "name": "Projection database item" + }, + { + "id": "UNIT_INDEX_BASE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).UNIT_INDEX_BASE", + "name": "Unit index base" + }, + { + "id": "STS_CLASS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).STS_CLASS", + "name": "Classification - STS context" + }, + { + "id": "PUBL_PUBLIC", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PUBL_PUBLIC", + "name": "Source publication (public)" + }, + { + "id": "CB_VAL_METHOD", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CB_VAL_METHOD", + "name": "CBD valuation method" + }, + { + "id": "OPTION_TYPE_PDF", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OPTION_TYPE_PDF", + "name": "Option type in the PDF context" + }, + { + "id": "VIS_CTY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).VIS_CTY", + "name": "Vis-a-vis country" + }, + { + "id": "SEC_ISSUING_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SEC_ISSUING_SECTOR", + "name": "Securities issuing sector" + }, + { + "id": "IR_BUS_COV", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).IR_BUS_COV", + "name": "IR business coverage" + }, + { + "id": "COUNT_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COUNT_SECTOR", + "name": "Counterpart sector" + }, + { + "id": "RPP_SOURCE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).RPP_SOURCE", + "name": "Source of property price statistics" + }, + { + "id": "CB_SECTOR_SIZE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CB_SECTOR_SIZE", + "name": "CBD reference sector size" + }, + { + "id": "FLOW_STOCK_ENTRY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FLOW_STOCK_ENTRY", + "name": "Flows and stocks indicator" + }, + { + "id": "MA_FLAG", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MA_FLAG", + "name": "Macro-adjustment flag" + }, + { + "id": "FXS_OP_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FXS_OP_TYPE", + "name": "Operation type in FXS context" + }, + { + "id": "AME_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).AME_ITEM", + "name": "Ameco item" + }, + { + "id": "ESA95TP_REGION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95TP_REGION", + "name": "NUTS 3 regional classification" + }, + { + "id": "IFS_CODE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).IFS_CODE", + "name": "IFS code" + }, + { + "id": "ICPF_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ICPF_ITEM", + "name": "Insurance corporations and pension funds assets and liabilities" + }, + { + "id": "SOURCE_DETAIL_2", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SOURCE_DETAIL_2", + "name": "Source detail 2" + }, + { + "id": "RPP_DWELLING", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).RPP_DWELLING", + "name": "Type of residential property" + }, + { + "id": "METHOD_REF", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).METHOD_REF", + "name": "Methodology reference" + }, + { + "id": "OECD_A16_CODE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OECD_A16_CODE", + "name": "OECD A16 code" + }, + { + "id": "SUBJECT_OEO", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SUBJECT_OEO", + "name": "OECD Economic Outlook subject" + }, + { + "id": "FM_IDENTIFIER", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FM_IDENTIFIER", + "name": "Financial instrument Identifier" + }, + { + "id": "RESID_ECON_ACT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).RESID_ECON_ACT", + "name": "Resident economic activity" + }, + { + "id": "MM_SEGMENT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MM_SEGMENT", + "name": "Money market segment" + }, + { + "id": "SERIES_DENOM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SERIES_DENOM", + "name": "Series denominat/spec calcul" + }, + { + "id": "FLOATING_RATE_BASE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FLOATING_RATE_BASE", + "name": "Floating rate base" + }, + { + "id": "PSS_INFO_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PSS_INFO_TYPE", + "name": "PSS information type" + }, + { + "id": "DATA_TYPE_PDF", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE_PDF", + "name": "Data type in the PDF context" + }, + { + "id": "UNIT_MULT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).UNIT_MULT", + "name": "Unit multiplier" + }, + { + "id": "BKN_SERIES", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BKN_SERIES", + "name": "Banknote/coin series" + }, + { + "id": "UNIT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).UNIT", + "name": "Unit" + }, + { + "id": "HOLDER_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).HOLDER_SECTOR", + "name": "Holder sector" + }, + { + "id": "TRD_FLOW", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TRD_FLOW", + "name": "External trade flow" + }, + { + "id": "SHI_INDICATOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SHI_INDICATOR", + "name": "Structural housing indicators" + }, + { + "id": "BIS_BLOCK", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BIS_BLOCK", + "name": "International Financial Statistics block" + }, + { + "id": "MEASURE_SNA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MEASURE_SNA", + "name": "OECD SNA measure" + }, + { + "id": "BKN_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BKN_ITEM", + "name": "Banknote & coin related items" + }, + { + "id": "TITLE_COMPL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TITLE_COMPL", + "name": "Title complement" + }, + { + "id": "MUFA_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MUFA_ITEM", + "name": "MUFA item" + }, + { + "id": "ISSUER_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ISSUER_SECTOR", + "name": "Issuer ESA 2010 sector" + }, + { + "id": "DATA_TYPE_MM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE_MM", + "name": "Data type in money market survey context" + }, + { + "id": "MARKET_TRANS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MARKET_TRANS", + "name": "FXS market type transaction" + }, + { + "id": "WEO_REF_AREA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).WEO_REF_AREA", + "name": "WEO reference area" + }, + { + "id": "SECURITISATION_TYP", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SECURITISATION_TYP", + "name": "Asset securitisation type" + }, + { + "id": "ISSUER_RBG", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ISSUER_RBG", + "name": "Participation of the issuer in the reporting group" + }, + { + "id": "GOVNT_REF_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).GOVNT_REF_SECTOR", + "name": "Creditor user assets sector" + }, + { + "id": "PROPERTY_IND", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PROPERTY_IND", + "name": "Property indicator" + }, + { + "id": "ADJUSTMENT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ADJUSTMENT", + "name": "Adjustment indicator" + }, + { + "id": "NAT_TITLE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).NAT_TITLE", + "name": "National language title" + }, + { + "id": "WEO_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).WEO_ITEM", + "name": "WEO item" + }, + { + "id": "SEC_VALUATION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SEC_VALUATION", + "name": "Securities valuation" + }, + { + "id": "ACCOUNT_ENTRY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ACCOUNT_ENTRY", + "name": "Accounting entries" + }, + { + "id": "FCT_SOURCE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FCT_SOURCE", + "name": "Forecaster identifier" + }, + { + "id": "MUFA_SOURCE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MUFA_SOURCE", + "name": "MUFA source" + }, + { + "id": "REF_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).REF_SECTOR", + "name": "Reference sector" + }, + { + "id": "SEE_SYSTEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SEE_SYSTEM", + "name": "System in securities exchange (trading) context" + }, + { + "id": "AMOUNT_CAT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).AMOUNT_CAT", + "name": "Amount category" + }, + { + "id": "FM_CONTRACT_TIME", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FM_CONTRACT_TIME", + "name": "Contract month/expired date" + }, + { + "id": "RPP_GEO_COV", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).RPP_GEO_COV", + "name": "Property geographical coverage" + }, + { + "id": "COLLATERAL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COLLATERAL", + "name": "Collateral" + }, + { + "id": "PROPERTY_CPP", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PROPERTY_CPP", + "name": "Property types in CPP context" + }, + { + "id": "TRG_BAND", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TRG_BAND", + "name": "Value & time bands for TARGET2 operations" + }, + { + "id": "SAFE_FILTER", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SAFE_FILTER", + "name": "SAFE filter - applicable answer" + }, + { + "id": "IR_FV_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).IR_FV_TYPE", + "name": "Interest rate type (fix/var)" + }, + { + "id": "BANKING_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BANKING_ITEM", + "name": "Banking reference BS/P&L Item" + }, + { + "id": "OBS_COM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OBS_COM", + "name": "Observation comment" + }, + { + "id": "CURRENCY_DENOM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CURRENCY_DENOM", + "name": "Currency denominator" + }, + { + "id": "IS_IN_EADB", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).IS_IN_EADB", + "name": "Is in EADB" + }, + { + "id": "EXT_UNIT_MULT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).EXT_UNIT_MULT", + "name": "External unit multiplier" + }, + { + "id": "VAL_COLUMN", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).VAL_COLUMN", + "name": "Publication column value" + }, + { + "id": "CREDIT_RATING", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CREDIT_RATING", + "name": "Programme credit rating" + }, + { + "id": "SOURCE_AGENCY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SOURCE_AGENCY", + "name": "Source agency" + }, + { + "id": "AVAILABILITY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).AVAILABILITY", + "name": "Availability" + }, + { + "id": "BS_COUNT_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BS_COUNT_SECTOR", + "name": "BS counterpart sector" + }, + { + "id": "MATURITY_RES", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MATURITY_RES", + "name": "Residual maturity" + }, + { + "id": "DATA_TYPE_DBI", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE_DBI", + "name": "Data type - DBI context" + }, + { + "id": "SUBJECT_MEI", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SUBJECT_MEI", + "name": "OECD MEI subject" + }, + { + "id": "BLS_AGG_METHOD", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BLS_AGG_METHOD", + "name": "BLS aggregation method" + }, + { + "id": "FCT_HORIZON", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FCT_HORIZON", + "name": "Forecast horizon" + }, + { + "id": "FM_OUTS_AMOUNT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FM_OUTS_AMOUNT", + "name": "Outstanding amount" + }, + { + "id": "R_L_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).R_L_SECTOR", + "name": "Resource or liability sector" + }, + { + "id": "BANK_SELECTION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BANK_SELECTION", + "name": "Bank selection" + }, + { + "id": "AREA_DEFINITION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).AREA_DEFINITION", + "name": "Area definition" + }, + { + "id": "SOURCE_DATA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SOURCE_DATA", + "name": "Raw statistical data source" + }, + { + "id": "OBS_STATUS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OBS_STATUS", + "name": "Observation status" + }, + { + "id": "EXT_UNIT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).EXT_UNIT", + "name": "External unit" + }, + { + "id": "TPH", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TPH", + "name": "Third party holdings flag" + }, + { + "id": "SEC_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SEC_ITEM", + "name": "Securities item" + }, + { + "id": "REP_CTY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).REP_CTY", + "name": "Reporting country" + }, + { + "id": "ESA95TP_DENOM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95TP_DENOM", + "name": "Denomination" + }, + { + "id": "MATURITY_ORIG", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MATURITY_ORIG", + "name": "Original maturity" + }, + { + "id": "PORTFOLIO_CAT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PORTFOLIO_CAT", + "name": "Portfolio category" + }, + { + "id": "NOM_CURR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).NOM_CURR", + "name": "Nominal currency of the security" + }, + { + "id": "EXR_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).EXR_TYPE", + "name": "Exchange rate type" + }, + { + "id": "STS_INSTITUTION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).STS_INSTITUTION", + "name": "Institution originating the data flow" + }, + { + "id": "COMP_APPROACH", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COMP_APPROACH", + "name": "Compilation approach indicator" + }, + { + "id": "EONIA_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).EONIA_ITEM", + "name": "EONIA item" + }, + { + "id": "PSS_SYSTEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PSS_SYSTEM", + "name": "PSS entry point" + }, + { + "id": "OTHER_METH_EXPL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OTHER_METH_EXPL", + "name": "Methodological explanation" + }, + { + "id": "SOURCE_DETAIL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SOURCE_DETAIL", + "name": "Source detail" + }, + { + "id": "RT_DENOM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).RT_DENOM", + "name": "Real time database series denomination" + }, + { + "id": "COUNT_AREA_IFS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COUNT_AREA_IFS", + "name": "IFS counterpart area" + }, + { + "id": "PROVIDER_FM_ID", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PROVIDER_FM_ID", + "name": "Financial market provider identifier" + }, + { + "id": "OBS_VALUE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OBS_VALUE", + "name": "Observation value" + }, + { + "id": "GROUP_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).GROUP_TYPE", + "name": "Group type" + }, + { + "id": "OFI_REP_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OFI_REP_SECTOR", + "name": "OFI reporting sector" + }, + { + "id": "VAL_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).VAL_ITEM", + "name": "Publication item value" + }, + { + "id": "BOP_BASIS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BOP_BASIS", + "name": "BoP data collection basis" + }, + { + "id": "IVF_REP_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).IVF_REP_SECTOR", + "name": "Investment funds reporting sector" + }, + { + "id": "OBS_CONF", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OBS_CONF", + "name": "Observation confidentiality" + }, + { + "id": "COVERAGE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COVERAGE", + "name": "Coverage" + }, + { + "id": "BLS_COUNT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BLS_COUNT", + "name": "BLS contract counterpart" + }, + { + "id": "MATURITY_NOT_IRATE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MATURITY_NOT_IRATE", + "name": "Original maturity/Period of notice/Initial rate fixation" + }, + { + "id": "TRD_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TRD_SUFFIX", + "name": "Series variation -TRD context" + }, + { + "id": "FVC_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FVC_ITEM", + "name": "Assets and liabilities item in financial vehicle corporation context" + }, + { + "id": "STO", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).STO", + "name": "Stocks, Transactions, Other Flows" + }, + { + "id": "PUBL_MU", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PUBL_MU", + "name": "Source publication (Euro area only)" + }, + { + "id": "DATA_TYPE_MIR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE_MIR", + "name": "MFI interest rate data type" + }, + { + "id": "SUBJECT_SNA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SUBJECT_SNA", + "name": "OECD SNA subject" + }, + { + "id": "TRADE_WEIGHT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TRADE_WEIGHT", + "name": "Weight in trade flows" + }, + { + "id": "SSS_INSTRUMENT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SSS_INSTRUMENT", + "name": "Instrument in securities settlement, clearing and trading context" + }, + { + "id": "BKN_DENOM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BKN_DENOM", + "name": "BKN denomination breakdown" + }, + { + "id": "PD_ORIGIN", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PD_ORIGIN", + "name": "Projection database data origin" + }, + { + "id": "REPORTING_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).REPORTING_SECTOR", + "name": "Reporting sector" + }, + { + "id": "SAFE_QUESTION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SAFE_QUESTION", + "name": "SAFE question" + }, + { + "id": "GOVNT_ST_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).GOVNT_ST_SUFFIX", + "name": "Series variation - GST context" + }, + { + "id": "MEASURE_QNA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MEASURE_QNA", + "name": "OECD QNA measure" + }, + { + "id": "DATA_TYPE_BKN", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE_BKN", + "name": "Banknote & coin data type" + }, + { + "id": "AME_REFERENCE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).AME_REFERENCE", + "name": "Ameco reference" + }, + { + "id": "U_A_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).U_A_SECTOR", + "name": "Use or asset sector" + }, + { + "id": "INT_ACC_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).INT_ACC_ITEM", + "name": "International accounts item" + }, + { + "id": "MUFA_CRED_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MUFA_CRED_SECTOR", + "name": "MUFA creditor sector" + }, + { + "id": "FVC_ORI_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FVC_ORI_SECTOR", + "name": "Originator sector in financial vehicle corporation context" + }, + { + "id": "RPP_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).RPP_SUFFIX", + "name": "Series variation - RPP context" + }, + { + "id": "BLS_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BLS_ITEM", + "name": "Bank lending survey item" + }, + { + "id": "ESCB_FLAG", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESCB_FLAG", + "name": "ESCB flag" + }, + { + "id": "INSTRUMENT_FM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).INSTRUMENT_FM", + "name": "Financial market instrument" + }, + { + "id": "METHOD_PUBL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).METHOD_PUBL", + "name": "Methodology publication" + }, + { + "id": "ESA95TP_COM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95TP_COM", + "name": "Product breakdown" + }, + { + "id": "RIR_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).RIR_SUFFIX", + "name": "Series variation - IR context" + }, + { + "id": "MFI_LIST", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MFI_LIST", + "name": "MFI category" + }, + { + "id": "FIRM_OWNERSHIP", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FIRM_OWNERSHIP", + "name": "Firm other breakdowns (ownership, export) (SAFE)" + }, + { + "id": "PD_SEAS_EX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PD_SEAS_EX", + "name": "Projection database season exercise" + }, + { + "id": "CURRENCY_TRANS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CURRENCY_TRANS", + "name": "Currency of transaction" + }, + { + "id": "SUBJECT_QNA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SUBJECT_QNA", + "name": "OECD QNA subject" + }, + { + "id": "FM_COUPON_RATE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FM_COUPON_RATE", + "name": "Coupon rate of the bond" + }, + { + "id": "SAFE_DENOM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SAFE_DENOM", + "name": "Denomination in SAFE context" + }, + { + "id": "TR_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TR_TYPE", + "name": "Transaction type" + }, + { + "id": "DATA_TYPE_BOP", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE_BOP", + "name": "Data type - BoP related data" + }, + { + "id": "INS_BUS_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).INS_BUS_TYPE", + "name": "Type of insurance business" + }, + { + "id": "MM_BANK", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MM_BANK", + "name": "Money market bank" + }, + { + "id": "LIG_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).LIG_ITEM", + "name": "Large insurance group related items" + }, + { + "id": "EFFECT_DOMAIN", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).EFFECT_DOMAIN", + "name": "Effect domain" + }, + { + "id": "SEC_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SEC_SUFFIX", + "name": "Series suffix - SEC context" + }, + { + "id": "FIRM_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FIRM_SECTOR", + "name": "Firm economic activity (SAFE)" + }, + { + "id": "ESA95TP_DC_AL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95TP_DC_AL", + "name": "Uses and resources" + }, + { + "id": "DATA_TYPE_PSS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE_PSS", + "name": "PSS data type" + }, + { + "id": "EONIA_BANK", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).EONIA_BANK", + "name": "EONIA bank" + }, + { + "id": "COMP_METHOD", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COMP_METHOD", + "name": "Compiliation methodology" + }, + { + "id": "DATA_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE", + "name": "Data type" + }, + { + "id": "CURR_BRKDWN", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CURR_BRKDWN", + "name": "Currency breakdown" + }, + { + "id": "ICP_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ICP_SUFFIX", + "name": "Series variation - ICP context" + }, + { + "id": "VAL_ROW", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).VAL_ROW", + "name": "Publication row value" + }, + { + "id": "ESA95_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95_SUFFIX", + "name": "Series suffix - ESA95 context" + }, + { + "id": "STOCK_FLOW", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).STOCK_FLOW", + "name": "Stock/flow" + }, + { + "id": "CCP_SYSTEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CCP_SYSTEM", + "name": "System in the central counterparty clearing context" + }, + { + "id": "ESA95TP_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95TP_SECTOR", + "name": "Reporting institutional sector" + }, + { + "id": "GOVNT_ITEM_ESA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).GOVNT_ITEM_ESA", + "name": "ESA item - GST context" + }, + { + "id": "RBG_ID", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).RBG_ID", + "name": "Reporting group" + }, + { + "id": "HOLDER_AREA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).HOLDER_AREA", + "name": "Holder country" + }, + { + "id": "OLV_INDICATOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OLV_INDICATOR", + "name": "Oversight Indicators" + }, + { + "id": "AGG_EQUN", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).AGG_EQUN", + "name": "Aggregation equations" + }, + { + "id": "FM_PUT_CALL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FM_PUT_CALL", + "name": "options type" + }, + { + "id": "PRICE_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PRICE_TYPE", + "name": "Price type" + }, + { + "id": "CURRENCY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CURRENCY", + "name": "Currency" + }, + { + "id": "ESA95TP_TRANS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95TP_TRANS", + "name": "Transactions and other flows" + }, + { + "id": "SAFE_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SAFE_ITEM", + "name": "SAFE question related item" + }, + { + "id": "DEBT_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DEBT_TYPE", + "name": "Debt type" + }, + { + "id": "COMPILING_ORG", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COMPILING_ORG", + "name": "Compiling organisation" + }, + { + "id": "DD_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DD_SUFFIX", + "name": "Derived data suffix" + }, + { + "id": "TITLE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TITLE", + "name": "Title" + }, + { + "id": "PRICE_BASE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PRICE_BASE", + "name": "Price base" + }, + { + "id": "ESA95TP_ASSET", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95TP_ASSET", + "name": "Asset/instr classification" + }, + { + "id": "SURVEY_FREQ", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SURVEY_FREQ", + "name": "Frequency of the survey" + }, + { + "id": "SSS_INFO_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SSS_INFO_TYPE", + "name": "Information type in securities settlement, clearing, trading context" + }, + { + "id": "REP_DELAY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).REP_DELAY", + "name": "Reporting delay" + }, + { + "id": "AME_UNIT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).AME_UNIT", + "name": "Ameco unit" + }, + { + "id": "ESA95TP_CPSECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95TP_CPSECTOR", + "name": "Counterpart institution sector" + }, + { + "id": "MUFA_CRED_AREA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MUFA_CRED_AREA", + "name": "MUFA creditor area" + }, + { + "id": "COMMENT_OBS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COMMENT_OBS", + "name": "Comments to the observation value" + }, + { + "id": "ESA95TP_BRKDWN", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95TP_BRKDWN", + "name": "Activity/product/other brkdwns" + }, + { + "id": "METHOD_AGENCY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).METHOD_AGENCY", + "name": "Methodology agency" + }, + { + "id": "OBS_PRE_BREAK", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OBS_PRE_BREAK", + "name": "Pre-break observation value" + }, + { + "id": "COUNTERPART_AREA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COUNTERPART_AREA", + "name": "Counterpart area" + }, + { + "id": "MATURITY_CAT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MATURITY_CAT", + "name": "Maturity category" + }, + { + "id": "FIRM_TURNOVER", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FIRM_TURNOVER", + "name": "Firm turnover (SAFE)" + }, + { + "id": "GOVNT_VALUATION", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).GOVNT_VALUATION", + "name": "Valuation - GST context" + }, + { + "id": "MUFA_DEBT_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MUFA_DEBT_SECTOR", + "name": "MUFA debtor sector" + }, + { + "id": "AME_AGG_METHOD", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).AME_AGG_METHOD", + "name": "Ameco aggregation method" + }, + { + "id": "BS_NFC_ACTIVITY", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BS_NFC_ACTIVITY", + "name": "Activity" + }, + { + "id": "DATA_TYPE_IFI", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE_IFI", + "name": "Data type - IFI context" + }, + { + "id": "EAPLUS_FLAG", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).EAPLUS_FLAG", + "name": "EAPlus flag" + }, + { + "id": "BREAKS", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BREAKS", + "name": "Breaks" + }, + { + "id": "DATA_COMP", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_COMP", + "name": "Underlying compilation" + }, + { + "id": "PROPERTY_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PROPERTY_SUFFIX", + "name": "Property data series variation" + }, + { + "id": "BS_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BS_SUFFIX", + "name": "Balance sheet suffix" + }, + { + "id": "DATA_TYPE_FM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE_FM", + "name": "Financial market data type" + }, + { + "id": "SECURITY_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SECURITY_TYPE", + "name": "Security type" + }, + { + "id": "BOP_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BOP_ITEM", + "name": "Balance of Payment item" + }, + { + "id": "FIRM_SIZE", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FIRM_SIZE", + "name": "Firm size (SAFE)" + }, + { + "id": "DATA_TYPE_MUFA", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE_MUFA", + "name": "Data type - MUFAs context" + }, + { + "id": "CURRENCY_P_H", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CURRENCY_P_H", + "name": "Currency purchase - holding" + }, + { + "id": "BANKING_IND", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BANKING_IND", + "name": "Banking indicator" + }, + { + "id": "COLLECTION_DETAIL", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COLLECTION_DETAIL", + "name": "Collection explanation detail" + }, + { + "id": "DATA_TYPE_SEC", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE_SEC", + "name": "Securities data type" + }, + { + "id": "BS_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BS_ITEM", + "name": "Balance sheet item" + }, + { + "id": "PROVIDER_FM", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PROVIDER_FM", + "name": "Financial market provider" + }, + { + "id": "SOURCE_PUB", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SOURCE_PUB", + "name": "Publication source" + }, + { + "id": "CB_PORTFOLIO", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CB_PORTFOLIO", + "name": "CBD portfolio" + }, + { + "id": "ESA95_ACCOUNT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ESA95_ACCOUNT", + "name": "ESA95 account" + }, + { + "id": "OIL_PRODUCT", + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OIL_PRODUCT", + "name": "Oil product" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=ECB:ECB_BSI1(1.0)": { + "id": "ECB_BSI1", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=ECB:ECB_BSI1(1.0)", + "name": "Balance Sheet Items", + "dimensions": [ + { + "id": "FREQ", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=ECB:ECB_BSI1(1.0).FREQ", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).FREQ" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_FREQ(1.0)" + } + } + }, + { + "id": "REF_AREA", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=ECB:ECB_BSI1(1.0).REF_AREA", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).REF_AREA" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_AREA_EE(1.0)" + } + } + }, + { + "id": "ADJUSTMENT", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=ECB:ECB_BSI1(1.0).ADJUSTMENT", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).ADJUSTMENT" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_ADJUSTMENT(1.0)" + } + } + }, + { + "id": "BS_REP_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=ECB:ECB_BSI1(1.0).BS_REP_SECTOR", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BS_REP_SECTOR" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_BS_REP_SECTOR(1.0)" + } + } + }, + { + "id": "BS_ITEM", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=ECB:ECB_BSI1(1.0).BS_ITEM", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BS_ITEM" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_BS_ITEM(1.0)" + } + } + }, + { + "id": "MATURITY_ORIG", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=ECB:ECB_BSI1(1.0).MATURITY_ORIG", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).MATURITY_ORIG" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_MATURITY_ORIG(1.0)" + } + } + }, + { + "id": "DATA_TYPE", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=ECB:ECB_BSI1(1.0).DATA_TYPE", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DATA_TYPE" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_DATA_TYPE(1.0)" + } + } + }, + { + "id": "COUNT_AREA", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=ECB:ECB_BSI1(1.0).COUNT_AREA", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COUNT_AREA" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_AREA_EE(1.0)" + } + } + }, + { + "id": "BS_COUNT_SECTOR", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=ECB:ECB_BSI1(1.0).BS_COUNT_SECTOR", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BS_COUNT_SECTOR" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_BS_COUNT_SECTOR(1.0)" + } + } + }, + { + "id": "CURRENCY_TRANS", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=ECB:ECB_BSI1(1.0).CURRENCY_TRANS", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).CURRENCY_TRANS" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_CURRENCY(1.0)" + } + } + }, + { + "id": "BS_SUFFIX", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dimension=ECB:ECB_BSI1(1.0).BS_SUFFIX", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BS_SUFFIX" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_BS_SUFFIX(1.0)" + } + } + }, + { + "id": "TIME_PERIOD", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.TimeDimension=ECB:ECB_BSI1(1.0).TIME_PERIOD", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TIME_PERIOD" + }, + "representation": { + "textFormat": { + "textType": "ObservationalTimePeriod" + } + } + } + ], + "groups": [ + { + "id": "Group", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.GroupDimensionDescriptor=ECB:ECB_BSI1(1.0).Group", + "dimensionReferences": [ + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + ], + "attributes": [ + { + "id": "TIME_FORMAT", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).TIME_FORMAT", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TIME_FORMAT" + }, + "representation": { + "textFormat": { + "textType": "String", + "minLength": 3, + "maxLength": 3 + } + }, + "assignmentStatus": "Mandatory", + "attributeRelationship": { + "dimensions": [ + "FREQ", + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "OBS_STATUS", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).OBS_STATUS", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OBS_STATUS" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_OBS_STATUS(1.0)" + } + }, + "assignmentStatus": "Mandatory", + "attributeRelationship": { + "primaryMeasure": "OBS_VALUE" + } + }, + { + "id": "OBS_CONF", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).OBS_CONF", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OBS_CONF" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_OBS_CONF(1.0)" + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "primaryMeasure": "OBS_VALUE" + } + }, + { + "id": "OBS_PRE_BREAK", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).OBS_PRE_BREAK", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OBS_PRE_BREAK" + }, + "representation": { + "textFormat": { + "textType": "String", + "maxLength": 15 + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "primaryMeasure": "OBS_VALUE" + } + }, + { + "id": "OBS_COM", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).OBS_COM", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OBS_COM" + }, + "representation": { + "textFormat": { + "textType": "String", + "maxLength": 1050 + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "primaryMeasure": "OBS_VALUE" + } + }, + { + "id": "BREAKS", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).BREAKS", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).BREAKS" + }, + "representation": { + "textFormat": { + "textType": "String", + "maxLength": 350 + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "dimensions": [ + "FREQ", + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "COLLECTION", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).COLLECTION", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COLLECTION" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_COLLECTION(1.0)" + } + }, + "assignmentStatus": "Mandatory", + "attributeRelationship": { + "dimensions": [ + "FREQ", + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "DOM_SER_IDS", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).DOM_SER_IDS", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DOM_SER_IDS" + }, + "representation": { + "textFormat": { + "textType": "String", + "maxLength": 70 + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "dimensions": [ + "FREQ", + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "PUBL_ECB", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).PUBL_ECB", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PUBL_ECB" + }, + "representation": { + "textFormat": { + "textType": "String", + "maxLength": 1050 + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "dimensions": [ + "FREQ", + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "PUBL_MU", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).PUBL_MU", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PUBL_MU" + }, + "representation": { + "textFormat": { + "textType": "String", + "maxLength": 1050 + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "dimensions": [ + "FREQ", + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "PUBL_PUBLIC", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).PUBL_PUBLIC", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).PUBL_PUBLIC" + }, + "representation": { + "textFormat": { + "textType": "String", + "maxLength": 1050 + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "dimensions": [ + "FREQ", + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "UNIT_INDEX_BASE", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).UNIT_INDEX_BASE", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).UNIT_INDEX_BASE" + }, + "representation": { + "textFormat": { + "textType": "String", + "maxLength": 35 + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "dimensions": [ + "FREQ", + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "COMPILATION", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).COMPILATION", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).COMPILATION" + }, + "representation": { + "textFormat": { + "textType": "String", + "maxLength": 1050 + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "dimensions": [ + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "DECIMALS", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).DECIMALS", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).DECIMALS" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_DECIMALS(1.0)" + } + }, + "assignmentStatus": "Mandatory", + "attributeRelationship": { + "dimensions": [ + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "NAT_TITLE", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).NAT_TITLE", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).NAT_TITLE" + }, + "representation": { + "textFormat": { + "textType": "String", + "maxLength": 350 + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "dimensions": [ + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "SOURCE_AGENCY", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).SOURCE_AGENCY", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).SOURCE_AGENCY" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_ORGANISATION(1.0)" + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "dimensions": [ + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "TITLE", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).TITLE", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TITLE" + }, + "representation": { + "textFormat": { + "textType": "String", + "maxLength": 70 + } + }, + "assignmentStatus": "Conditional", + "attributeRelationship": { + "dimensions": [ + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "TITLE_COMPL", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).TITLE_COMPL", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).TITLE_COMPL" + }, + "representation": { + "textFormat": { + "textType": "String", + "maxLength": 1050 + } + }, + "assignmentStatus": "Mandatory", + "attributeRelationship": { + "dimensions": [ + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "UNIT", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).UNIT", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).UNIT" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_UNIT(1.0)" + } + }, + "assignmentStatus": "Mandatory", + "attributeRelationship": { + "dimensions": [ + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + }, + { + "id": "UNIT_MULT", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataAttribute=ECB:ECB_BSI1(1.0).UNIT_MULT", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).UNIT_MULT" + }, + "representation": { + "enumeration": { + "urn": "urn:sdmx:org.sdmx.infomodel.codelist.Codelist=ECB:CL_UNIT_MULT(1.0)" + } + }, + "assignmentStatus": "Mandatory", + "attributeRelationship": { + "dimensions": [ + "REF_AREA", + "ADJUSTMENT", + "BS_REP_SECTOR", + "BS_ITEM", + "MATURITY_ORIG", + "DATA_TYPE", + "COUNT_AREA", + "BS_COUNT_SECTOR", + "CURRENCY_TRANS", + "BS_SUFFIX" + ] + } + } + ], + "measures": [ + { + "id": "OBS_VALUE", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.PrimaryMeasure=ECB:ECB_BSI1(1.0).OBS_VALUE", + "conceptIdentity": { + "urn": "urn:sdmx:org.sdmx.infomodel.conceptscheme.Concept=ECB:ECB_CONCEPTS(1.0).OBS_VALUE" + } + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.registry.ContentConstraint=ECB.DISS:BSI_PUB_CONSTRAINTS(1.0)": { + "id": "BSI_PUB_CONSTRAINTS", + "urn": "urn:sdmx:org.sdmx.infomodel.registry.ContentConstraint=ECB.DISS:BSI_PUB_CONSTRAINTS(1.0)", + "name": "List of published series (BSI flow)", + "type": "Allowed", + "constraintAttachment": { + "dataflows": [ + { + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:BSI_PUB(1.0)" + } + ] + } + } + } +} From 0630f147e11b6d146290fb79aa7401a20cfc201b Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Tue, 1 Dec 2015 19:40:24 +0100 Subject: [PATCH 016/161] References now handled as HATEOAS links --- .../samples/browse-by-topic/step2.json | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/structure-message/samples/browse-by-topic/step2.json b/structure-message/samples/browse-by-topic/step2.json index fffea3d..70819e6 100644 --- a/structure-message/samples/browse-by-topic/step2.json +++ b/structure-message/samples/browse-by-topic/step2.json @@ -21,9 +21,21 @@ "id": "01", "name": "Monetary operations", "references": [ - "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:ILM_PUB(1.0)", - "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:FM_PUB(1.0)", - "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:BSI_PUB(1.0)" + { + "href": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:ILM_PUB(1.0)", + "rel": "request", + "type": "dataflow" + }, + { + "href": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:FM_PUB(1.0)", + "rel": "request", + "type": "dataflow" + }, + { + "href": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:BSI_PUB(1.0)", + "rel": "request", + "type": "dataflow" + } ] } ] From 27e3292c377f706137ca79494cc94f5f34419ec1 Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Tue, 1 Dec 2015 19:45:51 +0100 Subject: [PATCH 017/161] References to DSDs now handled as HATEOAS links --- .../samples/browse-by-topic/step2.json | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/structure-message/samples/browse-by-topic/step2.json b/structure-message/samples/browse-by-topic/step2.json index 70819e6..b6527b1 100644 --- a/structure-message/samples/browse-by-topic/step2.json +++ b/structure-message/samples/browse-by-topic/step2.json @@ -46,33 +46,33 @@ "agencyID": "ECB.DISS", "version": "1.0", "name": "Internal Liquidity Management - Published series", - "structure": { - "id": "ECB_ILM1", - "agencyID": "ECB", - "version": "1.0" - } + "references": [{ + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_ILM1/1.0", + "rel": "structure", + "type": "datastructure" + }] }, "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:FM_PUB(1.0)": { "id": "FM_PUB", "agencyID": "ECB.DISS", "version": "1.0", "name": "Financial market data - Published series", - "structure": { - "id": "ECB_FMD2", - "agencyID": "ECB", - "version": "1.0" - } + "references": [{ + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_FMD2/1.0", + "rel": "structure", + "type": "datastructure" + }] }, "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:BSI_PUB(1.0)": { "id": "BSI_PUB", "agencyID": "ECB.DISS", "version": "1.0", "name": "Balance Sheet Items - Published series", - "structure": { - "id": "ECB_BSI1", - "agencyID": "ECB", - "version": "1.0" - } + "references": [{ + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_BSI1/1.0", + "rel": "structure", + "type": "datastructure" + }] } } } From 7107c14e5d1d16e27e124d87ebc3e22683f35a7c Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Wed, 2 Dec 2015 09:35:53 +0100 Subject: [PATCH 018/161] Moved to a two-queries approach --- .../requirements/browse-by-topic.md | 58 ++++++------------- 1 file changed, 17 insertions(+), 41 deletions(-) diff --git a/structure-message/requirements/browse-by-topic.md b/structure-message/requirements/browse-by-topic.md index 7bf6dd3..3bdc0f0 100644 --- a/structure-message/requirements/browse-by-topic.md +++ b/structure-message/requirements/browse-by-topic.md @@ -6,17 +6,13 @@ Browsing a list of *topics* (i.e. statistical domains) is a common way for users ## Artefacts involved -The following SDMX artefacts are needed to support this use case: +At least the following SDMX artefacts are needed to support this use case: -- Maintenance Agency -- Data Provider - Category Scheme -- Categorisation - Dataflow -- Content Constraint -- Data Structure Definition -- Concept -- Codelist +- ContentConstraint + +One of the guiding principles of SDMX-JSON is to make the artefacts useful on their own (i.e. standalone). This means that the `ContentConstraint` will embed the codes and concepts used by the constraints, thereby alleviating the need to also retrieve the `DataStructureDefinition`, along with its `ConceptSchemes` and `Codelists`. This not only simplifies the work to be done on the client but also aims to minimise the amount of resources needed (for example, by limiting the size of the message to a minimum). For additional information about these artefacts, please refer to the [SDMX information model](http://sdmx.org/wp-content/uploads/2011/08/SDMX_2-1-1_SECTION_2_InformationModel_201108.pdf). @@ -24,23 +20,25 @@ For additional information about the query syntax used in the examples below, pl ## Choreography -### Step 1: Get the list of statistical domains +It is possible to support the requirement with 2 queries, one to get the list of statistical domains and the dataflows attached to them and one to build the dimension filters for the selected dataflow. + +### Step 1: Get the list of statistical domains and the dataflows attached to them -Required artefacts: Category Scheme, Maintenance Agency +Required artefacts: Category Scheme, Dataflow -The starting point is to retrieve the list of *topics* for which data are available. These are known as `category schemes` in SDMX. They can be retrieved using a categoryscheme query: +The starting point is to retrieve the list of *topics* for which data are available. These are known as `category schemes` in SDMX. The `dataflows` attached to each category give information about the data that can be retrieved for each of the *topics*. Both can be retrieved using a categoryscheme query, along with the `references` parameter: ``` -https://ws-entry-point/categoryscheme +https://ws-entry-point/categoryscheme?references=parentsandsiblings ``` Alternatively, if only the topics of a particular category scheme are needed, it is possible to only retrieve that particular category scheme (assuming we also know the maintenance agency for the category scheme): ``` -https://ws-entry-point/categoryscheme/agency-id/category-scheme-id +https://ws-entry-point/categoryscheme/agency-id/category-scheme-id?references=parentsandsiblings ``` -The response will contain the `category scheme(s)` and its `categories`. +The response will contain the `category scheme(s)` and its `categories`, as well as the dataflows attached to them. The screenshot below shows an example of the type of user interface (a treeview control in this case) that can be built from a category scheme, using the [ECB Statistical Data Warehouse](https://sdw.ecb.europa.eu) as an example. @@ -50,41 +48,19 @@ The screenshot below displays the category scheme as a list box, similar to the ![List of statistical domains](img/cs-list.png) -The client typically needs to display the names of the categories. In addition, some clients might also want to display the descriptions of the categories and the name of the category schemes and possibly the name of its maintenance agency. - -In addition, in order to perform the next query (cf. step 2 below), clients will need the full references for the categories (id) and category schemes (id, agency id and version). - -### Step 2: Get the list of dataflows attached to the selected domains - -Required artefacts: Categorisation, Dataflow, Data Provision Aggreement, Data Provider - -Once a user has selected a category, the web service client will need to retrieve the *baskets of data* attached to the category. These are known as `dataflows` in SDMX. It is possibe to retrieve these, using a category query and resolving its references. - -``` -https://ws-entry-point/categoryscheme/agency-id/category-scheme-id/category-scheme-version/category-id?references=parentsandsiblings -``` - -The response will contain the selected `category`, the `categorisations` that link dataflows to the category (the *parents*) and the `dataflows` referenced by the categorisations (the *siblings*). +The client typically needs to display the names of the categories. In addition, some clients might also want to display the descriptions of the categories and the name of the category schemes and possibly the name of its maintenance agency. Some clients might also want to display the number of dataflows attached to each category. -The screenshot below shows an example of the type of user interface (a list box in this case) that can be built from the response. The example is taken from the ECB statistical tablet app. +Once a user has selected a category, the client could display the list of dataflows attach to the category. The screenshot below shows an example of the type of user interface (a list box in this case) that can be built from the response. The example is taken from the ECB statistical tablet app. ![List of dataflows](img/df-list.png) The client typically needs to display the names of the dataflows. In addition, some clients might also want to display the descriptions of the dataflows and the name of the selected category. -Multiple data providers may provide data for the same dataflow. If this distinction is important then the client must query for Data Provisions Agreements that link to the dataflow: - -``` -https://ws-entry-point/dataflow/agency-id/dataflow-id/dataflow-version?references=all -``` - -The response will contain the Data Provision Agreements that reference the dataflow. - -In addition, in order to perform the next query (cf. step 3 below), clients will need the full references to the dataflows (id, agency id and version). +In order to perform the next query (cf. step 2 below), clients will need the full references to the dataflows (id, agency id and version). -### Step 3: Find data in the selected dataflow, using concept filters +### Step 2: Find data in the selected dataflow, using concept filters -Required artefacts: Data Structure Definition, Codelist, Concept, Content Constraint +Required artefacts: Content Constraint Once a user has selected a dataflow, the web service client will need to retrieve the `concepts` that are used to structure that dataflow. In addition, the list of allowed values for each of these concepts will be needed. The list of values for which data exist can be found in the `content constraints`, while the names of the values can be retrieved from the `codes` in the `codelists` referenced by the `data structure definition`. All these artefacts can be retrieved in just one dataflow query, again using the references' resolution mechanism offered by the SDMX RESTful API. From 0e68d68c11c5ebbc4157b157cbab6156ea23781e Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Wed, 2 Dec 2015 09:39:15 +0100 Subject: [PATCH 019/161] Explain why categorisations are not used --- structure-message/requirements/browse-by-topic.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/structure-message/requirements/browse-by-topic.md b/structure-message/requirements/browse-by-topic.md index 3bdc0f0..dd5887f 100644 --- a/structure-message/requirements/browse-by-topic.md +++ b/structure-message/requirements/browse-by-topic.md @@ -6,13 +6,13 @@ Browsing a list of *topics* (i.e. statistical domains) is a common way for users ## Artefacts involved -At least the following SDMX artefacts are needed to support this use case: +The following SDMX artefacts are needed to support this use case: - Category Scheme - Dataflow - ContentConstraint -One of the guiding principles of SDMX-JSON is to make the artefacts useful on their own (i.e. standalone). This means that the `ContentConstraint` will embed the codes and concepts used by the constraints, thereby alleviating the need to also retrieve the `DataStructureDefinition`, along with its `ConceptSchemes` and `Codelists`. This not only simplifies the work to be done on the client but also aims to minimise the amount of resources needed (for example, by limiting the size of the message to a minimum). +One of the guiding principles of SDMX-JSON is to make the artefacts useful on their own (i.e. standalone). This means that the `ContentConstraint` will embed the codes and concepts used by the constraints, thereby alleviating the need to also retrieve the `DataStructureDefinition`, along with its `ConceptSchemes` and `Codelists`. This not only simplifies the work to be done on the client but also aims to minimise the amount of resources needed (for example, by limiting the size of the message to a minimum). The same principle explains why the SDMX `Categorisations` are not used in this use case. For additional information about these artefacts, please refer to the [SDMX information model](http://sdmx.org/wp-content/uploads/2011/08/SDMX_2-1-1_SECTION_2_InformationModel_201108.pdf). From 3e80c05a41bd96061bc277a22f7b572d94c5d851 Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Wed, 2 Dec 2015 09:42:54 +0100 Subject: [PATCH 020/161] Minor edits --- structure-message/requirements/browse-by-topic.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/structure-message/requirements/browse-by-topic.md b/structure-message/requirements/browse-by-topic.md index dd5887f..c0243e6 100644 --- a/structure-message/requirements/browse-by-topic.md +++ b/structure-message/requirements/browse-by-topic.md @@ -22,11 +22,11 @@ For additional information about the query syntax used in the examples below, pl It is possible to support the requirement with 2 queries, one to get the list of statistical domains and the dataflows attached to them and one to build the dimension filters for the selected dataflow. -### Step 1: Get the list of statistical domains and the dataflows attached to them +### Query 1: Get the list of statistical domains and the dataflows attached to them Required artefacts: Category Scheme, Dataflow -The starting point is to retrieve the list of *topics* for which data are available. These are known as `category schemes` in SDMX. The `dataflows` attached to each category give information about the data that can be retrieved for each of the *topics*. Both can be retrieved using a categoryscheme query, along with the `references` parameter: +The starting point is to retrieve the list of *topics* for which data are available. These are known as `category schemes` in SDMX. The `dataflows` attached to each category give information about the data that can be retrieved for each of the *topics*. Both the category schemes and the dataflows can be retrieved using a categoryscheme query, along with the `references` parameter: ``` https://ws-entry-point/categoryscheme?references=parentsandsiblings @@ -56,9 +56,9 @@ Once a user has selected a category, the client could display the list of datafl The client typically needs to display the names of the dataflows. In addition, some clients might also want to display the descriptions of the dataflows and the name of the selected category. -In order to perform the next query (cf. step 2 below), clients will need the full references to the dataflows (id, agency id and version). +In order to perform the next query, clients will need the full references to the dataflows (id, agency id and version). -### Step 2: Find data in the selected dataflow, using concept filters +### Query 2: Find data in the selected dataflow, using concept filters Required artefacts: Content Constraint From 000175cf68dc55388607c92fa0cd89adf42abe8e Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Mon, 14 Dec 2015 09:38:58 +0100 Subject: [PATCH 021/161] Artefacts resolution now taken into account --- structure-message/requirements/browse-by-topic.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/structure-message/requirements/browse-by-topic.md b/structure-message/requirements/browse-by-topic.md index c0243e6..9fc9886 100644 --- a/structure-message/requirements/browse-by-topic.md +++ b/structure-message/requirements/browse-by-topic.md @@ -10,7 +10,7 @@ The following SDMX artefacts are needed to support this use case: - Category Scheme - Dataflow -- ContentConstraint +- Content Constraint One of the guiding principles of SDMX-JSON is to make the artefacts useful on their own (i.e. standalone). This means that the `ContentConstraint` will embed the codes and concepts used by the constraints, thereby alleviating the need to also retrieve the `DataStructureDefinition`, along with its `ConceptSchemes` and `Codelists`. This not only simplifies the work to be done on the client but also aims to minimise the amount of resources needed (for example, by limiting the size of the message to a minimum). The same principle explains why the SDMX `Categorisations` are not used in this use case. @@ -62,13 +62,13 @@ In order to perform the next query, clients will need the full references to the Required artefacts: Content Constraint -Once a user has selected a dataflow, the web service client will need to retrieve the `concepts` that are used to structure that dataflow. In addition, the list of allowed values for each of these concepts will be needed. The list of values for which data exist can be found in the `content constraints`, while the names of the values can be retrieved from the `codes` in the `codelists` referenced by the `data structure definition`. All these artefacts can be retrieved in just one dataflow query, again using the references' resolution mechanism offered by the SDMX RESTful API. +Once a user has selected a dataflow, the web service client will need to give users the possibility to retrieve data using *filters*. The list of values for which data exist can be found in the `content constraints`. In SDMX-JSON, the codes and concepts used by the constraints are resolved in the constraints, thereby alleviating the need to also retrieve the `DataStructureDefinition`, along with its `ConceptSchemes` and `Codelists`. The needed artefacts can be retrieved in just one dataflow query, again using the references' resolution mechanism offered by the SDMX RESTful API. ``` -https://ws-entry-point/dataflow/agency-id/dataflow-id/dataflow-version?references=all +https://ws-entry-point/dataflow/agency-id/dataflow-id/dataflow-version?references=contentconstraint ``` -The response will contain the selected `dataflow`, the `data structure definition` that structure the data for the dataflow, as well as the `concepts` and `codelists` referenced by the data structure definition. In addition, it will contain the `content constraints` attached to the dataflow. +The response will contain the selected `dataflow` and the `content constraints` attached to the dataflow. The screenshot below shows an example of the type of user interface (a list box for the list of concepts, and a collection of check boxes for the list of allowed values for each of the concepts in this example) that can be built from the response. The example is taken from the ECB statistical tablet app. From b466438f3ba8163419886587fc192607d8b7660e Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Thu, 30 Jun 2016 15:06:00 +0200 Subject: [PATCH 022/161] Update step1.json --- .../samples/browse-by-topic/step1.json | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/structure-message/samples/browse-by-topic/step1.json b/structure-message/samples/browse-by-topic/step1.json index 30be222..1fa7116 100644 --- a/structure-message/samples/browse-by-topic/step1.json +++ b/structure-message/samples/browse-by-topic/step1.json @@ -53,5 +53,29 @@ "name": "Banknotes and Coins" } ] - }] + }], + "references": { + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:FM(1.0)": { + "id": "FM", + "agencyID": "ECB", + "version": "1.0", + "name": "Financial market data", + "references": [{ + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_FMD2/1.0", + "rel": "structure", + "type": "datastructure" + }] + }, + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:BSI(1.0)": { + "id": "BSI", + "agencyID": "ECB", + "version": "1.0", + "name": "Balance Sheet Items", + "references": [{ + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_BSI1/1.0", + "rel": "structure", + "type": "datastructure" + }] + } + } } From ae4d2cd0ca92701ef968ef763771b0bb6682e998 Mon Sep 17 00:00:00 2001 From: Xavier Sosnovsky Date: Thu, 30 Jun 2016 15:07:10 +0200 Subject: [PATCH 023/161] Update step1.json --- structure-message/samples/browse-by-topic/step1.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/structure-message/samples/browse-by-topic/step1.json b/structure-message/samples/browse-by-topic/step1.json index 1fa7116..0663398 100644 --- a/structure-message/samples/browse-by-topic/step1.json +++ b/structure-message/samples/browse-by-topic/step1.json @@ -18,7 +18,14 @@ "items": [ { "id": "01", - "name": "Monetary operations" + "name": "Monetary operations", + "links": [{ + "href": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:FM(1.0)", + "rel": "dataflow" + }, { + "href": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:BSI(1.0)", + "rel": "dataflow" + }] }, { "id": "02", From 970306d3f05a31085966f3d82d78aec2732ad366 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Tue, 15 Nov 2016 16:38:04 +0100 Subject: [PATCH 024/161] Create 0-status.md (#20) --- structure-message/docs/0-status.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 structure-message/docs/0-status.md diff --git a/structure-message/docs/0-status.md b/structure-message/docs/0-status.md new file mode 100644 index 0000000..ac17d9f --- /dev/null +++ b/structure-message/docs/0-status.md @@ -0,0 +1,21 @@ +**Status of this Document** + +*This section describes the status of this document at the time of its publication. +Other documents may supersede this document.* + +This is a SDMX Draft Technical Standard for SDMX-JSON Structure Message. It is +not yet ready for official review by the SDMX user community and the public. + +This is a draft document and may be updated, replaced or obsoleted by other +documents at any time. + +This document has been produced by the SDMX-TWG. The authors of this document +are the members of the SDMX-TWG. Different parts of this specification have +different editors. + +---- + +\null +\vfill + +© SDMX 2014 http://www.sdmx.org/ From 08205d61179b800ad7ccb8baeb42543e21dec645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?DOSS=C3=89=20Jens?= Date: Tue, 15 Nov 2016 17:19:13 +0100 Subject: [PATCH 025/161] first Jens test --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d86eab8..473d86c 100644 --- a/README.md +++ b/README.md @@ -7,3 +7,5 @@ This includes: - Normative documentation, samples and tools for the SDMX-JSON data message. - Prototypes for the SDMX-JSON structure message. - [Wiki](https://github.com/sdmx-twg/sdmx-json/wiki) for additional information + +Jens test \ No newline at end of file From 50fe7c7d3808d94aa9f4f09e89ce6b75e1caf83f Mon Sep 17 00:00:00 2001 From: Benoit BAZART Date: Wed, 16 Nov 2016 01:00:31 +0100 Subject: [PATCH 026/161] Update Json Message for Hierarchy of Categories (#42) * Update step1.json * Remove inappropriate link in the header --- .../samples/browse-by-topic/step1.json | 412 ++++++++++++++---- 1 file changed, 328 insertions(+), 84 deletions(-) diff --git a/structure-message/samples/browse-by-topic/step1.json b/structure-message/samples/browse-by-topic/step1.json index 0663398..b3413be 100644 --- a/structure-message/samples/browse-by-topic/step1.json +++ b/structure-message/samples/browse-by-topic/step1.json @@ -1,88 +1,332 @@ { - "header": { - "id": "STEP1", - "prepared": "2015-08-17T14:07:23.452Z", - "sender": { - "id": "ECB" + "header": { + "id": "STEP1", + "prepared": "2015-08-17T14:07:23.452Z", + "sender": { + "id": "ECB" + }, + "links": [ + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0", + "rel": "request" + } + ] }, - "links": [{ - "href": "https://sdw-wsrest.ecb.europa.eu/service/categoryscheme/ECB.DISS/MOBILE_NAVI_PUB/1.0", - "rel": "request" - }] - }, - "resources": [{ - "id": "MOBILE_NAVI_PUB", - "agencyID": "ECB.DISS", - "version": "1.0", - "name": "Economic concepts", - "items": [ - { - "id": "01", - "name": "Monetary operations", - "links": [{ - "href": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:FM(1.0)", - "rel": "dataflow" - }, { - "href": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:BSI(1.0)", - "rel": "dataflow" - }] - }, - { - "id": "02", - "name": "Prices, output, demand and labour market" - }, - { - "id": "03", - "name": "Monetary and financial statistics" - }, - { - "id": "04", - "name": "Euro area accounts" - }, - { - "id": "05", - "name": "Government finance" - }, - { - "id": "06", - "name": "External transactions and positions" - }, - { - "id": "07", - "name": "Exchange rates" - }, - { - "id": "08", - "name": "Payments and securities trading, clearing, settlement" - }, - { - "id": "09", - "name": "Banknotes and Coins" - } - ] - }], - "references": { - "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:FM(1.0)": { - "id": "FM", - "agencyID": "ECB", - "version": "1.0", - "name": "Financial market data", - "references": [{ - "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_FMD2/1.0", - "rel": "structure", - "type": "datastructure" - }] - }, - "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:BSI(1.0)": { - "id": "BSI", - "agencyID": "ECB", - "version": "1.0", - "name": "Balance Sheet Items", - "references": [{ - "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_BSI1/1.0", - "rel": "structure", - "type": "datastructure" - }] + "resources": [ + { + "id": "MOBILE_NAVI_PUB", + "agencyID": "ECB.DISS", + "version": "1.0", + "name": "Economic concepts", + "items": [ + { + "id": "01", + "name": "Monetary operations", + "links": [ + { + "href": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:FM(1.0)", + "rel": "dataflow" + }, + { + "href": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:BSI(1.0)", + "rel": "dataflow" + } + ] + }, + { + "id": "02", + "name": "Prices, output, demand and labour market" + }, + { + "id": "03", + "name": "Monetary and financial statistics" + }, + { + "id": "04", + "name": "Euro area accounts" + }, + { + "id": "05", + "name": "Government finance" + }, + { + "id": "06", + "name": "External transactions and positions" + }, + { + "id": "07", + "name": "Exchange rates" + }, + { + "id": "08", + "name": "Payments and securities trading, clearing, settlement" + }, + { + "id": "09", + "name": "Banknotes and Coins" + } + ] + }, + { + "id": "SDMXStatSubMatDomainsWD1", + "name": "SDMX Statistical Subject-Matter Domains", + "description": "This is the canonical representation of the SDMX Content Guidelines for Statistical Subject-Matter Domains, Working Draft 2. It is a representation of the UN/ECE's Joint Presentation of Statistical Activities, as adopted for use within the SDMX Framework to be found at http://unece.unog.ch/disa/disa.explorer.asp?Search=PAPE&Year=2007", + "agencyID": "SDMX", + "version": "1.0", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.CategoryScheme=SDMX:SDMXStatSubMatDomainsWD1(1.0)", + "items": [ + { + "id": "1", + "name": "Demographic and social statistics", + "description": "Covers work in population and migration, labour, education, health, income and consumption, social protection, human settlements and housing", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1", + "items": [ + { + "id": "1", + "name": "Population and migration", + "description": "Population and migration: covers work in population and demographic statistics, topics like demography, vital statistics, population structures and growth, demographic projections, families and households (marriages, divorces, household size), migration, refugees and asylum seekers.", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.1" + }, + { + "id": "2", + "name": "Labour", + "description": "Covers statistics on labour force, labour market, employment and unemployment; the more detailed topics include economically active population, labour conditions, health and safety at work (accidents at work, occupational injuries and diseases, work-related health problems), working time and other working conditions, strikes and lockouts, job vacancies, job creation.", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.2" + }, + { + "id": "3", + "name": "Education", + "description": "Includes educational participation, illiteracy, educational institutions and systems, human and financial resources invested in education, lifelong learning, vocational training and adult learning, impact of education, assessments of student performance, etc", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.3" + }, + { + "id": "4", + "name": "Health", + "description": "Health: covers the health and mortality related statistical activities, including topics like life expectancy, health status, health and safety, health determinants (including lifestyle, nutrition, smoking, alcohol abuse), health resources and expenditure, health care systems, morbidity and mortality (including infant and child mortality), hospital admission, causes of illness and death, specific diseases (e.g. AIDS), disabilities, pharmaceutical consumption and sales, health personnel, remuneration of health professions, environmental health status, health inequality, health accounts.", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.4" + }, + { + "id": "5", + "name": "Income and consumption", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.5" + }, + { + "id": "6", + "name": "Social protection", + "description": "Social protection – deals with statistics on measures to protect people against the risks of inadequate incomes associated with unemployment, ill health, invalidity, old age, parental responsibilities, or inadequate income following the loss of a spouse or parent, etc., includes statistics on pension beneficiaries, social security schemes, social protection expenditure, etc.", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.6" + }, + { + "id": "7", + "name": "Human settlements and housing", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.7" + }, + { + "id": "8", + "name": "Justice and crime", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.8" + }, + { + "id": "9", + "name": "Culture", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.9" + }, + { + "id": "10", + "name": "Political and other community activities", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.10" + }, + { + "id": "11", + "name": "Time use", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.11" + } + ] + }, + { + "id": "2", + "name": "Economic statistics", + "description": "Covers statistics in macro-economic, economic accounts, business statistics, , government finance, interbnational trade and balance of payments, prices, labor cost, science and technology, and sectoral statistics (agriculture/forestry/fisheries, energy, mining/manufacturing/construction, transport, tourism, banking/insurance, financial).", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2", + "items": [ + { + "id": "1", + "name": "Macroeconomic statistics", + "description": "Macroeconomic statistics – all activities that are dealing with economy wide statistics at macro level that go beyond, or are different from National Accounts, whether annual, quarterly or monthly. Examples are macroeconomic databases that combine national accounts and other macroeconomic indicators like Main Economic Indicators (OECD), Principal European Economic Indicators (Eurostat), etc. ; business tendency and consumer opinion surveys, economic growth, stability and structural adjustment, cyclical indicators, statistics for business cycle analysis.", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.1" + }, + { + "id": "2", + "name": "Economic accounts", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.2" + }, + { + "id": "3", + "name": "Business statistics", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.3" + }, + { + "id": "4", + "name": "Sectoral statistics", + "description": "Covers statistics in agriculture/forestry/fisheries, energy, mining manufacturing/construction, transport, tourism, banking/insurance, financial.", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.4", + "items": [ + { + "id": "1", + "name": "Agriculture, forestry, fisheries", + "description": "statistics, e.g. agricultural monetary statistics (agricultural economic accounts), agricultural structures (farm structure), trade in agricultural products, agricultural labour input, crop and animal production, agricultural commodities, agro-industry statistics (including food production and safety), organic farming and organic food, government expenditure for agr culture, fishing and forestry, products source and use tables, forest and forest product statistics, forest resource assessment and forest fire, trade in forest products, fisheries.", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.4.1" + }, + { + "id": "2", + "name": "Energy", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.4.2" + }, + { + "id": "3", + "name": "Mining, manufacturing, construction", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.4.3" + }, + { + "id": "4", + "name": "Transport", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.4.4" + }, + { + "id": "5", + "name": "Tourism", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.4.5" + }, + { + "id": "6", + "name": "Banking, insurance, financial statistics", + "description": "Banking, insurance, financial statistics – money, banking and financial market statistics, including financial accounts, money supply, interest rates, exchange rates, stock market indicators, securities, bank profitability, private sector insurance and pension fund statistics, Financial Soundness Indicators.", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.4.6" + } + ] + }, + { + "id": "5", + "name": "Government finance, fiscal and public sector statistics", + "description": "Government finance, fiscal and public sector statistics: all statistics related to the government sector, including debt and deficit, revenue and expenditure, accounts of the government sector, central government, tax rates and revenues, tax and benefit systems, financing of state pension and other state social security schemes, public sector employment.", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.5" + }, + { + "id": "6", + "name": "International trade and balance of payments", + "description": "International trade and balance of payments – deals with statistics on all cross-border transactions recorded in the balance of payments, includes topics like trade in goods and services, external positions and debt, foreign direct investment, foreign affiliated trade, tariffs, market access, foreign aid, development assistance, resource flows to developing countries.", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.6" + }, + { + "id": "7", + "name": "Prices", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.7" + }, + { + "id": "8", + "name": "Labor cost", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.8" + }, + { + "id": "9", + "name": "Science and technology", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).2.9" + } + ] + }, + { + "id": "3", + "name": "Environment and multi-domain statistics", + "description": "Covers statistics in environment. regional and small area statistics, yearbooks and similar compedia, multi-domain statistics and indicators (living conditions and poverty, gender and special population groups, information society, globalisation, indicators related to the Millenium Development Goals, sustainable development)", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).3", + "items": [ + { + "id": "1", + "name": "Environment", + "description": "Environment: includes topics like climate, climate change, biodiversity, environment and health, natural resources, soil, water, air, landscape, waste, environmental expenditure, expenditure for the protection of the environment, environmental accounts, agrienvironmental indicators, environmental pressure, environmental impact of industry, transport, energy etc., environmental monitoring, material flow analysis, environmental decoupling indicators, pollution, ecosystems, land use and cover, environmental protection, nationally protected areas.", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).3.1" + }, + { + "id": "2", + "name": "Regional and small area statistics", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).3.2" + }, + { + "id": "3", + "name": "Multi-domain statistics and indicators", + "description": "Covers statistics in living conditions and poverty, gender and special population groups, information society, globalisation, indicators related to the Millenium Development Goals, sustainable development.", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).3.3", + "items": [ + { + "id": "1", + "name": "Living conditions, poverty", + "description": "Living conditions, poverty and cross-cutting social issues – includes work on multidimensional methods to measure poverty, living conditions in the broad sense, social inclusion/exclusion, social indicators, and social situation.", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).3.3.1" + }, + { + "id": "2", + "name": "Gender and special population groups", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).3.3.2" + }, + { + "id": "3", + "name": "Information society", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).3.3.3" + }, + { + "id": "4", + "name": "Globalisation", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).3.3.4" + }, + { + "id": "5", + "name": "Indicators related to the Millennium Development Goals", + "description": "Indicators related to the Millennium Development Goals – work on sets of indicators to monitor the achievement of the Millennium Development Goals agreed upon at the UN Millennium Summit.", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).3.3.5" + }, + { + "id": "6", + "name": "Sustainable development", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).3.3.6" + } + ] + }, + { + "id": "4", + "name": "Yearbooks and similar compendia", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).3.4" + } + ] + } + ] + } + ], + "references": { + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:FM(1.0)": { + "id": "FM", + "agencyID": "ECB", + "version": "1.0", + "name": "Financial market data", + "references": [ + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_FMD2/1.0", + "rel": "structure", + "type": "datastructure" + } + ] + }, + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:BSI(1.0)": { + "id": "BSI", + "agencyID": "ECB", + "version": "1.0", + "name": "Balance Sheet Items", + "references": [ + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_BSI1/1.0", + "rel": "structure", + "type": "datastructure" + } + ] + } } - } } From 4f381eab4d13660f84bbb35047a5468f424a0f5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 18 Nov 2016 19:05:46 +0100 Subject: [PATCH 027/161] Doc/jens (#43) * New field guide for SDMX JSON structure message format. * Reference document for SDMX JSON structure message format. * Corrected small grammatical errors. --- .../docs/1-sdmx-json-field-guide.md | 346 ++++++++++++++++++ structure-message/docs/2-references.md | 16 + 2 files changed, 362 insertions(+) create mode 100644 structure-message/docs/1-sdmx-json-field-guide.md create mode 100644 structure-message/docs/2-references.md diff --git a/structure-message/docs/1-sdmx-json-field-guide.md b/structure-message/docs/1-sdmx-json-field-guide.md new file mode 100644 index 0000000..f6b54c3 --- /dev/null +++ b/structure-message/docs/1-sdmx-json-field-guide.md @@ -0,0 +1,346 @@ +# Introduction to SDMX-JSON Structure Message + +See the SDMX-JSON Data Message docs for a brief introduction of the SDMX information model. For additional information on the SDMX information model, please refer to the [SDMX documentation](http://sdmx.org/?page_id=10). + +Samples, tools and other SDMX-JSON resources are available in the public Github repository . + +Before we start, let's clarify a few more things about this guide: + +- New fields may be introduced in later versions. Therefore consuming applications should tolerate the addition of new fields with ease. +- The ordering of fields in objects is undefined. The fields may appear in any order and consuming applications should not rely on any specific ordering. It is safe to consider a nulled field and the absence of a field as the same thing. +- Not all fields appear in all contexts. For example response with error messages may not contain fields for data, dimensions and attributes. + +# Field Guide to SDMX-JSON Structure Message Objects + +## Message + +Message is the top level object and it contains the requested resources and as well as the metadata needed to interpret those data. + +* header - *Object* *nullable*. Header contains basic technical information about the message, such as when it was prepared and who has sent it. +* resources - *Array* *nullable*. Provides a list of resource objects. That's where the requested resources will be. +* references - *Object* *nullable*. Collection of referenced resource objects. It contains the full information of referenced resources. The properties of the "references" object are the "urn" properties of the referenced resources. +* errors - *Array* *nullable*. When appropriate provides a list of error messages in addition to RESTful web services HTTP error status codes. + +Example: + + { + "header": { + # header fields # + }, + "resources": [ + # resource objects # + ], + "references": { + # referenced resource objects # + }, + "errors": [ + # error messages # + ] + } + +## header + +*Object* *nullable*. Header contains basic technical information about the message, such as when it was prepared and who has sent it. + +* id - *String*. *String*. Unique string that identifies the message for further references. +* test - *Boolean* *nullable*. Indicates whether the message is for test purposes or not. False for normal messages. +* prepared - *String*. A timestamp indicating when the message was prepared. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. +* sender - *Object*. Information about the party that is transmitting the message. +* receiver - *Object* *nullable*. Information about the party that is receiving the message. This can be +useful if the WS requires authentication. +* links - *Array* *nullable*. A collection of links to additional resources for the header. + +Example: + + "header": { + "id": "b1804c51-1ee3-45a9-bb75-795cd4e06489", + "prepared": "2016-01-03T12:54:12", + "test": false, + "sender": { + # sender object # + }, + "receiver": { + # receiver object # + }, + "links": [ + { + # link object # + } + ] + } + +### sender + +*Object*. Information about the party that is transmitting the message. Sender contains the following fields: + +* id - *String*. A unique identifier of the party. +* name - *String* *nullable*. A human-readable name of the sender. +* contact - *Array* *nullable*. Information on how the party can be contacted. + +Example: + + "sender": { + "id": "ECB", + "name": "European Central Bank", + "contact": [ + # contact details # + ] + } + +#### contact + +*Array* *nullable*. A collection of contact details. Each object in the collection may contain the following field: + +* name - *String*. The contact's name. +* department - *String* *nullable*. The organisational structure for the contact. +* role - *String* *nullable*. The responsibility of the contact. +* telephone - *Array* *nullable*. An array of telephone numbers for the contact. +* fax - *Array* *nullable*. An array of fax numbers for the contact person. +* uri - *Array* *nullable*. An array of uris. Each uri holds an information URL for the contact. +* email - *Array* *nullable*. An array of email addresses for the contact person. + +Example: + + "contact": [ + { + "name": "Statistics hotline", + "email": [ "statistics@xyz.org" ] + } + ] + +### receiver + +*Object* *nullable*. Information about the party that is receiving the message. This can be useful if the WS requires authentication. Receiver contains the same fields as [sender](#sender). + +### link + +*Object* *nullable*. A link to an external resource. + +* href - *String*. Absolute or relative URL of the external resource. +* rel - *String*. Relationship of the object to the external resource. +* title - *String* *nullable*. A human-friendly description of the target link. +* type - *String* *nullable*. A hint about the type of representation returned by the link. + +See the section about the [linking mechanism](#linking-mechanism) for additional information. + +Example: + + { + "href": "https://registry.sdmx.org/help.html", + "rel": "help", + "title": "Documentation about the SDMX Global Registry", + "type": "text/html" + } + +## resource + +*Object* *nullable*. Provides the information about a requested resource. A resource can be any SDMX artifact that can be requested through a structure request: +- DataStructureDefinition +- MetadataStructureDefinition +- CategoryScheme +- ConceptScheme +- Codelist +- HierarchicalCodelist +- OrganisationsScheme +- AgencyScheme +- DataProviderScheme +- DataConsumerScheme +- OrganisationUnitScheme +- Dataflow +- Metadataflow +- ReportingTaxonomy +- ProvisionAgreement +- StructureSet +- Process +- Categorisation +- Constraint + +* id - *String*. Identifier for the resource. +* urn - *String* *nullable*. URN - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behavior is desired, an annotation type should be defined which specifies the use of this field more exactly. +* name - *String* *nullable*. Resource name. +* description - *String* *nullable*. Description of the resource. +* agencyID - *String* *nullable*. ID of the agency maintaining this resource. +* version - *String* *nullable*. Version of this resource. It is "1.0" by default. +* isFinal - *Boolean* *nullable*. True if this is the final version of the resource, otherwise False. +* links - *Array* *nullable*. A collection of links to additional resources for the resource. See the section [link](#link). +* annotations - *Array* *nullable*. Provides a list of annotation objects. +* items - *Array* *nullable*. Provides a list of items if the resource inherits from the ItemScheme (CategoryScheme, Codelist, ConceptScheme, ReportingTaxonomy, and OrganisationScheme). + +Example: + + { + "id": "MOBILE_NAVI_PUB", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:BSI_PUB(1.0)", + "name": "Economic concepts", + "description": "This is the description of Economic concepts", + "agencyID": "ECB.DISS", + "version": "1.0", + "isFinal": true, + "links": [ + { + # link object # + } + ], + "annotations": [ + { + # annotation object # + } + ], + "items": [ + { + # item object # + } + ] + } + +### annotation + +*Object* *nullable*. Provides all information about an annotation. + +* id - *String* *nullable*. ID provides a non-standard identification of an annotation. It can be used to disambiguate annotations. +* title - *String* *nullable*. Provides a title for the annotation. +* type - *String* *nullable*. Type is used to distinguish between annotations designed to support various uses. The types are not enumerated, and these can be freely specified by the creator of the annotations. The definitions and use of annotation types should be documented by their creator. +* uri - *String* *nullable*. URI - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behavior is desired, an annotation type should be defined which specifies the use of this field more exactly. +* text - *String* *nullable*. Contains the text of the annotation. + +Example: + + { + "id": "74747", + "title": "Sample annotation", + "type": "reference", + "uri": "http://sample.org/annotations/74747", + "text": "Sample annotation text" + } + +### item + +*Object* *nullable*. Item within the ItemScheme (if the resource is a CategoryScheme, Codelist, ConceptScheme, ReportingTaxonomy, or OrganisationScheme. + +* id - *String*. Identifier for the item. +* name - *String* *nullable*. Item name. +* description - *String* *nullable*. Description of the item. +* links - *Array* *nullable*. A collection of links to additional resources for the item. See the section [link](#link). +* annotations - *Array* *nullable*. Provides a list of annotation objects. See the section [annotation](#annotation). +* items - *Array* *nullable*. Provides a list of child items of the item. + +Example: + + { + "id": "01", + "name": "Population and migration", + "description": "Description for Population and migration", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.1", + "links": [ + { + # link object # + } + ], + "annotations": [ + { + # annotation object # + } + ], + "items": [ + { + # item object # + } + ] + } + +## reference + +*Object* *nullable*. Provides full information about a referenced resource object. See [resource](#resource) for the structure of a resource object. + +Example: + + { + "id": "FM", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:FM(1.0)", + "name": "Financial market data", + "description": "This is the description of Financial market data", + "agencyID": "ECB", + "version": "1.0", + "isFinal": true, + "items": [ + { + # item object # + } + ], + "links": [ + { + # link object # + } + ], + "annotations": [ + { + # annotation object # + } + ] + } + +References within the "references" object are accessible through the "urn" properties. + +Example: + + "references": { + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:FM(1.0)": + { + # referenced resource object # + } + } + + +## error + +*Object* *nullable*. Provides information about an error message. + +* code - *number*. Provides a code number for the error message. Code numbers are defined in the SDMX 2.1 Web Services Guidelines. +* message - *string*. Provides the error message. Error messages are fully customizable by the service providers and should provide enough detail to ease understanding the reasons of the error. + +Example: + + "errors": [ + { + "code": 150, + "message": "Invalid number of dimensions in the key parameter" + } + ] + +# Linking mechanism + +Collections of links can be attached to various elements in SDMX-JSON. + +Similarily with standards such as HTML5 and Atom, link elements in SDMX-JSON *must* define a *URL* (the `href` attribute) and a *semantic* (the `rel` attribute). This allows clients to follow the links they care about and ignore the ones whose semantic they are not interested in. In addition, links in SDMX-JSON *may* define a `title` (a human-friendly description of the target link) and a `type` (a hint about the type of representation returned by the link). Please refer to the [list of Media Types and Subtypes](http://www.iana.org/assignments/media-types/media-types.xhtml) assigned and listed by the IANA for additional information about expected values for the `type` attribute. + +SDMX-JSON offers a list of predefined semantics, but implementers are free to extend it. The list of predefined semantics comes from the list of SDMX artefacts that can be returned by SDMX RESTful web services, semantics defined in [RFC5988](https://tools.ietf.org/rfc/rfc5988.txt) and additional items deemed to be useful in the context of statistical data dissemination. These semantics are: + + - SDMX artefacts: datastructure, metadatastructure, categoryscheme, conceptscheme, codelist, hierarchicalcodelist, organisationscheme, agencyscheme, dataproviderscheme, dataconsumerscheme, organisationunitscheme, dataflow, metadataflow, reportingtaxonomy, provisionagreement, structureset, process, categorisation, contentconstraint, attachmentconstraint, category, concept, code, organisation, agency, dataprovider, dataconsumer, organisationunit, reportingcategory, data + - RFC5988: alternate, copyright, glossary, help, index. + - Miscellaneous: calendar (link to a release calendar), source (information about the source of data), request (the SDMX RESTful query that triggered the SDMX-JSON response). + +The *URL* captured in the `href` attribute can be *absolute* or *relative*. If you intend to archive the SDMX-JSON message, it is recommended to use absolute URLs. + + +# Security Considerations + +This document defines a response format for SDMX RESTful Web Services in JSON +and it raises no new security considerations. SDMX Web Services Guidelines +includes the security considerations associated with its usage. + + +# Extending SDMX-JSON + +The objects defined in SDMX-JSON are "open", i.e. they can be extended with properties not defined in this specification. Providers of SDMX-JSON messages are therefore welcome to add support for features not covered in this specification. Whenever appropriate, providers who opt to do so are invited to inform us, so that future versions of SDMX-JSON may integrate these extensions, thereby improving interoperability. + +The snippet below shows an example of an `error` object, extended with a `wsCustomErrorCode`: + + ``` + "errors": [ + { + "code": 150, + "message": "Invalid number of dimensions in the key parameter", + "wsCustomErrorCode": 39272 + } + ] + ``` diff --git a/structure-message/docs/2-references.md b/structure-message/docs/2-references.md new file mode 100644 index 0000000..b8426ff --- /dev/null +++ b/structure-message/docs/2-references.md @@ -0,0 +1,16 @@ + +# References + +## Normative References + +[iso8601] *ISO 8601:2004 Data elements and interchange formats — Information +interchange — Representation of dates and times*, ISO, 2004 + +[json] *The JSON Data Interchange Format*, Standard ECMA-404, ECMA International, +October 2013 + +[sdmxim21] *Section 2: Information Model: UML Conceptual Design*, SDMX Standards 2.1, +SDMX, April 2011 + +[sdmxws21] *Section 7: Guidelines for the Use of Web Services*, SDMX Standards 2.1, +SDMX, April 2011 From 945ae3e90856d18d84cbfb774f010f2fcdef10d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Wed, 30 Nov 2016 18:28:01 +0100 Subject: [PATCH 028/161] adding missing properties (#45) --- .../docs/1-sdmx-json-field-guide.md | 323 ++++++++++-------- 1 file changed, 176 insertions(+), 147 deletions(-) diff --git a/structure-message/docs/1-sdmx-json-field-guide.md b/structure-message/docs/1-sdmx-json-field-guide.md index f6b54c3..7dec5f9 100644 --- a/structure-message/docs/1-sdmx-json-field-guide.md +++ b/structure-message/docs/1-sdmx-json-field-guide.md @@ -23,20 +23,20 @@ Message is the top level object and it contains the requested resources and as w Example: - { - "header": { - # header fields # - }, - "resources": [ - # resource objects # - ], - "references": { - # referenced resource objects # - }, - "errors": [ - # error messages # - ] - } + { + "header": { + # header fields # + }, + "resources": [ + # resource objects # + ], + "references": { + # referenced resource objects # + }, + "errors": [ + # error messages # + ] + } ## header @@ -52,22 +52,22 @@ useful if the WS requires authentication. Example: - "header": { - "id": "b1804c51-1ee3-45a9-bb75-795cd4e06489", - "prepared": "2016-01-03T12:54:12", + "header": { + "id": "b1804c51-1ee3-45a9-bb75-795cd4e06489", + "prepared": "2016-01-03T12:54:12", "test": false, - "sender": { - # sender object # - }, - "receiver": { - # receiver object # - }, + "sender": { + # sender object # + }, + "receiver": { + # receiver object # + }, "links": [ { - # link object # + # link object # } - ] - } + ] + } ### sender @@ -79,39 +79,46 @@ Example: Example: - "sender": { - "id": "ECB", - "name": "European Central Bank", - "contact": [ - # contact details # - ] - } + "sender": { + "id": "ECB", + "name": "European Central Bank", + "contact": [ + # contact details # + ] + } #### contact *Array* *nullable*. A collection of contact details. Each object in the collection may contain the following field: * name - *String*. The contact's name. -* department - *String* *nullable*. The organisational structure for the contact. +* department - *String* *nullable*. The organisational unit for the contact. * role - *String* *nullable*. The responsibility of the contact. * telephone - *Array* *nullable*. An array of telephone numbers for the contact. * fax - *Array* *nullable*. An array of fax numbers for the contact person. * uri - *Array* *nullable*. An array of uris. Each uri holds an information URL for the contact. +* X400 - *Array* *nullable*. An array of X400. Each X400 holds an X400 address of the contact. * email - *Array* *nullable*. An array of email addresses for the contact person. Example: - "contact": [ - { - "name": "Statistics hotline", - "email": [ "statistics@xyz.org" ] - } - ] + "contact": [ + { + "name": "Statistics hotline", + "department": "Statistics hotline", + "role": "Statistics hotline", + "telephone": [ "+00 0 00 00 00 00" ], + "fax": [ "+00 0 00 00 00 01" ], + "uri": [ "www.xyz.org" ], + "X400": [ "X400" ], + "email": [ "statistics@xyz.org" ] + } + ] ### receiver *Object* *nullable*. Information about the party that is receiving the message. This can be useful if the WS requires authentication. Receiver contains the same fields as [sender](#sender). - + ### link *Object* *nullable*. A link to an external resource. @@ -125,12 +132,12 @@ See the section about the [linking mechanism](#linking-mechanism) for additional Example: - { - "href": "https://registry.sdmx.org/help.html", - "rel": "help", - "title": "Documentation about the SDMX Global Registry", - "type": "text/html" - } + { + "href": "https://registry.sdmx.org/help.html", + "rel": "help", + "title": "Documentation about the SDMX Global Registry", + "type": "text/html" + } ## resource @@ -153,45 +160,59 @@ Example: - StructureSet - Process - Categorisation -- Constraint +- Constraint +- * id - *String*. Identifier for the resource. +* uri - *String* *nullable*. The URL address of the resource. * urn - *String* *nullable*. URN - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behavior is desired, an annotation type should be defined which specifies the use of this field more exactly. * name - *String* *nullable*. Resource name. * description - *String* *nullable*. Description of the resource. * agencyID - *String* *nullable*. ID of the agency maintaining this resource. * version - *String* *nullable*. Version of this resource. It is "1.0" by default. -* isFinal - *Boolean* *nullable*. True if this is the final version of the resource, otherwise False. +* validFrom - *String* *nullable*. A timestamp from which the version is valid. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. +* validTo - *String* *nullable*. A timestamp from which the version is superceded. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. +* isFinal - *Boolean* *nullable*. True if this is the final version of the resource, otherwise False (draft version). +* isExternalReference - *Boolean* *nullable*. If set to true it indicates that the content of the resource is held externally. +* isPartial - *Boolean* *nullable*. If set to true, it indicates that the resource contains only a sub-set of items. Only for resources that inherit from the ItemScheme (CategoryScheme, Codelist, ConceptScheme, ReportingTaxonomy, and OrganisationScheme). * links - *Array* *nullable*. A collection of links to additional resources for the resource. See the section [link](#link). * annotations - *Array* *nullable*. Provides a list of annotation objects. * items - *Array* *nullable*. Provides a list of items if the resource inherits from the ItemScheme (CategoryScheme, Codelist, ConceptScheme, ReportingTaxonomy, and OrganisationScheme). - + Example: { - "id": "MOBILE_NAVI_PUB", - "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:BSI_PUB(1.0)", - "name": "Economic concepts", - "description": "This is the description of Economic concepts", - "agencyID": "ECB.DISS", - "version": "1.0", - "isFinal": true, - "links": [ - { - # link object # - } - ], - "annotations": [ - { - # annotation object # - } - ], - "items": [ - { - # item object # - } - ] - } + "id": "MOBILE_NAVI_PUB", + "uri": "HTTP://www.xyz.org/resource/0123456789", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:BSI_PUB(1.0)", + "name": "Economic concepts", + "description": "This is the description of Economic concepts", + "agencyID": "ECB.DISS", + "version": "1.0", + "validFrom": "2012-05-04", + "validTo": "2015-05-04", + "isFinal": true, + "isExternalReference": false, + "isPartial": false, + "links": [ + { + # link object# + } + ], + "annotations":[ + { + # annotation object# + } + ], + "items": [ + { + # item object # + } + ], + "contact": [ + # contact details # + ] + } ### annotation @@ -200,24 +221,26 @@ Example: * id - *String* *nullable*. ID provides a non-standard identification of an annotation. It can be used to disambiguate annotations. * title - *String* *nullable*. Provides a title for the annotation. * type - *String* *nullable*. Type is used to distinguish between annotations designed to support various uses. The types are not enumerated, and these can be freely specified by the creator of the annotations. The definitions and use of annotation types should be documented by their creator. -* uri - *String* *nullable*. URI - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behavior is desired, an annotation type should be defined which specifies the use of this field more exactly. +* url - *String* *nullable*. URI - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behavior is desired, an annotation type should be defined which specifies the use of this field more exactly. * text - *String* *nullable*. Contains the text of the annotation. Example: - { - "id": "74747", - "title": "Sample annotation", - "type": "reference", - "uri": "http://sample.org/annotations/74747", - "text": "Sample annotation text" - } + { + "id": "74747", + "title": "Sample annotation", + "type": "reference", + "url": "http://sample.org/annotations/74747", + "text": "Sample annotation text" + } ### item *Object* *nullable*. Item within the ItemScheme (if the resource is a CategoryScheme, Codelist, ConceptScheme, ReportingTaxonomy, or OrganisationScheme. * id - *String*. Identifier for the item. +* uri - *String* *nullable*. The URL address of the item. +* urn - *String* *nullable*. URN - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behavior is desired, an annotation type should be defined which specifies the use of this field more exactly. * name - *String* *nullable*. Item name. * description - *String* *nullable*. Description of the item. * links - *Array* *nullable*. A collection of links to additional resources for the item. See the section [link](#link). @@ -226,26 +249,27 @@ Example: Example: - { - "id": "01", - "name": "Population and migration", - "description": "Description for Population and migration", - "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.1", - "links": [ - { - # link object # - } - ], - "annotations": [ - { - # annotation object # - } - ], - "items": [ - { - # item object # - } - ] + { + "id": "01", + "uri": "http://www.xyz.org/resource/0123456789", + "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.1", + "name": "Population and migration", + "description": "Description for Population and migration", + "links":[ + { + # link object# + } + ], + "annotations": [ + { + # annotation object # + } + ], + "items": [ + { + # item object # + } + ] } ## reference @@ -254,43 +278,48 @@ Example: Example: - { - "id": "FM", - "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:FM(1.0)", - "name": "Financial market data", - "description": "This is the description of Financial market data", - "agencyID": "ECB", - "version": "1.0", - "isFinal": true, - "items": [ - { - # item object # - } - ], - "links": [ - { - # link object # - } - ], - "annotations": [ - { - # annotation object # - } - ] - } + { + "id": "FM", + "uri": "http://www.xyz.org/resource/0123456789", + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:FM(1.0)", + "name": "Financial market data", + "description": "This is the description of Financial market data", + "agencyID": "ECB", + "version": "1.0", + "validFrom": "2012-05-04", + "validTo": "2015-05-04", + "isFinal": true, + "isExternalReference": false, + "isPartial": false, + "items": [ + { + # item object # + } + ], + "links": [ + { + # link object # + } + ], + "annotations": [ + { + # annotation object # + } + ] + } References within the "references" object are accessible through the "urn" properties. Example: - "references": { - "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:FM(1.0)": - { - # referenced resource object # - } - } + "references": { + "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:FM(1.0)": + { + # referenced resource object # + } + } + - ## error *Object* *nullable*. Provides information about an error message. @@ -300,12 +329,12 @@ Example: Example: - "errors": [ - { - "code": 150, - "message": "Invalid number of dimensions in the key parameter" - } - ] + "errors": [ + { + "code": 150, + "message": "Invalid number of dimensions in the key parameter" + } + ] # Linking mechanism @@ -335,12 +364,12 @@ The objects defined in SDMX-JSON are "open", i.e. they can be extended with prop The snippet below shows an example of an `error` object, extended with a `wsCustomErrorCode`: - ``` - "errors": [ - { - "code": 150, - "message": "Invalid number of dimensions in the key parameter", - "wsCustomErrorCode": 39272 - } - ] - ``` + ``` + "errors": [ + { + "code": 150, + "message": "Invalid number of dimensions in the key parameter", + "wsCustomErrorCode": 39272 + } + ] + ``` From d708cd6e26c6768eeaf2f6df04916cc74ad0e1f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 1 Dec 2016 18:05:03 +0100 Subject: [PATCH 029/161] Updated structure content description --- README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 473d86c..3236211 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,6 @@ This repository is used for maintaining the SDMX-JSON messages specifications. This includes: -- Normative documentation, samples and tools for the SDMX-JSON data message. -- Prototypes for the SDMX-JSON structure message. +- Normative documentation, samples and tools for the SDMX-JSON data message format. +- Normative documentation and samples for the SDMX-JSON structure message format. - [Wiki](https://github.com/sdmx-twg/sdmx-json/wiki) for additional information - -Jens test \ No newline at end of file From 825d1a67cd4d11f06c2e00e210c9f3e61bf28f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 1 Dec 2016 18:11:47 +0100 Subject: [PATCH 030/161] Update README.md --- data-message/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/data-message/README.md b/data-message/README.md index 13b6d41..a31406c 100644 --- a/data-message/README.md +++ b/data-message/README.md @@ -20,3 +20,7 @@ roundtrips, small message sizes and fast parsing. In addition, the format aims to ease the development of client applications with a simple, but generic message structure that supports different types of data structures. +See: +- doc: for the normative documentation +- samples: for message samples +- tools: for the JSON schema usable for validation purposes From 461a77b5635103429728b1eab246e35fba4e487b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 1 Dec 2016 18:12:21 +0100 Subject: [PATCH 031/161] Update README.md --- data-message/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-message/README.md b/data-message/README.md index a31406c..ce81285 100644 --- a/data-message/README.md +++ b/data-message/README.md @@ -21,6 +21,6 @@ to ease the development of client applications with a simple, but generic message structure that supports different types of data structures. See: -- doc: for the normative documentation +- docs: for the normative documentation - samples: for message samples - tools: for the JSON schema usable for validation purposes From 9e135ccc492aaf47d12761618f19d46b43d73de1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 1 Dec 2016 18:24:17 +0100 Subject: [PATCH 032/161] Update README.md --- structure-message/README.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/structure-message/README.md b/structure-message/README.md index c418f56..9b5b1d0 100644 --- a/structure-message/README.md +++ b/structure-message/README.md @@ -1,6 +1,11 @@ -# SDMX-JSON Structure Message Prototype +# SDMX-JSON Structure Message -SDMX-JSON Structure Message is a SDMX data exchange format based on JSON. -Structure Message works together with the SDMX RESTful Web Services API. -Structure Message focuses on data discovery and it supports all features -of the SDMX RESTful API for structure queries. +SDMX-JSON Structure Message is a SDMX data exchange format based on JSON. JSON (JavaScript Object Notation) is a widely used standardised lightweight data-interchange format. +SDMX-JSON Structure Message works together with the SDMX RESTful Web Services API. Structure Message focuses on data discovery and it supports all features of the SDMX RESTful API for structure queries. + +The proposed format conforms to the JSON standard specification, and it supports the SDMX 2.1 Information Model and the full functionality of the SDMX 2.1 RESTful API for structure queries for various types of visualisations. It adheres to the HATEOAS principles. Queries can ask for specific resources (structural SDMX artefacts), and in addition ask for resolving links to and returning related resources. + +See: +- docs: for the normative documentation +- samples: for message samples +- tools: for the JSON schema usable for validation purposes From 234414036c9e1ea3650a0d3d0661f26c4e277b74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 1 Dec 2016 18:31:57 +0100 Subject: [PATCH 033/161] Update step1-hateoas.json --- structure-message/samples/browse-by-topic/step1-hateoas.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/structure-message/samples/browse-by-topic/step1-hateoas.json b/structure-message/samples/browse-by-topic/step1-hateoas.json index 7f432fd..c5207a2 100644 --- a/structure-message/samples/browse-by-topic/step1-hateoas.json +++ b/structure-message/samples/browse-by-topic/step1-hateoas.json @@ -6,7 +6,7 @@ "id": "ECB" } }, - "structure": { + "resources": { "links": [ { "href": "https://ws-entry-point/categoryscheme/ECB/NAVI_PUB/1.0", From 7374c7aa95b85391da9e9af18d23c06d3aab9a6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 1 Dec 2016 19:35:49 +0100 Subject: [PATCH 034/161] Update step1.json --- structure-message/samples/browse-by-topic/step1.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/structure-message/samples/browse-by-topic/step1.json b/structure-message/samples/browse-by-topic/step1.json index b3413be..9107821 100644 --- a/structure-message/samples/browse-by-topic/step1.json +++ b/structure-message/samples/browse-by-topic/step1.json @@ -307,7 +307,7 @@ "agencyID": "ECB", "version": "1.0", "name": "Financial market data", - "references": [ + "links": [ { "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_FMD2/1.0", "rel": "structure", @@ -320,7 +320,7 @@ "agencyID": "ECB", "version": "1.0", "name": "Balance Sheet Items", - "references": [ + "links": [ { "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_BSI1/1.0", "rel": "structure", From 87f5b2af36841632bd3b33313a2166752e93a1a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 1 Dec 2016 19:38:53 +0100 Subject: [PATCH 035/161] Update step2.json --- structure-message/samples/browse-by-topic/step2.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/structure-message/samples/browse-by-topic/step2.json b/structure-message/samples/browse-by-topic/step2.json index b6527b1..6e4b82f 100644 --- a/structure-message/samples/browse-by-topic/step2.json +++ b/structure-message/samples/browse-by-topic/step2.json @@ -20,7 +20,7 @@ { "id": "01", "name": "Monetary operations", - "references": [ + "links": [ { "href": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:ILM_PUB(1.0)", "rel": "request", @@ -46,7 +46,7 @@ "agencyID": "ECB.DISS", "version": "1.0", "name": "Internal Liquidity Management - Published series", - "references": [{ + "links": [{ "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_ILM1/1.0", "rel": "structure", "type": "datastructure" @@ -57,7 +57,7 @@ "agencyID": "ECB.DISS", "version": "1.0", "name": "Financial market data - Published series", - "references": [{ + "links": [{ "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_FMD2/1.0", "rel": "structure", "type": "datastructure" @@ -68,7 +68,7 @@ "agencyID": "ECB.DISS", "version": "1.0", "name": "Balance Sheet Items - Published series", - "references": [{ + "links": [{ "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_BSI1/1.0", "rel": "structure", "type": "datastructure" From e7de36e42ab37eae255cbf3a3cf5ea300cdbc0b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 2 Dec 2016 11:07:29 +0100 Subject: [PATCH 036/161] Update step3.json --- structure-message/samples/browse-by-topic/step3.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/structure-message/samples/browse-by-topic/step3.json b/structure-message/samples/browse-by-topic/step3.json index 659f610..82e5a6c 100644 --- a/structure-message/samples/browse-by-topic/step3.json +++ b/structure-message/samples/browse-by-topic/step3.json @@ -22,9 +22,12 @@ ], "name": "Balance Sheet Items - Published series", "description": "Series of the 'Balance Sheet Items' dataflow that are used in ECB publications", - "structure": { - "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=ECB:ECB_BSI1(1.0)" - } + "links": [ + { + "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.DataStructure=ECB:ECB_BSI1(1.0)", + "type": "datastructure" + } + ] } ], "references": { From a3977ae486b428b4c5fdb1addc1624fe78ec0c1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Tue, 13 Dec 2016 18:58:03 +0100 Subject: [PATCH 037/161] Update 1-sdmx-json-field-guide.md Corrected a formatting glitch. --- .../docs/1-sdmx-json-field-guide.md | 24 ++----------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/structure-message/docs/1-sdmx-json-field-guide.md b/structure-message/docs/1-sdmx-json-field-guide.md index 7dec5f9..33110b1 100644 --- a/structure-message/docs/1-sdmx-json-field-guide.md +++ b/structure-message/docs/1-sdmx-json-field-guide.md @@ -141,27 +141,7 @@ Example: ## resource -*Object* *nullable*. Provides the information about a requested resource. A resource can be any SDMX artifact that can be requested through a structure request: -- DataStructureDefinition -- MetadataStructureDefinition -- CategoryScheme -- ConceptScheme -- Codelist -- HierarchicalCodelist -- OrganisationsScheme -- AgencyScheme -- DataProviderScheme -- DataConsumerScheme -- OrganisationUnitScheme -- Dataflow -- Metadataflow -- ReportingTaxonomy -- ProvisionAgreement -- StructureSet -- Process -- Categorisation -- Constraint -- +*Object* *nullable*. Provides the information about a requested resource. A resource can be any SDMX artifact that can be requested through a structure request: DataStructureDefinition, MetadataStructureDefinition, CategoryScheme, ConceptScheme, Codelist, HierarchicalCodelist, OrganisationsScheme, AgencyScheme, DataProviderScheme, DataConsumerScheme, OrganisationUnitScheme, Dataflow, Metadataflow, ReportingTaxonomy, ProvisionAgreement, StructureSet, Process, Categorisation, Constraint * id - *String*. Identifier for the resource. * uri - *String* *nullable*. The URL address of the resource. @@ -173,7 +153,7 @@ Example: * validFrom - *String* *nullable*. A timestamp from which the version is valid. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. * validTo - *String* *nullable*. A timestamp from which the version is superceded. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. * isFinal - *Boolean* *nullable*. True if this is the final version of the resource, otherwise False (draft version). -* isExternalReference - *Boolean* *nullable*. If set to true it indicates that the content of the resource is held externally. +* isExternalReference - *Boolean* *nullable*. If set to “true” it indicates that the content of the resource is held externally. * isPartial - *Boolean* *nullable*. If set to true, it indicates that the resource contains only a sub-set of items. Only for resources that inherit from the ItemScheme (CategoryScheme, Codelist, ConceptScheme, ReportingTaxonomy, and OrganisationScheme). * links - *Array* *nullable*. A collection of links to additional resources for the resource. See the section [link](#link). * annotations - *Array* *nullable*. Provides a list of annotation objects. From cc62146d85c38f20e2394dfef401e85a15da3275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 24 Mar 2017 18:51:33 +0100 Subject: [PATCH 038/161] Update 1-sdmx-json-field-guide.md Shortened field guide structure and further developed explanations to facilitate comprehension. Fixed issue #8 (Allow links also in components) --- data-message/docs/1-sdmx-json-field-guide.md | 1191 ++++++++++-------- 1 file changed, 638 insertions(+), 553 deletions(-) diff --git a/data-message/docs/1-sdmx-json-field-guide.md b/data-message/docs/1-sdmx-json-field-guide.md index b149eaf..1e20219 100644 --- a/data-message/docs/1-sdmx-json-field-guide.md +++ b/data-message/docs/1-sdmx-json-field-guide.md @@ -8,7 +8,7 @@ but if we know that this is an exchange rate for the US dollar against the euro 23 November 2006, it starts making more sense. There are two types of concepts: dimensions and attributes. Dimensions, when combined, -allow to uniquely identify statistical data. Attributes on the other hand do not help +allow to uniquely identifying statistical data. Attributes on the other hand do not help identifying statistical data, but they add useful information (like the unit of measure or the number of decimals). Dimensions and attributes are known as "components". @@ -22,7 +22,7 @@ the values of the US dollar, the Japanese yen and the Swiss franc against the eu particular date). Of course, these intermediate groupings are entirely optional and you may simply decide to have a flat list of observations in your data set. -The SDMX information model is much richer than this limited introduction, +The SDMX information model is much richer than this limited introduction; however the above should be sufficient to understand the sdmx-json format. For additional information, please refer to the [SDMX documentation](http://sdmx.org/?page_id=10). @@ -41,157 +41,93 @@ may not contain fields for data, dimensions and attributes. # Field Guide to SDMX-JSON Objects -## Message +## message + +Message is the top level object and it contains the data as well +as the metadata needed to interpret those data. + +* header - *Object* *nullable*. *[Header](#header)* contains basic technical information about the message, such as when it was prepared and who has sent it. +* structure - *Object* *nullable*. *[Structure](#structure)* contains the information needed to interpret the data available in the message, such as the list of concepts used. +* dataSets - *Array* *nullable*. *DataSets* field is an array of *[dataSet](#dataSet)* objects. That's where the data (i.e.: the observations) will be. +* errors - *Array* *nullable*. *Errors* field is an array of *[error](#error)* objects. When appropriate provides a list of error messages in addition to RESTful web services HTTP error status codes. -Message is the top level object and it contains the data as well as the metadata needed to interpret those data. Example: { "header": { - # header fields # + # header object # }, "structure": { - # structure objects # + # structure object # }, "dataSets": [ - # data set objects # + { + # dataSet object # + } ], "errors": [ - # Error messages # - ] - } - -### header - -*Object* *nullable*. *[Header](#Header)* contains basic technical information about -the message, such as when it was prepared and who has sent it. Example: - - "header": { - "id": "b1804c51-1ee3-45a9-bb75-795cd4e06489", - "prepared": "2012-05-04T03:30:00" - } - -### structure - -*Object* *nullable*. *[Structure](#Structure)* contains the information needed to -interpret the data available in the message, such as the list of concepts used. Example: - - "structure": { - "links": [ - { - # link object # - } - ], - "dimensions": { - # dimensions object # - }, - "attributes": { - # attributes object # + { + # error object # } - "annotations": [ - # annotation objects # - ] + ] } -### dataSets - -*Array* *nullable*. *DataSets* field is an array of *[DataSet](#DataSet)* objects. That's where the data (i.e.: the observations) -will be. Example: - - "dataSets": [ - { - "action": "Information", - "observations": { - # observation objects # - } - } - ] - -In typical cases, the file will contain only one data set. However, in some cases, such as when retrieving, -from an SDMX 2.1 web service, what has changed in the data source since in particular point in time, the web -service might return more than one data set. - -### errors - -*Array* *nullable*. RESTful web services indicates errors using the HTTP status -codes. In addition, whenever appropriate, the error messages can also be returned using -this error field. Error is an array of error messages. Example: - - "errors": [ - { - "code": 150, - "message": "Invalid number of dimensions in the key parameter" - } - ] - -#### code - -*number*. Provides a code number for the error message. Code numbers are defined -in the SDMX 2.1 Web Services Guidelines. Example: - - "code": 150 - -#### message - -*string*. Provides the error message. Error messages are fully customizable by the service providers and should provide enough detail to ease understanding the reasons of the error. Example: +## header - "message": "Invalid number of dimensions in the key parameter" +*Object* *nullable*. Header contains basic technical information +about the message, such as when it was prepared and who has sent it. -## header +* id - *String*. *String*. Unique string that identifies the message for further references. +* test - *Boolean* *nullable*. Indicates whether the message is for test purposes or not. False for normal messages. +* prepared - *String*. A timestamp indicating when the message was prepared. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. +* sender - *Object*. *[Sender](#sender)* contains information about the party that is transmitting the message. +* receiver - *Object* *nullable*. *[Receiver](#receiver)* contains information about the party that is receiving the message. This can be useful if the WS requires authentication. +* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional external resources for the header. -Header contains basic information about the message, such as when it was prepared and -who has sent it. Example: +Example: "header": { "id": "b1804c51-1ee3-45a9-bb75-795cd4e06489", "prepared": "2013-01-03T12:54:12", + "test": false, "sender: { - "id": "SDMX" - } + # sender object # + }, + "receiver": { + # receiver object # + }, + "links": [ + { + # link object # + } + ] } -### id - -*String*. Unique string that identifies the message for further references. -Example: - - "id": "TEC00034" - -### test - -*Boolean* *nullable*. Indicates whether the message is for test purposes or not. False for normal messages. Example: - - "test": false - -### prepared - -*String*. A timestamp indicating when the message was prepared. Values must -follow the ISO 8601 syntax for combined dates and times, including time zone. Example: - - "prepared": "2012-05-04T03:30:00Z" - ### sender -*Object*. Information about the party that is transmitting the message. Sender contains the following fields: +*Object*. Information about the party that is transmitting the message. +Sender contains the following fields: * id - *String*. A unique identifier of the party. * name - *String* *nullable*. A human-readable name of the sender. -* contact - *Array* *nullable*. A collection of contact details. +* contacts - *Array* *nullable*. A collection of contacts. Example: "sender": { "id": "ECB", "name": "European Central Bank", - "contact": [ - # contact details # + "contacts": [ + { + # contact objects # + } ] } #### contact -*Array* *nullable*. Information on how the party can be contacted. -Each object in the collection may contain the following field: +*Object*. A collection of contact details. Each object in the collection +may contain the following field: * name - *String*. The contact's name. * department - *String* *nullable*. The organisational structure for the contact. @@ -203,63 +139,45 @@ Each object in the collection may contain the following field: Example: - "contact": [ - { - "name": "Statistics hotline", - "email": [ "statistics@xyz.org" ] - } - ] - -### receiver - -*Object* *nullable*. Information about the party that is receiving the message. This can be -useful if the WS requires authentication. Receiver contains the same fields as sender (see above): - -Example: - - "receiver": { - "id": "SDMX" + { + "name": "Statistics hotline", + "department": "Statistics hotline", + "role": "Statistics hotline", + "telephone": [ "+00 0 00 00 00 00" ], + "fax": [ "+00 0 00 00 00 01" ], + "uri": [ "www.xyz.org" ], + "email": [ "statistics@xyz.org" ] } -### links - -*Array* *nullable*. A collection of links to additional resources for the headers. - -Example: - - "links": [ - { - "href": "https://data.sdmx.org/ws/rest/data/EXR/D.USD.EUR.SP00.A", - "rel": "request" - } - ] - -#### link - -*Object* *nullable*. A link to an external resource. Example: +### receiver - { - "href": "https://registry.sdmx.org/help.html", - "rel": "help", - "title": "Documentation about the SDMX Global Registry", - "type": "text/html" - } +*Object* *nullable*. Information about the party that is receiving the message. +This can be useful if the WS requires authentication. Receiver contains the +same fields as [sender](#sender). -The `href` and `rel` attributes are mandatory, while the `title` and `type` are optional. +### link -See the section about the [linking mechanism](#linking-mechanism) for additional information. +See the section on [linking mechanism](#linking-mechanism) for all information on links. ## structure -*Object* *nullable*. Provides the structural metadata necessary to interpret the data contained in the message. -It tells you which are the components (dimensions and attributes) used in the message and also describes to which -level in the hierarchy (data set, series, observations) these components are attached. +*Object* *nullable*. Provides the structural metadata necessary to interpret the data +contained in the message. It tells you which are the components (`dimensions` and `attributes`) +used in the message and also describes to which level in the hierarchy (`dataSet`, `series`, +`observations`) these components are attached. + +* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to structural metadata or to additional information regarding the structure. +* dimensions - *Object*. Describes the *[dimensions](#dimensions_attributes)* used in the message as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) to which these `dimensions` are attached. +* attributes - *Object*. Describes the *[attributes](#dimensions_attributes)* used in the message as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) to which these `attributes` are attached. +* annotations - *Array* *nullable*. *Annotations* field is an array of *[annotation](#annotation)* objects. If appropriate, provides a list of `annotations`. `Annotations` can be attached to `dataSets`, `series` and `observations`. Example: "structure": { "links": [ - # links array # + { + # link object # + } ], "dimensions": { # dimensions object # @@ -267,482 +185,591 @@ Example: "attributes": { # attributes object # }, - "annotations": { - # annotations object # - } - } - -### links - -*Array* *nullable*. A collection of links to structural metadata or to additional information regarding the structure. - -Example: - - "links": [ - { - "href": "https://registry.sdmx.org/ws/rest/dataflow/ECB/EXR", - "rel": "dataflow" - }, - { - "href": "https://registry.sdmx.org/ws/rest/datastructure/ECB/ECB_EXR1", - "rel": "datastructure" - } - ] - -#### link - -*Object* *nullable*. A link to an external resource. Example: - - { - "href": "https://registry.sdmx.org/help.html", - "rel": "help", - "title": "Documentation about the SDMX Global Registry", - "type": "text/html" + "annotations": [ + { + # annotation object # + } + ] } -The `href` and `rel` attributes are mandatory, while the `title` and `type` are optional. - -See the section about the [linking mechanism](#linking-mechanism) for additional information. - -### name +### link -*String* *nullable*. Data flow name. Example: +See the section on [linking mechanism](#linking-mechanism) for all information on links. - "name": "Sample dataflow" +### dimensions, attributes -### description +*Object*. Describes the dimensions/attributes used in the message +as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) +to which these dimensions/attributes are attached. -*String* *nullable*. Descriptio of the data flow. Example: +* dataSet - *Array* *nullable*. *dataSet* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `dataSet` level. It is highly recommended to present all dimensions and attributes at the `dataSet` level for which the message contains only 1 single value. +* series - *Array* *nullable*. *series* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `series` level. +* observation - *Array* *nullable*. *observation* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `observation` level. When using the SDMX API, then the dimension(s) specified in the parameter "dimensionAtObservation" would be presented at `observation` level. If "dimensionAtObservation=AllDimensions" then all dimensions, except those with only one value possibly presented at the `dataSet` level, would be presented at `observation` level. - "description": "Data flow description." - -### dimensions - -*Object*. Describes the dimensions used in the message as well as the levels in the hierarchy (data set, series, -observations) to which these dimensions are attached. Example: +Example: "dimensions": { "dataSet": [ - # Component objects # + { + # component object # + } ], "series": [ - # Component objects # + { + # component object # + } ], "observation": [ - # Component object # + { + # component object # + } ] } - -### attributes - -*Object*. Describes the attributes used in the message as well as the levels in the hierarchy (data set, series, -observations) to which these attributes are attached. Example: - "attributes": { "dataSet": [ - # Component objects # + { + # component object # + } ], "series": [ - # Component objects # + { + # component object # + } ], "observation": [ - # Component objects # + { + # component object # + } ] } -### dataSet - -*Array* *nullable*. Optional array to be provided if components (dimensions or attributes) are attached to the data set level. - -### series - -*Array* *nullable*. Optional array to be provided if components (dimensions or attributes) are attached to the series level. - -### observation +#### component -*Array* *nullable*. Optional array to be provided if components (dimensions or attributes) are attached to the observation level. +*Object* *nullable*. A component represents a `dimension` or an `attribute` used in the message. +It contains basic information about the component (such as its `name` and `id`) +as well as the list of `values` used in the message for this particular component. +Each of the components may contain the following fields: -#### component +* id - *String*. Identifier for the component. +* name - *String*. Name provides a human-readable name for the component. +* description - *String* *nullable*. Provides a description for the component. +* keyPosition - *Number* *nullable*. Indicates the position of the `dimension` in the key (e.g. used in the SDMX API call), starting at 0. This field should not be supplied for `attributes` and it may also be omitted for `dimensions`. This field could be used to build the "key" parameter string (i.e. D.USD.EUR.SP00.A) for data queries, whenever the order of the `dimensions` cannot easily be derived from the structural metadata information available in the data message. +* role - *String* *nullable*. Defines the component role(s), if any. Roles are represented by the id of a concept defined as [SDMX cross-domain concept](https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf). Several of the concepts defined as SDMX cross-domain concepts are useful for data visualisation, such as for example, the series title ("TITLE"), the unit of measure ("UNIT_MEASURE"), the number of decimals to be displayed ("DECIMALS"), the country or geographic reference area ("REF_AREA", e.g. when using maps), the period of time to which the measured observation refers ("REF_PERIOD"), the time interval at which observations occur over a given time period ("FREQ"), etc. It is strongly recommended to identify any component that can be useful for data visualisation purposes by using the appropriate SDMX cross-domain concept as role. +* default - *String* or *Number* *nullable*. Defines a default `value` for the component (valid for `attributes` only!). If no value is provided in the data part of the message then this value applies. +* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional information regarding the component. +* values - *Array*. *Values* field is an array of *[component value](#component_value)* objects. Note that `dimensions` and `attributes` presented at `dataSet` level can only have one single component value. -A component represents a dimension or an attribute used in the message. It contains basic information about the component -(such as its name and id) as well as the list of values used in the message for this particular component. Example: +Example: { "id": "FREQ", "name": "Frequency", + "description": "The time interval at which observations occur over a given time period.", "keyPosition": 0, "role": "FREQ", + "default": "A", + "links": [ + { + # link object # + } + ], "values": [ { - # value object # + # component value object # } ] } -Each of the components may contain the following fields - -##### id - -*String*. Identifier for the component. -Example: - - "id": "FREQ" - -##### name - -*String*. Name provides a human-readable name for the component. -Example: - - "name": "Frequency" - -##### description - -*String* *nullable*. Provides a description for the component. Example: - - "description": "The time interval at which observations occur over a given time period." - -##### keyPosition - -*Number* *nullable*. Indicates the position of the dimension in the key, starting at 0. -This field should not be supplied for attributes and it may also be omitted for dimensions. This field could be used to build the "key" parameter string (i.e. D.USD.EUR.SP00.A) for data queries, whenever the order of the dimensions cannot easily be derived from the structural metadata information available in the data message. Example: - - "keyPosition": 0 - -##### role - -*String* *nullable*. Defines the component role(s), if any. Roles are represented by the id of a concept defined as [SDMX cross-domain concept](http://sdmx.org/?page_id=11). Several of the concepts defined as SDMX cross-domain concepts are useful for data visualisation, such as for example, the series title ("TITLE"), the unit of measure ("UNIT_MEASURE"), the number of decimals to be displayed ("DECIMALS"), the country or geographic reference area ("REF_AREA", e.g. when using maps), the period of time to which the measured observation refers ("REF_PERIOD"), the time interval at which observations occur over a given time period ("FREQ"), etc. It is strongly recommended to identify any component that can be useful for data visualisation purposes by using the appropriate SDMX cross-domain concept as role. Example: - - "role": "TITLE" - -##### default - -*String* or *Number* *nullable*. Defines a default value for the component (valid for attributes only!). If -no value is provided in the data part of the message then this value applies. Example: - - "default": "A" - -##### values - -*Array*. Array of [values](#component_values) for the component. Example: - - "values": [ - { - "id": "M", - "name": "Monthly" - } - ] - -##### Component value - -*Object* *nullable*. A particular value for a component in a message. Example: - - { - "id": "M", - "name": "Monthly" - } - -###### id - -*String*. Unique identifier for a value. Example: - - "id": "A" - -###### name +##### link -*String*. Human-readable name for a value. Example: +See the section on [linking mechanism](#linking-mechanism) for all information on links. - "name": "Missing value; data cannot exist" +##### component value -###### description +*Object* *nullable*. A particular value for a component in a message. -*String* *nullable*. Description provides a human-readable description of the value. The description is typically longer -than the text provided for the name field. Example: - - "description": "Description for missing value." - -###### start and end fields - -*String* *nullable*. Start and end are instances of time that define the actual -Gregorian calendar period covered by the values for the time dimension. The algorithm -for computing start and end fields for any supported reporting period is defined -in the SDMX Technical Notes. - -These fields should be used only when the component value represents one of the -values for the time dimension. - -Values are considered as inclusive both for the start field and the end field. -Values must follow the ISO 8601 syntax for combined dates and times, including time zone. +* id - *String*. Unique identifier for a component value. +* name - *String*. Name provides a human-readable name for the component value. +* description - *String* *nullable*. Description provides a human-readable description of the value. The description is typically longer than the text provided for the name field. +* start, end - *String* *nullable*. Start and end are instances of time that define the actual Gregorian calendar period covered by the values for the time dimension. The algorithm for computing start and end fields for any supported reporting period is defined in the SDMX Technical Notes. These fields should be used only when the component value represents one of the values for the time dimension. Values are considered as inclusive both for the start field and the end field. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. These fields are useful for visualisation tools, when selecting the appropriate point in time for the time axis. Statistical data, can be collected, for example, at the beginning, the middle or the end of the period, or can represent the average of observations through the period. Based on this information and using the start and end fields, it is easy to get or calculate the desired point in time to be used for the time axis. Example: { "id": "2010", "name": "2010", + "description": "Description for 2010.", "start": "2010-01-01T00:00Z", "end": "2010-12-31T23:59:59Z" } -These fields are useful for visualisation tools, when selecting the appropriate point in time for the time axis. -Statistical data, can be collected, for example, at the beginning, the middle or the end of the period, or can -represent the average of observations through the period. Based on this information and using the start and end -fields, it is easy to get or calculate the desired point in time to be used for the time axis. +### annotation -### Annotations +*Object* *nullable*. An annotation object can be attached to `dataSets`, +`series` and `observations`. It contains the following optional information: -*Array* *nullable*. Provides a list of annotation objects. Annotations can be attached -to data sets, series and observations. - - "annotations": [ - { - "title": "Sample annotation", - "uri": "http://sample.org/annotations/74747" - } - ] - -Each annotation object contains the following optional information: - -#### title - -*string* *nullable*. Provides a title for the annotation. Example: - - "title": "Sample annotation" - -#### type - -*string* *nullable*. Type is used to distinguish between annotations designed to -support various uses. The types are not enumerated, and these can be freely specified by -the creator of the annotations. The definitions and use of annotation types -should be documented by their creator. Example: - - "type": "reference" - -#### uri - -*string* *nullable*. URI - typically a URL - which points to an external resource -which may contain or supplement the annotation. If a specific behavior is desired, -an annotation type should be defined which specifies the use of this field more exactly. - - "uri": "http://sample.org/annotations/74747" - -#### text - -*string* *nullable*. Contains the text of the annotation. - - "text": "Sample annotation text" - -#### id - -*string* *nullable*. ID provides a non-standard identification of an annotation. -It can be used to disambiguate annotations. Example: - - "id": "74747" - -## dataSets - -An array of data set objects. Example: - - "dataSets": [ - { - "action": "Information", - "series": { - # series object # - }, - "links": [ - # links array # - ] - } - ] - -There are between 2 and 3 levels in a data set object, depending on the way the data in the message is organized. - -A data set may contain a flat list of observations. In this scenario, we have 2 levels in the data part of the message: -the data set level and the observation level. - -A data set may also organize observations in logical groups called series. These groups can represent time series or -cross-sections. In this scenario, we have 3 levels in the data part of the message: the data set level, the -series level and the observation level. - -Dimensions and attributes may be attached to any of these 3 levels. - -In case the data set is a flat list of observations, observations will be found directly under a data set object. In -case the data set represents time series or cross sections, the observations will be found under the series elements. - -### action - -*String* *nullable*. Action provides a list of actions, describing the intention of the data transmission -from the sender's side. ```Default value is Information``` - -* Append - this is an incremental update for an existing data set or the provision of new data or documentation -(attribute values) formerly absent. If any of the supplied data or metadata are already present, it will not replace -these data. - -* Replace - data are to be replaced, and may also include additional data to be appended. - -* Delete - data are to be deleted. - -* Information - data are being exchanged for informational purposes only, and not meant to update a system. +* title - *String* *nullable*. Provides a title for the annotation. +* type - *String* *nullable*. Type is used to distinguish between annotations designed to support various uses. The types are not enumerated, and these can be freely specified by the creator of the annotations. The definitions and use of annotation types should be documented by their creator. +* uri - *String* *nullable*. URI - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behaviour is desired, an annotation type should be defined which specifies the use of this field more exactly. +* text - *String* *nullable*. Contains the text of the annotation. +* id - *String* *nullable*. ID provides a non-standard identification of an annotation. It can be used to disambiguate annotations. Example: - "action": "Information" - -### reportingBegin - -*String* *nullable*. The start of the time period covered by the message. Example: - - "reportingBegin": "2012-05-04" - -### reportingEnd - -*String* *nullable*. The end of the time period covered by the message. Example: - - "reportingEnd": "2012-06-01" - -### validFrom - -*String* *nullable*. The validFrom indicates the inclusive start time indicating the validity of the information in the data. - - "validFrom": "2012-01-01T10:00:00Z" - -### validTo - -*String* *nullable*. The validTo indicates the inclusive end time indicating the validity of the information in the data. - - "validTo": "2013-01-01T10:00:00Z" - -### publicationYear - -*String* *nullable*. The publicationYear holds the ISO 8601 four-digit year. + { + "title": "Sample annotation", + "type": "reference", + "uri": "http://sample.org/annotations/74747", + "text": "Sample annotation text", + "id": "74747" + } - "publicationYear": "2005" +## dataSet -### publicationPeriod +*Object*. That's where the data (i.e.: the `observations`) will be. -*String* *nullable*. The publicationPeriod specifies the period of publication of the data in terms of whatever -provisioning agreements might be in force (i.e., "2005-Q1" if that is the time of publication for a data set -published on a quarterly basis). +In typical cases, the file will contain only one `dataSet`. +However, in some cases, such as when retrieving, from an SDMX 2.1 web service, +what has changed in the data source since in particular point in time, the web +service might return more than one `dataSet`. - "publicationPeriod": "2005-Q1" +There are between 2 and 3 levels in a `dataSet` object, depending on the way +the data in the message is organized. -### annotations +A `dataSet` may contain a flat list of `observations`. In this scenario, +we have 2 levels in the data part of the message: +the `dataSet` level and the `observation` level. -*Array* *nullable*. An optional array of annotation indices for the dataset. Indices refer -back to the array of annotations in the structure field. Example: +A `dataSet` may also organize observations in logical groups called `series`. +These groups can represent time series or cross-sections. In this scenario, +we have 3 levels in the data part of the message: +the `dataSet` level, the `series` level and the `observation` level. - "annotations": [ 3, 42 ] +`Dimensions` and `attributes` may be specified at any of these 3 levels. -### attributes +In case the `dataSet` is a flat list of `observations`, `observations` will be found +directly under a `dataSet` object. In case the `dataSet` represents time series +or cross sections, the `observations` will be found under the `series` elements. -*Array* *nullable*. Collection of [attributes values](#attributes) attached to the data set level. This is typically the case when a -particular attribute always has the same value for the data available in the data message. In order to avoid repetition, -that value can simply be attached at the data set level. Example: +* action - *String* *nullable*. Action provides a list of actions, describing the intention of the data transmission from the sender's side. +- Append - this is an incremental update for an existing `dataSet` or the provision of new data or documentation (attribute values) formerly absent. If any of the supplied data or metadata is already present, it will not replace these data. +- Replace - data are to be replaced, and may also include additional data to be appended. +- Delete - data are to be deleted. +- Information (default) - data are being exchanged for informational purposes only, and not meant to update a system. +* reportingBegin - *String* *nullable*. The start of the time period covered by the message. +* reportingEnd - *String* *nullable*. The end of the time period covered by the message. +* validFrom - *String* *nullable*. The validFrom indicates the inclusive start time indicating the validity of the information in the data. +* validTo - *String* *nullable*. The validTo indicates the inclusive end time indicating the validity of the information in the data. +* publicationYear - *String* *nullable*. The publicationYear holds the ISO 8601 four-digit year. +* publicationPeriod - *String* *nullable*. The publicationPeriod specifies the period of publication of the data in terms of whatever provisioning agreements might be in force (i.e., "2005-Q1" if that is the time of publication for a `dataSet` published on a quarterly basis). +* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional information regarding the dataSet. +* annotations - *Array* *nullable*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the dataSet. Indices refer back to the array of *annotations* in the structure field. +* attributes - *Array* *nullable*. Collection of indices of the corresponding *values* of all attributes presented at the dataSet level. Each value is an index in the `values` array of the respective *component* object within the `structure.attributes.dataSet` array. This is typically the case for `attributes` that always have the same value for all the `observations` available in the `dataSet`. In order to avoid repetition, that value can simply be presented at the `dataSet` level. +* series - *Object* *nullable*. A collection of *[series](#series)* objects, to be used when the `observations` contained in the `dataSet` are presented in logical groups (time series or cross-sections), e.g. when using the SDMX API with the parameter "dimensionAtObservation=TIME_PERIOD" (default option) or with the "dimensionAtObservation" parameter with an ID of any other specific `dimension`. This element must **not** be used in case the `dataSet` presents a flat view of `observations`. +* observations - *Object* *nullable*. Collection of *[observations](#observations)* used in case when a `dataSet` is presented as a flat view of `observations`, e.g. when using the SDMX API with the parameter "dimensionAtObservation=AllDimensions". All `dimensions`, except those with only one `value` possibly presented at the `dataSet` level, would be presented at `observation` level. Alternatively, in case the `observations` are to be presented in logical groups (time series or cross-sections), use the *[series element](#series)* instead. - "attributes": [ 0, null, 0 ] +For information on how to handle the indices for `annotations`, `attributes` or +`observations` see the section dedicated to [handling component values](#Handling_component_values). -### observations +Examples: -*Object* *nullable*. Collection of [observations](#observations) directly attached to a data set. This is the case when -a data set represents a flat collection of observations. In case the observations are organised into logical groups -(time series or cross-sections), use the [series element](#series) instead. Example: - - "observations": { - "0:1:0": [ 105.6, 0, 1], - "0:1:1": [ 105,9 ] + { + "action": "Information", + "reportingBegin": "2012-05-04", + "reportingEnd": "2012-06-01", + "validFrom": "2012-01-01T10:00:00Z", + "validTo": "2013-01-01T10:00:00Z", + "publicationYear": "2005", + "publicationPeriod": "2005-Q1", + "links": [ + # links array # + ], + "annotations": [ 3, 42 ], + "attributes": [ 0, null, 0 ], + "series": { + # series object # + } } -### series - -*Object* *nullable*. A collection of series. Each series object is identified by a key (a string representing the index of each dimension value, separated by a colon) and contains the observation values and associated attributes, when the observations contained in the data set are used into logical groups (time series or cross-sections). This element must **not** be used in case the data set represents a flat list of observations. Example: - { - "annotations": [], - "attributes": [ 0, 1 ], + "action": "Information", + "reportingBegin": "2012-05-04", + "reportingEnd": "2012-06-01", + "validFrom": "2012-01-01T10:00:00Z", + "validTo": "2013-01-01T10:00:00Z", + "publicationYear": "2005", + "publicationPeriod": "2005-Q1", + "links": [ + # links array # + ], + "annotations": [ 3, 42 ], + "attributes": [ 0, null, 0 ], "observations": { - "0": [ 105.6, null, null ], - "1": [ 105.9 ], - "2": [ 106.9 ], - "3": [ 107.3, 0 ] + # observations object # } } -#### annotations +### link + +See the section on [linking mechanism](#linking-mechanism) for all information on links. + +### series -*Array* *nullable*. An optional array of annotation indices for the series. Indices refer -back to the array of annotations in the structure field. Example: +*Object* *nullable*. Collection of series, when the `observations` contained in the `dataSet` +are used into logical groups (time series or cross-sections). Each underlying series +is represented as a name/value pair in the `series` object. +A series is uniquely identified through the content of the name in the name/value pair, +which is the indices of the corresponding `values` of all `dimensions` presented at `series` +level (indices in the `values` array of the respective *component* object within the +*structure.dimensions.series* array) separated by a colon (":"). +The value in the name/value pair is an object containing: - "annotations": [ 3, 42 ] +* annotations - *Array* *nullable*. Collection of indices of the corresponding *annotations* for the series. Indices refer back to the array of `annotations` in the structure field. +* attributes - *Array* *nullable*. Collection of indices of the corresponding `values` of all `attributes` presented at the `series` level. Each value is an index in the `values` array of the respective `component` object within the `structure.attributes.series` array. This is typically the case for `attributes` that always have the same value for all the `observations` available in the series. In order to avoid repetition, that value can simply be presented at the `series` level. +* observations - *Object* *nullable*. Collection of [observations](#observations) used in case when the `observations` are presented in logical groups (time series or cross-sections), e.g. when using the SDMX API with the parameter "dimensionAtObservation=TIME_PERIOD" (default option) or with the "dimensionAtObservation" parameter with an ID of any other specific `dimension`. Only (this) one `dimension` would be presented at `observation` level for each series. -#### attributes +Example: -*Array* *nullable*. Collection of attributes values. Each value is an index to the -*values* array in the respective *Attribute* object. Example: + /* + For this example, to ease understanding, let's consider a CSV format with + horizontal time series (with header row): + + DIM1,DIM2,Value for 2016,Value for 2017,ATTR1,ATTR2,ATTR3 for 2016,ATTR3 for 2017 + DIM1_VALUE_1,DIM2_VALUE_1,1.5931,1.5925,ATTR1_VALUE_2,ATTR2_VALUE_1,ATTR3_VALUE_1, + DIM1_VALUE_1,DIM2_VALUE_2,40.3426,40.3000,ATTR1_VALUE_1,,ATTR3_VALUE_1,ATTR3_VALUE_1 + + In SDMX-JSON, using "dimensionAtObservation=TIME_PERIOD" (default) the observations + are presented in a similar way, grouped by time series (with the TIME_PERIOD dimension + at observation level), but dimension and attribute values are replaced by their indices: + */ + + "series": { + "0:0": { + "attributes": [1, 0], + "observations": { + "0": [1.5931, 0], + "1": [1.5925] + } + }, + "0:1": { + "observations": { + "0": [40.3426, 0], + "1": [40.3000, 0] + } + } + } + + /* + Series 1: "0:0" corresponds to the 2 indices for "DIM1":"DIM1_VALUE_1", "DIM2":"DIM2_VALUE_1" + The attributes for this series are: "ATTR1":"ATTR1_VALUE_2", "ATTR2":"ATTR2_VALUE_1" + This series has 2 observations: + Observation 1: "0" corresponds to the index for "TIME_PERIOD":"2016" + The value for this observation is: 1.5931 + The attribute for this observation is: "ATTR3":"ATTR3_VALUE_1" + Observation 2: "1" corresponds to the index for "TIME_PERIOD":"2017" + The value for this observation is: 1.5925 + The attribute for this observation is: "ATTR3":"ATTR3_VALUE_2" + (because this is the default value) + Series 2: "0:1" corresponds to the 2 indices for "DIM1":"DIM1_VALUE_1", "DIM2":"DIM2_VALUE_2" + The attributes for this series are: "ATTR1":"ATTR1_VALUE_1" + (because this is the default value) + This series has 2 observations: + Observation 1: "0" corresponds to the index for "TIME_PERIOD":"2016" + The value for this observation is: 40.3426 + The attribute for this observation is: "ATTR3":"ATTR3_VALUE_1" + Observation 2: "1" corresponds to the index for "TIME_PERIOD":"2017" + The value for this observation is: 40.3000 + The attribute for this observation is: "ATTR3":"ATTR3_VALUE_1" + */ + + "dimensions": { + "dataSet": [], + "series": [ + { + "id": "DIM1", + "name": "Dimension 1", + "values": [ + { + "id": "DIM1_VALUE_1", + "name": "Dimension 1 - Value 1 with index 0" + } + ] + }, + { + "id": "DIM2", + "name": "Dimension 2", + "values": [ + { + "id": "DIM2_VALUE_1", + "name": "Dimension 2 - Value 1 with index 0" + }, + { + "id": "DIM2_VALUE_2", + "name": "Dimension 2 - Value 2 with index 1" + } + ] + } + ], + "observation": [ + { + "id": "TIME_PERIOD", + "name": "Time Period", + "values": [ + { + "id": "2016", + "name": "2016" + }, + { + "id": "2017", + "name": "2017" + } + ] + } + ] + } + "attributes": { + "dataSet": [], + "series": [ + { + "id": "ATTR1", + "name": "Attribute 1", + "default": "ATTR1_VALUE_1", + "values": [ + { + "id": "ATTR1_VALUE_1", + "name": "Attribute 1 - Value 1 with index 0" + }, + { + "id": "ATTR1_VALUE_2", + "name": "Attribute 1 - Value 2 with index 1" + } + ] + }, + { + "id": "ATTR2", + "name": "Attribute 2", + "values": [ + { + "id": "ATTR2_VALUE_1", + "name": "Attribute 2 - Value 1 with index 0" + } + ] + } + ], + "observation": [ + { + "id": "ATTR3", + "name": "Attribute 3", + "default": "ATTR3_VALUE_2", + "values": [ + { + "id": "ATTR3_VALUE_1", + "name": "Attribute 3 - Value 1 with index 0" + }, + { + "id": "ATTR3_VALUE_2", + "name": "Attribute 3 - Value 2 with index 1" + } + ] + } + ] + } - "attributes": [ 0, 1 ] +For information on how to handle the indices for `annotations`, `attributes` or +`observations` see the section dedicated to [handling component values](#Handling_component_values). -For information on how to handle the attribute values, see the section dedicated to [handling component values](#handling_values). +### observations -#### observations +*Object* *nullable*. Collection of observations. Each observation is represented as a +name/value pair in the `observations` object. +An observation is uniquely identified through the content of the name in the name/value pair, +which is the indices of the corresponding values of all dimensions presented at observation +level (indices in the `values` array of the respective `component` object within the +`structure.dimensions.observation` array) separated by a colon (":"). +It's one single index for time series and cross-sections representations, but there will be +more than one when the data are represented as a flat view of observations. +The value in the name/value pair is an array containing the observation value (first position) +and the indices of the corresponding values of all `attributes` presented at `observation` level +(any following position). Therefore, elements after the observation value are for the +`observation` level `attributes`. Beginning from the end of the array, `observation` level +`attributes` can be omitted if: +- the `attribute` is not set for this observation (possible for optional attributes) or +- the `attribute` value for this observation corresponds to the default value. +The data type for observation value is *Number*. The data type for a reported missing +observation value is a *null*. Each index is an index in the `values` array of the respective +`component` object within the `structure.attributes.observation` array. -*Object* *nullable*. An object of observation values. Each observation value is an -array of one of more values. +Example: + /* + For this example, to ease understanding, let's consider data in a + flat CSV format (with header row): + + DIM1,DIM2,Observation Value,ATTR1,ATTR2 + DIM1_VALUE_1,DIM2_VALUE_1,105.6,ATTR1_VALUE_2,ATTR2_VALUE_1 + DIM1_VALUE_1,DIM2_VALUE_2,105.9,ATTR1_VALUE_1, + + In SDMX-JSON, the observations are presented in a similar flattened way, + but dimension and attribute values are replaced by their indices: + */ + "observations": { - "0": [ 105.6, null, null ], - "1": [ 105.9 ], - "2": [ 106.9 ], - "3": [ 107.3, 0 ] + "0:0": [105.6, 1, 0], + "0:1": [105.9] + } + + /* + Observation 1: "0:0" corresponds to the 2 indices for "DIM1":"DIM1_VALUE_1", "DIM2":"DIM2_VALUE_1" + The value for this observation is: 105.6 + The attributes for this observation are: "ATTR1":"ATTR1_VALUE_2", "ATTR2":"ATTR2_VALUE_1" + Observation 2: "0:1" corresponds to the 2 indices for "DIM1":"DIM1_VALUE_1", "DIM2":"DIM2_VALUE_2" + The value for this observation is: 105.9 + The attributes for this observation are: "ATTR1":"ATTR1_VALUE_1" + (because there is a default value) + */ + + "dimensions": { + "dataSet": [], + "series": [], + "observation": [ + { + "id": "DIM1", + "name": "Dimension 1", + "values": [ + { + "id": "DIM1_VALUE_1", + "name": "Dimension 1 - Value 1 with index 0" + } + ] + }, + { + "id": "DIM2", + "name": "Dimension 2", + "values": [ + { + "id": "DIM2_VALUE_1", + "name": "Dimension 2 - Value 1 with index 0" + }, + { + "id": "DIM2_VALUE_2", + "name": "Dimension 2 - Value 2 with index 1" + } + ] + } + ] + } + "attributes": { + "dataSet": [], + "series": [], + "observation": [ + { + "id": "ATTR1", + "name": "Attribute 1", + "default": "ATTR1_VALUE_1", + "values": [ + { + "id": "ATTR1_VALUE_1", + "name": "Attribute 1 - Value 1 with index 0" + }, + { + "id": "ATTR1_VALUE_2", + "name": "Attribute 1 - Value 2 with index 1" + } + ] + }, + { + "id": "ATTR2", + "name": "Attribute 2", + "values": [ + { + "id": "ATTR2_VALUE_1", + "name": "Attribute 2 - Value 1 with index 0" + } + ] + } + ] } -The keys in the observation object are the index values of the observation level dimensions. It's one -for time series and cross-sections, but there will be more than one when the data set represents a flat list of -observations. - -The first value in the observation array is the observation value. The data type -for observation value is *Number*. Data type for a reported missing observation value is a *null*. +For information on how to handle the indices for `observations` +see the section dedicated to [handling component values](#Handling_component_values). -Elements after the observation value are values for the observation level attributes. +## error -### links +*Object* *nullable*. Used to provide a error message in addition +to RESTful web services HTTP error status codes. +The following pieces of information are to be provided: -*Array* *nullable*. A collection of links to additional information about the data set. +* code - *number*. Provides a code number for the error message. Code numbers are defined in the SDMX 2.1 Web Services Guidelines. +* message - *string*. Provides the error message. Error messages are fully customizable by the service providers and should provide enough detail to ease understanding the reasons of the error. Example: - "links": [ + "errors": [ { - "href": "https://data.sdmx.org/release-calendar", - "rel": "calendar" + "code": 150, + "message": "Invalid number of dimensions in the key parameter" } ] -#### link - -*Object* *nullable*. A link to an external resource. Example: +# Linking mechanism - { - "href": "https://data.sdmx.org/release-calendar", - "rel": "calendar", - "title": "Release calendar", - "type": "text/html" - } +## link -The `href` and `rel` attributes are mandatory, while the `title` and `type` are optional. +*Object* *nullable*. A link to an external resource. -See the section about the [linking mechanism](#linking-mechanism) for additional information. +* href - *String*. Absolute or relative URL of the external resource. +* rel - *String*. Relationship of the object to the external resource. +* title - *String* *nullable*. A human-friendly description of the target link. +* type - *String* *nullable*. A hint about the type of representation returned by the link. -# Linking mechanism +Examples: -Collections of links can be attached to various elements in SDMX-JSON. + { + "href": "https://registry.sdmx.org/ws/rest/dataflow/ECB/EXR", + "rel": "dataflow" + } + + { + "href": "https://registry.sdmx.org/ws/rest/datastructure/ECB/ECB_EXR1", + "rel": "datastructure" + } -Similarily with standards such as HTML5 and Atom, link elements in SDMX-JSON *must* define a *URL* (the `href` attribute) and a *semantic* (the `rel` attribute). This allows clients to follow the links they care about and ignore the ones whose semantic they are not interested in. In addition, links in SDMX-JSON *may* define a `title` (a human-friendly description of the target link) and a `type` (a hint about the type of representation returned by the link). Please refer to the [list of Media Types and Subtypes](http://www.iana.org/assignments/media-types/media-types.xhtml) assigned and listed by the IANA for additional information about expected values for the `type` attribute. + { + "href": "https://registry.sdmx.org/help.html", + "rel": "help", + "title": "Documentation about the SDMX Global Registry", + "type": "text/html" + } -SDMX-JSON offers a list of predefined semantics, but implementers are free to extend it. The list of predefined semantics comes from the list of SDMX artefacts that can be returned by SDMX RESTful web services, semantics defined in [RFC5988](https://tools.ietf.org/rfc/rfc5988.txt) and additional items deemed to be useful in the context of statistical data dissemination. These semantics are: +Collections of links can be attached to various elements in SDMX-JSON. - - SDMX artefacts: datastructure, metadatastructure, categoryscheme, conceptscheme, codelist, hierarchicalcodelist, organisationscheme, agencyscheme, dataproviderscheme, dataconsumerscheme, organisationunitscheme, dataflow, metadataflow, reportingtaxonomy, provisionagreement, structureset, process, categorisation, contentconstraint, attachmentconstraint, category, concept, code, organisation, agency, dataprovider, dataconsumer, organisationunit, reportingcategory, data +Similarly with standards such as HTML5 and Atom, link elements in SDMX-JSON +*must* define a *URL* (the `href` attribute) and a *semantic* (the `rel` attribute). +This allows clients to follow the links they care about and ignore the ones whose +semantic they are not interested in. In addition, links in SDMX-JSON *may* define +a `title` (a human-friendly description of the target link) and a `type` (a hint +about the type of representation returned by the link). Please refer to the +[list of Media Types and Subtypes](http://www.iana.org/assignments/media-types/media-types.xhtml) assigned and listed by +the IANA for additional information about expected values for the `type` attribute. + +SDMX-JSON offers a list of predefined semantics, but implementers are free to extend it. +The list of predefined semantics comes from the list of SDMX artefacts that can be +returned by SDMX RESTful web services, semantics defined in [RFC5988](https://tools.ietf.org/rfc/rfc5988.txt) +and additional items deemed to be useful in the context of statistical data dissemination. +These semantics are: + + - SDMX artefacts: datastructure, metadatastructure, categoryscheme, conceptscheme, + codelist, hierarchicalcodelist, organisationscheme, agencyscheme, dataproviderscheme, + dataconsumerscheme, organisationunitscheme, dataflow, metadataflow, reportingtaxonomy, + provisionagreement, structureset, process, categorisation, contentconstraint, + attachmentconstraint, category, concept, code, organisation, agency, dataprovider, + dataconsumer, organisationunit, reportingcategory, data - RFC5988: alternate, copyright, glossary, help, index. - - Miscellaneous: calendar (link to a release calendar), source (information about the source of data), request (the SDMX RESTful query that triggered the SDMX-JSON response). + - Miscellaneous: calendar (link to a release calendar), source (information about the + source of data), request (the SDMX RESTful query that triggered the SDMX-JSON response). -The *URL* captured in the `href` attribute can be *absolute* or *relative*. If you intend to archive the SDMX-JSON message, it is recommended to use absolute URLs. +The *URL* captured in the `href` attribute can be *absolute* or *relative*. If you intend +to archive the SDMX-JSON message, it is recommended to use absolute URLs. # Handling component values @@ -836,14 +863,10 @@ Let's say that the following message needs to be processed: "values": [ { "id": "2013-01-18", - "name": "2013-01-18", - "start": "2013-01-18T00:00:00Z", - "end": "2013-01-18T23:59:59Z" + "name": "2013-01-18" }, { "id": "2013-01-21", - "name": "2013-01-21", - "start": "2013-01-21T00:00:00Z", - "end": "2013-01-21T23:59:59Z" + "name": "2013-01-21" } ] } @@ -901,7 +924,7 @@ Let's say that the following message needs to be processed: } ``` -There is one data set in the message, and it contains two series. +There is one `dataSet` in the message, and it contains two `series`. ```json "0": { @@ -920,39 +943,96 @@ There is one data set in the message, and it contains two series. } ``` -The structure.dimensions field tells us that, out of the 6 dimensions, 4 have the same value for the 2 series and are therefore -attached to the data set level. +The `structure.dimensions` field tells us that, out of the 6 dimensions, 4 have +the same value for the 2 series and are therefore attached to the `dataSet` level. We see that, for the first series, we get the value 0: "0": { ... } -From the structure information, we know that CURRENCY is the series dimension. +From the structure.dimensions.series information, we know that CURRENCY is +the (only) series dimension. ```json "series": [ - { - "id": "CURRENCY", - "name": "Currency", - "keyPosition": 1, - "values": [ - { - "id": "NZD", - "name": "New Zealand dollar" - }, { - "id": "RUB", - "name": "Russian rouble" - } - ] - } + { + "id": "CURRENCY", + "name": "Currency", + "keyPosition": 1, + "values": [ + { + "id": "NZD", + "name": "New Zealand dollar" + }, { + "id": "RUB", + "name": "Russian rouble" + } + ] + } +] +``` + +The value "0" identified previously is the index of the item in the +collection of values for this component. In this case, the dimension +value is therefore "New Zealand dollar". + +Now, for the first observation of the first series, we get the value 0: + + "0": [...], + +From the `structure.dimensions.observation` information, we know that +TIME_PERIOD is the (only) dimension at `observation` level. + +```json +"observation": [ + { + "id": "TIME_PERIOD", + "name": "Time period or range", + "values": [ + { + "id": "2013-01-18", + "name": "2013-01-18" + }, { + "id": "2013-01-21", + "name": "2013-01-21" + } + ] + } ] ``` -The value 0 identified previously is the index of the item in the collection of values for this component. In this case, -the dimension value is therefore "New Zealand dollar". +The value "0" identified previously is the index of the item in the +collection of values for this component. In this case, the dimension value +is therefore "2013-01-18". + +Now, for the first (and only) attribute of the first observation of the +first series, we get the value 0 (here the last value in array): -The same logic applies when mapping attributes. + "0": [1.5931, 0], +From the `structure.attributes.observation` information, we know that +OBS_STATUS is the (only) attribute at `observation` level. + +```json +"observation": [ + { + "id": "OBS_STATUS", + "name": "Observation status", + "values": [ + { + "id": "A", + "name": "Normal value" + } + ] + } +] +``` + +The value 0 identified previously is the index of the item in the +collection of values for this component. In this case, the attribute value +is therefore "Normal value". + +The same logic applies for mapping the other observations and its attributes. # Security Considerations @@ -960,12 +1040,17 @@ This document defines a response format for SDMX RESTful Web Services in JSON and it raises no new security considerations. SDMX Web Services Guidelines includes the security considerations associated with its usage. - # Extending SDMX-JSON -The objects defined in SDMX-JSON are "open", i.e. they can be extended with properties not defined in this specification. Providers of SDMX-JSON messages are therefore welcome to add support for features not covered in this specification. Whenever appropriate, providers who opt to do so are invited to inform us, so that future versions of SDMX-JSON may integrate these extensions, thereby improving interoperability. +The objects defined in SDMX-JSON are "open", i.e. they can be extended by implementers +with properties not defined in this specification. Providers of SDMX-JSON messages +are therefore welcome to add support for features not covered in this specification. +Whenever appropriate, providers who opt to do so are invited to inform us, +so that future versions of SDMX-JSON may integrate these extensions, thereby +improving interoperability. -The snippet below shows an example of an `error` object, extended with a `wsCustomErrorCode`: +The snippet below shows an example of an `error` object, extended with +a `wsCustomErrorCode`: ``` "errors": [ From 259a66cf6ba3dddb0be1e1817e913dc51e302eaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 24 Mar 2017 19:46:30 +0100 Subject: [PATCH 039/161] Update 1-sdmx-json-field-guide.md Corrected newly introduced errors in document bookmarks. Fixed issue #33 (SDMX-Json data messages DataStructure/Dataflow reference/URN). Added "hreflang" name to link object as response to issue #40 (properties for language used in structure and possibly data SDMX JSON messages) . --- data-message/docs/1-sdmx-json-field-guide.md | 38 ++++++++++++-------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/data-message/docs/1-sdmx-json-field-guide.md b/data-message/docs/1-sdmx-json-field-guide.md index 1e20219..08f1c10 100644 --- a/data-message/docs/1-sdmx-json-field-guide.md +++ b/data-message/docs/1-sdmx-json-field-guide.md @@ -48,7 +48,7 @@ as the metadata needed to interpret those data. * header - *Object* *nullable*. *[Header](#header)* contains basic technical information about the message, such as when it was prepared and who has sent it. * structure - *Object* *nullable*. *[Structure](#structure)* contains the information needed to interpret the data available in the message, such as the list of concepts used. -* dataSets - *Array* *nullable*. *DataSets* field is an array of *[dataSet](#dataSet)* objects. That's where the data (i.e.: the observations) will be. +* dataSets - *Array* *nullable*. *DataSets* field is an array of *[dataSet](#dataset)* objects. That's where the data (i.e.: the observations) will be. * errors - *Array* *nullable*. *Errors* field is an array of *[error](#error)* objects. When appropriate provides a list of error messages in addition to RESTful web services HTTP error status codes. Example: @@ -166,9 +166,9 @@ contained in the message. It tells you which are the components (`dimensions` an used in the message and also describes to which level in the hierarchy (`dataSet`, `series`, `observations`) these components are attached. -* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to structural metadata or to additional information regarding the structure. -* dimensions - *Object*. Describes the *[dimensions](#dimensions_attributes)* used in the message as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) to which these `dimensions` are attached. -* attributes - *Object*. Describes the *[attributes](#dimensions_attributes)* used in the message as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) to which these `attributes` are attached. +* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. A collection of links to structural metadata or to additional information regarding the structure. Providing links allowing accessing the underlying SDMX Data Structure Definition, Dataflow and/or Provision Agreements is recommended. +* dimensions - *Object*. Describes the *[dimensions](#dimensions-attributes)* used in the message as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) to which these `dimensions` are attached. +* attributes - *Object*. Describes the *[attributes](#dimensions-attributes)* used in the message as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) to which these `attributes` are attached. * annotations - *Array* *nullable*. *Annotations* field is an array of *[annotation](#annotation)* objects. If appropriate, provides a list of `annotations`. `Annotations` can be attached to `dataSets`, `series` and `observations`. Example: @@ -195,6 +195,8 @@ Example: ### link See the section on [linking mechanism](#linking-mechanism) for all information on links. +Providing links allowing accessing the underlying SDMX Data Structure Definition, Dataflow +and/or Provision Agreements is recommended. ### dimensions, attributes @@ -257,7 +259,7 @@ Each of the components may contain the following fields: * role - *String* *nullable*. Defines the component role(s), if any. Roles are represented by the id of a concept defined as [SDMX cross-domain concept](https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf). Several of the concepts defined as SDMX cross-domain concepts are useful for data visualisation, such as for example, the series title ("TITLE"), the unit of measure ("UNIT_MEASURE"), the number of decimals to be displayed ("DECIMALS"), the country or geographic reference area ("REF_AREA", e.g. when using maps), the period of time to which the measured observation refers ("REF_PERIOD"), the time interval at which observations occur over a given time period ("FREQ"), etc. It is strongly recommended to identify any component that can be useful for data visualisation purposes by using the appropriate SDMX cross-domain concept as role. * default - *String* or *Number* *nullable*. Defines a default `value` for the component (valid for `attributes` only!). If no value is provided in the data part of the message then this value applies. * links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional information regarding the component. -* values - *Array*. *Values* field is an array of *[component value](#component_value)* objects. Note that `dimensions` and `attributes` presented at `dataSet` level can only have one single component value. +* values - *Array*. *Values* field is an array of *[component value](#component-value)* objects. Note that `dimensions` and `attributes` presented at `dataSet` level can only have one single component value. Example: @@ -351,6 +353,8 @@ In case the `dataSet` is a flat list of `observations`, `observations` will be f directly under a `dataSet` object. In case the `dataSet` represents time series or cross sections, the `observations` will be found under the `series` elements. +The `dataSet` properties are: + * action - *String* *nullable*. Action provides a list of actions, describing the intention of the data transmission from the sender's side. - Append - this is an incremental update for an existing `dataSet` or the provision of new data or documentation (attribute values) formerly absent. If any of the supplied data or metadata is already present, it will not replace these data. - Replace - data are to be replaced, and may also include additional data to be appended. @@ -366,10 +370,10 @@ or cross sections, the `observations` will be found under the `series` elements. * annotations - *Array* *nullable*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the dataSet. Indices refer back to the array of *annotations* in the structure field. * attributes - *Array* *nullable*. Collection of indices of the corresponding *values* of all attributes presented at the dataSet level. Each value is an index in the `values` array of the respective *component* object within the `structure.attributes.dataSet` array. This is typically the case for `attributes` that always have the same value for all the `observations` available in the `dataSet`. In order to avoid repetition, that value can simply be presented at the `dataSet` level. * series - *Object* *nullable*. A collection of *[series](#series)* objects, to be used when the `observations` contained in the `dataSet` are presented in logical groups (time series or cross-sections), e.g. when using the SDMX API with the parameter "dimensionAtObservation=TIME_PERIOD" (default option) or with the "dimensionAtObservation" parameter with an ID of any other specific `dimension`. This element must **not** be used in case the `dataSet` presents a flat view of `observations`. -* observations - *Object* *nullable*. Collection of *[observations](#observations)* used in case when a `dataSet` is presented as a flat view of `observations`, e.g. when using the SDMX API with the parameter "dimensionAtObservation=AllDimensions". All `dimensions`, except those with only one `value` possibly presented at the `dataSet` level, would be presented at `observation` level. Alternatively, in case the `observations` are to be presented in logical groups (time series or cross-sections), use the *[series element](#series)* instead. +* observations - *Object* *nullable*. Collection of *[observations](#observations)* used in case when a `dataSet` is presented as a flat view of `observations`, e.g. when using the SDMX API with the parameter "dimensionAtObservation=AllDimensions". All `dimensions`, except those with only one `value` possibly presented at the `dataSet` level, would be presented at `observation` level. Alternatively, in case the `observations` are to be presented in logical groups (time series or cross-sections), use the *[series](#series)* element instead. For information on how to handle the indices for `annotations`, `attributes` or -`observations` see the section dedicated to [handling component values](#Handling_component_values). +`observations` see the section dedicated to [handling component values](#handling-component-values). Examples: @@ -418,11 +422,13 @@ See the section on [linking mechanism](#linking-mechanism) for all information o *Object* *nullable*. Collection of series, when the `observations` contained in the `dataSet` are used into logical groups (time series or cross-sections). Each underlying series is represented as a name/value pair in the `series` object. -A series is uniquely identified through the content of the name in the name/value pair, + +A series is uniquely identified through the content of the *name* in the name/value pair, which is the indices of the corresponding `values` of all `dimensions` presented at `series` level (indices in the `values` array of the respective *component* object within the *structure.dimensions.series* array) separated by a colon (":"). -The value in the name/value pair is an object containing: + +The *value* in the name/value pair is an object containing: * annotations - *Array* *nullable*. Collection of indices of the corresponding *annotations* for the series. Indices refer back to the array of `annotations` in the structure field. * attributes - *Array* *nullable*. Collection of indices of the corresponding `values` of all `attributes` presented at the `series` level. Each value is an index in the `values` array of the respective `component` object within the `structure.attributes.series` array. This is typically the case for `attributes` that always have the same value for all the `observations` available in the series. In order to avoid repetition, that value can simply be presented at the `series` level. @@ -576,19 +582,21 @@ Example: } For information on how to handle the indices for `annotations`, `attributes` or -`observations` see the section dedicated to [handling component values](#Handling_component_values). +`observations` see the section dedicated to [handling component values](#handling-component-values). ### observations *Object* *nullable*. Collection of observations. Each observation is represented as a name/value pair in the `observations` object. -An observation is uniquely identified through the content of the name in the name/value pair, + +An observation is uniquely identified through the content of the *name* in the name/value pair, which is the indices of the corresponding values of all dimensions presented at observation level (indices in the `values` array of the respective `component` object within the `structure.dimensions.observation` array) separated by a colon (":"). It's one single index for time series and cross-sections representations, but there will be more than one when the data are represented as a flat view of observations. -The value in the name/value pair is an array containing the observation value (first position) + +The *value* in the name/value pair is an array containing the observation value (first position) and the indices of the corresponding values of all `attributes` presented at `observation` level (any following position). Therefore, elements after the observation value are for the `observation` level `attributes`. Beginning from the end of the array, `observation` level @@ -691,7 +699,7 @@ Example: } For information on how to handle the indices for `observations` -see the section dedicated to [handling component values](#Handling_component_values). +see the section dedicated to [handling component values](#handling-component-values). ## error @@ -721,6 +729,7 @@ Example: * rel - *String*. Relationship of the object to the external resource. * title - *String* *nullable*. A human-friendly description of the target link. * type - *String* *nullable*. A hint about the type of representation returned by the link. +* hreflang - *String* *nullable*. The natural language of the external link, the same as used in the HTTP Accept-Language request header. Examples: @@ -738,7 +747,8 @@ Examples: "href": "https://registry.sdmx.org/help.html", "rel": "help", "title": "Documentation about the SDMX Global Registry", - "type": "text/html" + "type": "text/html", + "hreflang": "en" } Collections of links can be attached to various elements in SDMX-JSON. From 8bc117ee78244b17a611edf2a44f4907fbb5344d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 24 Mar 2017 20:12:26 +0100 Subject: [PATCH 040/161] Update 1-sdmx-json-field-guide.md Correction in example text formatting. --- data-message/docs/1-sdmx-json-field-guide.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/data-message/docs/1-sdmx-json-field-guide.md b/data-message/docs/1-sdmx-json-field-guide.md index 08f1c10..9572ad0 100644 --- a/data-message/docs/1-sdmx-json-field-guide.md +++ b/data-message/docs/1-sdmx-json-field-guide.md @@ -712,12 +712,10 @@ The following pieces of information are to be provided: Example: - "errors": [ - { - "code": 150, - "message": "Invalid number of dimensions in the key parameter" - } - ] + { + "code": 150, + "message": "Invalid number of dimensions in the key parameter" + } # Linking mechanism From 90783441f70e7c1ff5c9cfc58d6e17cf6093c1da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 28 Jul 2017 18:34:00 +0200 Subject: [PATCH 041/161] Update 1-sdmx-json-field-guide.md Include changes for issue #38 for attachment of annotations to observations, components and component values --- data-message/docs/1-sdmx-json-field-guide.md | 32 ++++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/data-message/docs/1-sdmx-json-field-guide.md b/data-message/docs/1-sdmx-json-field-guide.md index 9572ad0..adaa602 100644 --- a/data-message/docs/1-sdmx-json-field-guide.md +++ b/data-message/docs/1-sdmx-json-field-guide.md @@ -259,6 +259,7 @@ Each of the components may contain the following fields: * role - *String* *nullable*. Defines the component role(s), if any. Roles are represented by the id of a concept defined as [SDMX cross-domain concept](https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf). Several of the concepts defined as SDMX cross-domain concepts are useful for data visualisation, such as for example, the series title ("TITLE"), the unit of measure ("UNIT_MEASURE"), the number of decimals to be displayed ("DECIMALS"), the country or geographic reference area ("REF_AREA", e.g. when using maps), the period of time to which the measured observation refers ("REF_PERIOD"), the time interval at which observations occur over a given time period ("FREQ"), etc. It is strongly recommended to identify any component that can be useful for data visualisation purposes by using the appropriate SDMX cross-domain concept as role. * default - *String* or *Number* *nullable*. Defines a default `value` for the component (valid for `attributes` only!). If no value is provided in the data part of the message then this value applies. * links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional information regarding the component. +* annotations - *Array* *nullable*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the component. Indices refer back to the array of *annotations* in the structure field. * values - *Array*. *Values* field is an array of *[component value](#component-value)* objects. Note that `dimensions` and `attributes` presented at `dataSet` level can only have one single component value. Example: @@ -275,6 +276,7 @@ Example: # link object # } ], + "annotations": [ 2, 35 ], "values": [ { # component value object # @@ -294,6 +296,7 @@ See the section on [linking mechanism](#linking-mechanism) for all information o * name - *String*. Name provides a human-readable name for the component value. * description - *String* *nullable*. Description provides a human-readable description of the value. The description is typically longer than the text provided for the name field. * start, end - *String* *nullable*. Start and end are instances of time that define the actual Gregorian calendar period covered by the values for the time dimension. The algorithm for computing start and end fields for any supported reporting period is defined in the SDMX Technical Notes. These fields should be used only when the component value represents one of the values for the time dimension. Values are considered as inclusive both for the start field and the end field. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. These fields are useful for visualisation tools, when selecting the appropriate point in time for the time axis. Statistical data, can be collected, for example, at the beginning, the middle or the end of the period, or can represent the average of observations through the period. Based on this information and using the start and end fields, it is easy to get or calculate the desired point in time to be used for the time axis. +* annotations - *Array* *nullable*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the component value. Indices refer back to the array of *annotations* in the structure field. Example: @@ -302,7 +305,8 @@ Example: "name": "2010", "description": "Description for 2010.", "start": "2010-01-01T00:00Z", - "end": "2010-12-31T23:59:59Z" + "end": "2010-12-31T23:59:59Z", + "annotations": [ 5, 49 ] } ### annotation @@ -430,7 +434,7 @@ level (indices in the `values` array of the respective *component* object within The *value* in the name/value pair is an object containing: -* annotations - *Array* *nullable*. Collection of indices of the corresponding *annotations* for the series. Indices refer back to the array of `annotations` in the structure field. +* annotations - *Array* *nullable*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the series. Indices refer back to the array of `annotations` in the structure field. * attributes - *Array* *nullable*. Collection of indices of the corresponding `values` of all `attributes` presented at the `series` level. Each value is an index in the `values` array of the respective `component` object within the `structure.attributes.series` array. This is typically the case for `attributes` that always have the same value for all the `observations` available in the series. In order to avoid repetition, that value can simply be presented at the `series` level. * observations - *Object* *nullable*. Collection of [observations](#observations) used in case when the `observations` are presented in logical groups (time series or cross-sections), e.g. when using the SDMX API with the parameter "dimensionAtObservation=TIME_PERIOD" (default option) or with the "dimensionAtObservation" parameter with an ID of any other specific `dimension`. Only (this) one `dimension` would be presented at `observation` level for each series. @@ -596,21 +600,29 @@ level (indices in the `values` array of the respective `component` object within It's one single index for time series and cross-sections representations, but there will be more than one when the data are represented as a flat view of observations. -The *value* in the name/value pair is an array containing the observation value (first position) -and the indices of the corresponding values of all `attributes` presented at `observation` level -(any following position). Therefore, elements after the observation value are for the -`observation` level `attributes`. Beginning from the end of the array, `observation` level -`attributes` can be omitted if: +The *value* in the name/value pair is an array containing the observation value (first position), +the indices of the corresponding values of `attributes` presented at `observation` level +(any following position up to the number of `attributes` defined at `observation` level), and +the indices of the corresponding values of `annotations` of that observation (any following +position). Therefore, elements after the observation value are for the `observation` level +`attributes` and for `annotations` of that observation. Elements for `annotations` are only +included if there are `annotations` for that observation. If `annotations` are present, then +all `attributes` defined at `observation` level must be included. Otherwise, if the observation +has no `annotations`, then beginning from the end of the array, `observation` level `attributes` +can be omitted if: - the `attribute` is not set for this observation (possible for optional attributes) or - the `attribute` value for this observation corresponds to the default value. + The data type for observation value is *Number*. The data type for a reported missing -observation value is a *null*. Each index is an index in the `values` array of the respective -`component` object within the `structure.attributes.observation` array. +observation value is a *null*. The index for an `attribute` is the corresponding index in the +`values` array of the respective `component` object within the `structure.attributes.series` array. +It is *null*ed for unused optional `attributes` when the attribute index needs to be included. +The index for an `annotation` is the index in the array of `annotations` in the structure field. Example: /* - For this example, to ease understanding, let's consider data in a + For this example, to ease understanding, let's consider data without annotations in a flat CSV format (with header row): DIM1,DIM2,Observation Value,ATTR1,ATTR2 From c518f624c8e47a149a42d6aabecb74b52d7339a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 28 Jul 2017 18:53:28 +0200 Subject: [PATCH 042/161] Update 1-sdmx-json-field-guide.md Update for #8 adding links for component values, and replacing uri by standard links mechanism in annotations --- data-message/docs/1-sdmx-json-field-guide.md | 26 +++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/data-message/docs/1-sdmx-json-field-guide.md b/data-message/docs/1-sdmx-json-field-guide.md index adaa602..36bdb61 100644 --- a/data-message/docs/1-sdmx-json-field-guide.md +++ b/data-message/docs/1-sdmx-json-field-guide.md @@ -296,6 +296,7 @@ See the section on [linking mechanism](#linking-mechanism) for all information o * name - *String*. Name provides a human-readable name for the component value. * description - *String* *nullable*. Description provides a human-readable description of the value. The description is typically longer than the text provided for the name field. * start, end - *String* *nullable*. Start and end are instances of time that define the actual Gregorian calendar period covered by the values for the time dimension. The algorithm for computing start and end fields for any supported reporting period is defined in the SDMX Technical Notes. These fields should be used only when the component value represents one of the values for the time dimension. Values are considered as inclusive both for the start field and the end field. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. These fields are useful for visualisation tools, when selecting the appropriate point in time for the time axis. Statistical data, can be collected, for example, at the beginning, the middle or the end of the period, or can represent the average of observations through the period. Based on this information and using the start and end fields, it is easy to get or calculate the desired point in time to be used for the time axis. +* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional information regarding the component value. * annotations - *Array* *nullable*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the component value. Indices refer back to the array of *annotations* in the structure field. Example: @@ -306,30 +307,47 @@ Example: "description": "Description for 2010.", "start": "2010-01-01T00:00Z", "end": "2010-12-31T23:59:59Z", + "links": [ + { + # link object # + } + ], "annotations": [ 5, 49 ] } +###### link + +See the section on [linking mechanism](#linking-mechanism) for all information on links. + ### annotation -*Object* *nullable*. An annotation object can be attached to `dataSets`, +*Object* *nullable*. An annotation object can be attached to `structure`, `component`, `component value`, `dataSets`, `series` and `observations`. It contains the following optional information: * title - *String* *nullable*. Provides a title for the annotation. * type - *String* *nullable*. Type is used to distinguish between annotations designed to support various uses. The types are not enumerated, and these can be freely specified by the creator of the annotations. The definitions and use of annotation types should be documented by their creator. -* uri - *String* *nullable*. URI - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behaviour is desired, an annotation type should be defined which specifies the use of this field more exactly. * text - *String* *nullable*. Contains the text of the annotation. * id - *String* *nullable*. ID provides a non-standard identification of an annotation. It can be used to disambiguate annotations. +* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. If appropriate, a link to an additional external resource which may contain or supplement the annotation. Example: { "title": "Sample annotation", "type": "reference", - "uri": "http://sample.org/annotations/74747", "text": "Sample annotation text", - "id": "74747" + "id": "74747", + "links": [ + { + # link object # + } + ] } +#### link + +See the section on [linking mechanism](#linking-mechanism) for all information on links. + ## dataSet *Object*. That's where the data (i.e.: the `observations`) will be. From e8fd0a6692775f153d058a749b2c6f7f634d05b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 11 Aug 2017 22:12:53 +0200 Subject: [PATCH 043/161] Update 1-sdmx-json-field-guide.md Implemented agreed improvement related to issue #38: Highlight sentence explaining the constraint for positions of attributes when including annotations for observations. --- data-message/docs/1-sdmx-json-field-guide.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data-message/docs/1-sdmx-json-field-guide.md b/data-message/docs/1-sdmx-json-field-guide.md index 36bdb61..edef01e 100644 --- a/data-message/docs/1-sdmx-json-field-guide.md +++ b/data-message/docs/1-sdmx-json-field-guide.md @@ -624,10 +624,10 @@ the indices of the corresponding values of `attributes` presented at `observatio the indices of the corresponding values of `annotations` of that observation (any following position). Therefore, elements after the observation value are for the `observation` level `attributes` and for `annotations` of that observation. Elements for `annotations` are only -included if there are `annotations` for that observation. If `annotations` are present, then -all `attributes` defined at `observation` level must be included. Otherwise, if the observation -has no `annotations`, then beginning from the end of the array, `observation` level `attributes` -can be omitted if: +included if there are `annotations` for that observation. **If `annotations` are present for an +observation, then all `attributes` defined at `observation` level must be included.** Otherwise, +if the observation has no `annotations`, then beginning from the end of the array, `observation` +level `attributes` can be omitted if: - the `attribute` is not set for this observation (possible for optional attributes) or - the `attribute` value for this observation corresponds to the default value. From 24336771645969934c983b6cacf4545c0622309c Mon Sep 17 00:00:00 2001 From: anastassias Date: Mon, 28 Aug 2017 18:28:23 +0300 Subject: [PATCH 044/161] #8 support for links in Component (#51) Changed schema in order to allow links in Component (Partly) update schema for issue #8 --- data-message/tools/schemas/sdmx-json-data-schema.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/data-message/tools/schemas/sdmx-json-data-schema.json b/data-message/tools/schemas/sdmx-json-data-schema.json index 58dad24..1624523 100644 --- a/data-message/tools/schemas/sdmx-json-data-schema.json +++ b/data-message/tools/schemas/sdmx-json-data-schema.json @@ -255,6 +255,11 @@ "default": { "type": [ "null", "string" ] }, + "links": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/link" + }, "values": { "type": "array", "items": { From 51753a39f0274bccb03b96723f81e18dd61c078a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Mon, 28 Aug 2017 17:45:31 +0200 Subject: [PATCH 045/161] Update sdmx-json-data-schema.json Completed update of schema for issue #8 --- .../tools/schemas/sdmx-json-data-schema.json | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/data-message/tools/schemas/sdmx-json-data-schema.json b/data-message/tools/schemas/sdmx-json-data-schema.json index 1624523..87b141c 100644 --- a/data-message/tools/schemas/sdmx-json-data-schema.json +++ b/data-message/tools/schemas/sdmx-json-data-schema.json @@ -218,15 +218,17 @@ "type": { "type": [ "null", "string" ] }, - "uri": { - "type": [ "null", "string" ], - "format": "uri" - }, "text": { "type": [ "null", "string" ] }, "id": { "type": [ "null", "string" ] + }, + "links": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/link" + } } } } @@ -281,6 +283,12 @@ "end": { "type": [ "null", "string" ], "format": "date-time" + }, + "links": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/link" + } } }, "required": [ "name" ] From e0e7368248d75e86be458ee82581f99c42f596fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Mon, 28 Aug 2017 18:02:41 +0200 Subject: [PATCH 046/161] Update 1-sdmx-json-field-guide.md Highlighted recommendation for issue #33. --- data-message/docs/1-sdmx-json-field-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-message/docs/1-sdmx-json-field-guide.md b/data-message/docs/1-sdmx-json-field-guide.md index edef01e..7655bef 100644 --- a/data-message/docs/1-sdmx-json-field-guide.md +++ b/data-message/docs/1-sdmx-json-field-guide.md @@ -166,7 +166,7 @@ contained in the message. It tells you which are the components (`dimensions` an used in the message and also describes to which level in the hierarchy (`dataSet`, `series`, `observations`) these components are attached. -* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. A collection of links to structural metadata or to additional information regarding the structure. Providing links allowing accessing the underlying SDMX Data Structure Definition, Dataflow and/or Provision Agreements is recommended. +* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. A collection of links to structural metadata or to additional information regarding the structure. **Providing links allowing accessing the underlying SDMX Data Structure Definition, Dataflow and/or Provision Agreements is recommended.** * dimensions - *Object*. Describes the *[dimensions](#dimensions-attributes)* used in the message as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) to which these `dimensions` are attached. * attributes - *Object*. Describes the *[attributes](#dimensions-attributes)* used in the message as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) to which these `attributes` are attached. * annotations - *Array* *nullable*. *Annotations* field is an array of *[annotation](#annotation)* objects. If appropriate, provides a list of `annotations`. `Annotations` can be attached to `dataSets`, `series` and `observations`. From 9b249d55b6f4914e03d340e2035a2264981a09d7 Mon Sep 17 00:00:00 2001 From: anastassias Date: Mon, 28 Aug 2017 19:09:12 +0300 Subject: [PATCH 047/161] #33 links in examples (#49) Updated examples for issue #33 --- data-message/docs/1-sdmx-json-field-guide.md | 5 +++++ data-message/docs/3-full-example-with-comments.md | 10 ++++++++++ data-message/samples/exr/exr-action-delete.json | 15 +++++++++++++-- data-message/samples/exr/exr-cross-section.json | 15 +++++++++++++-- data-message/samples/exr/exr-flat.json | 15 +++++++++++++-- data-message/samples/exr/exr-time-series.json | 15 +++++++++++++-- 6 files changed, 67 insertions(+), 8 deletions(-) diff --git a/data-message/docs/1-sdmx-json-field-guide.md b/data-message/docs/1-sdmx-json-field-guide.md index 7655bef..4357b33 100644 --- a/data-message/docs/1-sdmx-json-field-guide.md +++ b/data-message/docs/1-sdmx-json-field-guide.md @@ -770,6 +770,11 @@ Examples: "href": "https://registry.sdmx.org/ws/rest/datastructure/ECB/ECB_EXR1", "rel": "datastructure" } + + { + "href": "https://registry.sdmx.org/FusionRegistry/ws/rest/provisionagreement/ESTAT/PA_NAMAIN_IDC_N", + "rel": "provisionagreement" + } { "href": "https://registry.sdmx.org/help.html", diff --git a/data-message/docs/3-full-example-with-comments.md b/data-message/docs/3-full-example-with-comments.md index 3070399..47f0958 100644 --- a/data-message/docs/3-full-example-with-comments.md +++ b/data-message/docs/3-full-example-with-comments.md @@ -69,6 +69,16 @@ "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", "rel": "datastructure", "title": "resolvable uri to datastructure" + }, + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR", + "rel": "dataflow", + "title": "resolvable uri to dataflow" + }, + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", + "rel": "provisionagreement", + "title": "resolvable uri to provision agreement" } ], diff --git a/data-message/samples/exr/exr-action-delete.json b/data-message/samples/exr/exr-action-delete.json index e7a4709..5cb2f48 100644 --- a/data-message/samples/exr/exr-action-delete.json +++ b/data-message/samples/exr/exr-action-delete.json @@ -11,8 +11,19 @@ "links": [ { "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR/1.0", - "rel": "dataflow" - } + "rel": "dataflow", + "title": "resolvable uri to dataflow" + }, + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", + "rel": "datastructure", + "title": "resolvable uri to datastructure" + }, + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", + "rel": "provisionagreement", + "title": "resolvable uri to provision agreement" + } ], "dimensions": { "dataSet": [ diff --git a/data-message/samples/exr/exr-cross-section.json b/data-message/samples/exr/exr-cross-section.json index 2496d72..a135a44 100644 --- a/data-message/samples/exr/exr-cross-section.json +++ b/data-message/samples/exr/exr-cross-section.json @@ -11,8 +11,19 @@ "links": [ { "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR/1.0", - "rel": "dataflow" - } + "rel": "dataflow", + "title": "resolvable uri to dataflow" + }, + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", + "rel": "datastructure", + "title": "resolvable uri to datastructure" + }, + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", + "rel": "provisionagreement", + "title": "resolvable uri to provision agreement" + } ], "dimensions": { "dataSet": [ diff --git a/data-message/samples/exr/exr-flat.json b/data-message/samples/exr/exr-flat.json index 2841706..2e71004 100644 --- a/data-message/samples/exr/exr-flat.json +++ b/data-message/samples/exr/exr-flat.json @@ -11,8 +11,19 @@ "links": [ { "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR/1.0", - "rel": "dataflow" - } + "rel": "dataflow", + "title": "resolvable uri to dataflow" + }, + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", + "rel": "datastructure", + "title": "resolvable uri to datastructure" + }, + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", + "rel": "provisionagreement", + "title": "resolvable uri to provision agreement" + } ], "dimensions": { "dataSet": [ diff --git a/data-message/samples/exr/exr-time-series.json b/data-message/samples/exr/exr-time-series.json index 8ac46aa..55fe2d3 100644 --- a/data-message/samples/exr/exr-time-series.json +++ b/data-message/samples/exr/exr-time-series.json @@ -11,8 +11,19 @@ "links": [ { "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR/1.0", - "rel": "dataflow" - } + "rel": "dataflow", + "title": "resolvable uri to dataflow" + }, + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", + "rel": "datastructure", + "title": "resolvable uri to datastructure" + }, + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", + "rel": "provisionagreement", + "title": "resolvable uri to provision agreement" + } ], "dimensions": { "dataSet": [ From a64987929af83d74a5825e59c3f657efedc8e40d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Tue, 29 Aug 2017 10:48:17 +0200 Subject: [PATCH 048/161] Update 1-sdmx-json-field-guide.md Updated inline examples with annotations for issue #38. Complemented/corrected descriptions related to annotations. --- data-message/docs/1-sdmx-json-field-guide.md | 106 +++++++++++++------ 1 file changed, 72 insertions(+), 34 deletions(-) diff --git a/data-message/docs/1-sdmx-json-field-guide.md b/data-message/docs/1-sdmx-json-field-guide.md index 4357b33..3cb3bd4 100644 --- a/data-message/docs/1-sdmx-json-field-guide.md +++ b/data-message/docs/1-sdmx-json-field-guide.md @@ -110,7 +110,7 @@ Sender contains the following fields: * id - *String*. A unique identifier of the party. * name - *String* *nullable*. A human-readable name of the sender. -* contacts - *Array* *nullable*. A collection of contacts. +* contacts - *Array* *nullable*. A collection of *[contacts](#contact)*. Example: @@ -169,7 +169,7 @@ used in the message and also describes to which level in the hierarchy (`dataSet * links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. A collection of links to structural metadata or to additional information regarding the structure. **Providing links allowing accessing the underlying SDMX Data Structure Definition, Dataflow and/or Provision Agreements is recommended.** * dimensions - *Object*. Describes the *[dimensions](#dimensions-attributes)* used in the message as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) to which these `dimensions` are attached. * attributes - *Object*. Describes the *[attributes](#dimensions-attributes)* used in the message as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) to which these `attributes` are attached. -* annotations - *Array* *nullable*. *Annotations* field is an array of *[annotation](#annotation)* objects. If appropriate, provides a list of `annotations`. `Annotations` can be attached to `dataSets`, `series` and `observations`. +* annotations - *Array* *nullable*. *Annotations* field is an array of *[annotation](#annotation)* objects. If appropriate, provides a list of `annotations` that can be referenced by `structure`, `component`, `component value`, `dataSets`, `series` and `observations`. Example: @@ -204,9 +204,9 @@ and/or Provision Agreements is recommended. as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) to which these dimensions/attributes are attached. -* dataSet - *Array* *nullable*. *dataSet* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `dataSet` level. It is highly recommended to present all dimensions and attributes at the `dataSet` level for which the message contains only 1 single value. -* series - *Array* *nullable*. *series* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `series` level. -* observation - *Array* *nullable*. *observation* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `observation` level. When using the SDMX API, then the dimension(s) specified in the parameter "dimensionAtObservation" would be presented at `observation` level. If "dimensionAtObservation=AllDimensions" then all dimensions, except those with only one value possibly presented at the `dataSet` level, would be presented at `observation` level. +* dataSet - *Array* *nullable*. *DataSet* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `dataSet` level. It is highly recommended to present all dimensions and attributes at the `dataSet` level for which the message contains only 1 single value. +* series - *Array* *nullable*. *Series* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `series` level. +* observation - *Array* *nullable*. *Observation* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `observation` level. When using the SDMX API, then the dimension(s) specified in the parameter "dimensionAtObservation" would be presented at `observation` level. If "dimensionAtObservation=AllDimensions" then all dimensions, except those with only one value possibly presented at the `dataSet` level, would be presented at `observation` level. Example: @@ -321,8 +321,7 @@ See the section on [linking mechanism](#linking-mechanism) for all information o ### annotation -*Object* *nullable*. An annotation object can be attached to `structure`, `component`, `component value`, `dataSets`, -`series` and `observations`. It contains the following optional information: +*Object* *nullable*. An `annotation` object can be referenced through its `annotations` array index by `structure`, `component`, `component value`, `dataSets`, `series` and `observations`. It contains the following optional information: * title - *String* *nullable*. Provides a title for the annotation. * type - *String* *nullable*. Type is used to distinguish between annotations designed to support various uses. The types are not enumerated, and these can be freely specified by the creator of the annotations. The definitions and use of annotation types should be documented by their creator. @@ -378,10 +377,10 @@ or cross sections, the `observations` will be found under the `series` elements. The `dataSet` properties are: * action - *String* *nullable*. Action provides a list of actions, describing the intention of the data transmission from the sender's side. -- Append - this is an incremental update for an existing `dataSet` or the provision of new data or documentation (attribute values) formerly absent. If any of the supplied data or metadata is already present, it will not replace these data. -- Replace - data are to be replaced, and may also include additional data to be appended. -- Delete - data are to be deleted. -- Information (default) - data are being exchanged for informational purposes only, and not meant to update a system. +- `Append` - this is an incremental update for an existing `dataSet` or the provision of new data or documentation (attribute values) formerly absent. If any of the supplied data or metadata is already present, it will not replace these data. +- `Replace` - data are to be replaced, and may also include additional data to be appended. +- `Delete` - data are to be deleted. +- `Information` (default) - data are being exchanged for informational purposes only, and not meant to update a system. * reportingBegin - *String* *nullable*. The start of the time period covered by the message. * reportingEnd - *String* *nullable*. The end of the time period covered by the message. * validFrom - *String* *nullable*. The validFrom indicates the inclusive start time indicating the validity of the information in the data. @@ -462,9 +461,9 @@ Example: For this example, to ease understanding, let's consider a CSV format with horizontal time series (with header row): - DIM1,DIM2,Value for 2016,Value for 2017,ATTR1,ATTR2,ATTR3 for 2016,ATTR3 for 2017 - DIM1_VALUE_1,DIM2_VALUE_1,1.5931,1.5925,ATTR1_VALUE_2,ATTR2_VALUE_1,ATTR3_VALUE_1, - DIM1_VALUE_1,DIM2_VALUE_2,40.3426,40.3000,ATTR1_VALUE_1,,ATTR3_VALUE_1,ATTR3_VALUE_1 + DIM1,DIM2,Value for 2016,Value for 2017,ATTR1,ATTR2,ANNOT,ATTR3 for 2016,ATTR3 for 2017 + DIM1_VALUE_1,DIM2_VALUE_1,1.5931,1.5925,ATTR1_VALUE_2,ATTR2_VALUE_1,,ATTR3_VALUE_1, + DIM1_VALUE_1,DIM2_VALUE_2,40.3426,40.3000,ATTR1_VALUE_1,,ANNOT_VALUE1,ATTR3_VALUE_1,ATTR3_VALUE_1 In SDMX-JSON, using "dimensionAtObservation=TIME_PERIOD" (default) the observations are presented in a similar way, grouped by time series (with the TIME_PERIOD dimension @@ -480,6 +479,7 @@ Example: } }, "0:1": { + "annotations": [0], "observations": { "0": [40.3426, 0], "1": [40.3000, 0] @@ -499,8 +499,8 @@ Example: The attribute for this observation is: "ATTR3":"ATTR3_VALUE_2" (because this is the default value) Series 2: "0:1" corresponds to the 2 indices for "DIM1":"DIM1_VALUE_1", "DIM2":"DIM2_VALUE_2" - The attributes for this series are: "ATTR1":"ATTR1_VALUE_1" - (because this is the default value) + The annotation for this series is: "ANNOT":"ANNOT_VALUE1" + The attributes for this series are: "ATTR1":"ATTR1_VALUE_1" (because this is the default value) This series has 2 observations: Observation 1: "0" corresponds to the index for "TIME_PERIOD":"2016" The value for this observation is: 40.3426 @@ -554,7 +554,7 @@ Example: ] } ] - } + }, "attributes": { "dataSet": [], "series": [ @@ -601,7 +601,16 @@ Example: ] } ] - } + }, + "annotations": [ + { + "title": "Annotation 1 - with index 0", + "type": "example", + "text": "Sample annotation text", + "id": "ANNOT_VALUE1" + } + ] + For information on how to handle the indices for `annotations`, `attributes` or `observations` see the section dedicated to [handling component values](#handling-component-values). @@ -640,30 +649,34 @@ The index for an `annotation` is the index in the array of `annotations` in the Example: /* - For this example, to ease understanding, let's consider data without annotations in a + For this example, to ease understanding, let's consider data in a flat CSV format (with header row): - DIM1,DIM2,Observation Value,ATTR1,ATTR2 - DIM1_VALUE_1,DIM2_VALUE_1,105.6,ATTR1_VALUE_2,ATTR2_VALUE_1 - DIM1_VALUE_1,DIM2_VALUE_2,105.9,ATTR1_VALUE_1, + DIM1,DIM2,Observation Value,ATTR1,ATTR2,ANNOT + DIM1_VALUE_1,DIM2_VALUE_1,105.6,ATTR1_VALUE_1,,ANNOT_VALUE1 + DIM1_VALUE_1,DIM2_VALUE_2,105.9,ATTR1_VALUE_2,, In SDMX-JSON, the observations are presented in a similar flattened way, but dimension and attribute values are replaced by their indices: */ "observations": { - "0:0": [105.6, 1, 0], - "0:1": [105.9] + "0:0": [105.6, 0, null, 0], + "0:1": [105.9, 1] } /* Observation 1: "0:0" corresponds to the 2 indices for "DIM1":"DIM1_VALUE_1", "DIM2":"DIM2_VALUE_1" The value for this observation is: 105.6 - The attributes for this observation are: "ATTR1":"ATTR1_VALUE_2", "ATTR2":"ATTR2_VALUE_1" + The attributes for this observation are: + "ATTR1":"ATTR1_VALUE_1" + "ATTR2":"ATTR2_VALUE_1" (because this is the default value) + The annotation for this observation is: "ANNOT":"ANNOT_VALUE1" Observation 2: "0:1" corresponds to the 2 indices for "DIM1":"DIM1_VALUE_1", "DIM2":"DIM2_VALUE_2" The value for this observation is: 105.9 - The attributes for this observation are: "ATTR1":"ATTR1_VALUE_1" - (because there is a default value) + The attributes for this observation are: + "ATTR1":"ATTR1_VALUE_1" + "ATTR2":"ATTR2_VALUE_1" (because this is the default value) */ "dimensions": { @@ -695,7 +708,7 @@ Example: ] } ] - } + }, "attributes": { "dataSet": [], "series": [], @@ -703,7 +716,6 @@ Example: { "id": "ATTR1", "name": "Attribute 1", - "default": "ATTR1_VALUE_1", "values": [ { "id": "ATTR1_VALUE_1", @@ -718,6 +730,7 @@ Example: { "id": "ATTR2", "name": "Attribute 2", + "default": "ATTR2_VALUE_1", "values": [ { "id": "ATTR2_VALUE_1", @@ -727,6 +740,14 @@ Example: } ] } + "annotations": [ + { + "title": "Annotation 1 - with index 0", + "type": "example", + "text": "Sample annotation text", + "id": "ANNOT_VALUE1" + } + ] For information on how to handle the indices for `observations` see the section dedicated to [handling component values](#handling-component-values). @@ -913,7 +934,8 @@ Let's say that the following message needs to be processed: } ] } - ]}, + ] + }, "attributes": { "dataSet": [], "series": [ @@ -941,13 +963,28 @@ Let's say that the following message needs to be processed: ] } ] - } + }, + "annotations": [ + { + "title": "Sample series annotation title", + "type": "example", + "text": "Sample series annotation text", + "id": "ABC123456" + }, + { + "title": "Sample observation annotation title", + "type": "example", + "text": "Sample observation annotation text", + "id": "XYZ98765" + } + ] }, "dataSets": [ { "action": "Information", "series": { "0": { + "annotations": [0], "attributes": [0], "observations": { "0": [1.5931, 0], @@ -958,7 +995,7 @@ Let's say that the following message needs to be processed: "attributes": [1], "observations": { "0": [40.3426, 0], - "1": [40.3000, 0] + "1": [40.3000, 0, 1] } } } @@ -971,6 +1008,7 @@ There is one `dataSet` in the message, and it contains two `series`. ```json "0": { + "annotations": [0], "attributes": [0], "observations": { "0": [1.5931, 0], @@ -981,7 +1019,7 @@ There is one `dataSet` in the message, and it contains two `series`. "attributes": [1], "observations": { "0": [40.3426, 0], - "1": [40.3000, 0] + "1": [40.3000, 0, 1] } } ``` @@ -1075,7 +1113,7 @@ The value 0 identified previously is the index of the item in the collection of values for this component. In this case, the attribute value is therefore "Normal value". -The same logic applies for mapping the other observations and its attributes. +The same logic applies for mapping the other observations, its attributes and annotations. # Security Considerations From 805d536563355c9ab8f6f6db99bf7f104d0e44c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Tue, 29 Aug 2017 11:02:46 +0200 Subject: [PATCH 049/161] Update 3-full-example-with-comments.md Updates for issue #38 "Attachment of annotations" --- .../docs/3-full-example-with-comments.md | 41 ++++++++++++------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/data-message/docs/3-full-example-with-comments.md b/data-message/docs/3-full-example-with-comments.md index 47f0958..9882b9c 100644 --- a/data-message/docs/3-full-example-with-comments.md +++ b/data-message/docs/3-full-example-with-comments.md @@ -106,7 +106,8 @@ "name": "Daily" } ] - }, { + }, + { "id": "CURRENCY_DENOM", "name": "Currency denominator", "description": "Description for the dimension", @@ -117,7 +118,8 @@ "name": "Euro" } ] - }, { + }, + { "id": "EXR_TYPE", "name": "Exchange rate type", "description": "Description for the dimension", @@ -128,7 +130,8 @@ "name": "Spot rate" } ] - }, { + }, + { "id": "EXR_SUFFIX", "name": "Series variation - EXR context", "description": "Description for the dimension", @@ -154,7 +157,8 @@ { "id": "NZD", "name": "New Zealand dollar" - }, { + }, + { "id": "RUB", "name": "Russian rouble" } @@ -244,9 +248,14 @@ { "title": "AnnotationTitle provides a title for the annotation.", "type": "AnnotationType is used to distinguish between annotations.", - "uri": "http://www.myorg.org/ws/uri/for/this/annotation", "text": "AnnotationText contains the text of the annotation.", - "id": "Non-standard identification of an annotation." + "id": "Non-standard identification of an annotation.", + "links": [ + { + "href": "http://www.myorg.org/ws/uri/for/this/annotation", + "rel": "description" + } + ] } ] }, @@ -298,7 +307,7 @@ } }, "1": { - "annotations": [ 34 ], + "annotations": [0], "attributes": [1], "observations": { "0": [40.3426, 0], @@ -316,8 +325,8 @@ "observations": { "0:0": [1.5931, 0], "0:1": [1.5925, 0], - "1:0": [40.3426, 0], - "1:1": [40.3000, 0] + "1:0": [40.3426, 0, 0], + "1:1": [40.3000, 0, 0] } }, @@ -331,14 +340,16 @@ # (dimensionAtObservation <> allDimensions)) "series": { - "0:0:0:0;0": { + "0:0:0:0:0": { + "annotations": [], "attributes": [0], "observations": { "0": [1.5931, 0], "1": [1.5925, 0] } }, - "0:0:0:0;1": { + "0:0:0:0:1": { + "annotations": [0], "attributes": [1], "observations": { "0": [40.3426, 0], @@ -356,8 +367,8 @@ "observations": { "0:0:0:0:0:0": [1.5931, 0], "0:0:0:0:0:1": [1.5925, 0], - "0:0:0:0:1:0": [40.3426, 0], - "0:0:0:0:1:1": [40.3000, 0] + "0:0:0:0:1:0": [40.3426, 0, 0], + "0:0:0:0:1:1": [40.3000, 0, 0] } }, @@ -398,8 +409,8 @@ "observations": { "0:0": [0], "0:1": [0], - "1:0": [0], - "1:1": [0] + "1:0": [0, 0], + "1:1": [0, 0] } } ] From c29b38a58760d9d9263e764b1ffef332619a3eb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Tue, 29 Aug 2017 11:12:32 +0200 Subject: [PATCH 050/161] Update sdmx-json-data-schema.json Updated schema for issue #38 (Attachment of annotations) --- .../tools/schemas/sdmx-json-data-schema.json | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/data-message/tools/schemas/sdmx-json-data-schema.json b/data-message/tools/schemas/sdmx-json-data-schema.json index 87b141c..3ef0006 100644 --- a/data-message/tools/schemas/sdmx-json-data-schema.json +++ b/data-message/tools/schemas/sdmx-json-data-schema.json @@ -261,7 +261,14 @@ "type": [ "null", "array" ], "items": { "$ref": "#/definitions/link" - }, + }, + "annotations": { + "type": [ "null", "array" ], + "items": { + "type": [ "integer" ], + "minimum": 0 + } + }, "values": { "type": "array", "items": { @@ -289,6 +296,13 @@ "items": { "$ref": "#/definitions/link" } + }, + "annotations": { + "type": [ "null", "array" ], + "items": { + "type": [ "integer" ], + "minimum": 0 + } } }, "required": [ "name" ] From 48b9d64aa5376ed90d5067e6e7aa076af67e99fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Tue, 29 Aug 2017 11:18:02 +0200 Subject: [PATCH 051/161] Update exr-cross-section.json Updated example for issue #38 (Attachment of annotations) --- .../samples/exr/exr-cross-section.json | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/data-message/samples/exr/exr-cross-section.json b/data-message/samples/exr/exr-cross-section.json index a135a44..94ef5f3 100644 --- a/data-message/samples/exr/exr-cross-section.json +++ b/data-message/samples/exr/exr-cross-section.json @@ -38,7 +38,8 @@ "name": "Daily" } ] - }, { + }, + { "id": "CURRENCY_DENOM", "name": "Currency denominator", "keyPosition": 2, @@ -48,7 +49,8 @@ "name": "Euro" } ] - }, { + }, + { "id": "EXR_TYPE", "name": "Exchange rate type", "keyPosition": 3, @@ -58,7 +60,8 @@ "name": "Spot rate" } ] - }, { + }, + { "id": "EXR_SUFFIX", "name": "Series variation - EXR context", "keyPosition": 4, @@ -81,7 +84,8 @@ "name": "2013-01-18", "start": "2013-01-18T00:00:00.000Z", "end": "2013-01-18T23:59:59.999Z" - }, { + }, + { "id": "2013-01-21", "name": "2013-01-21", "start": "2013-01-21T00:00:00.000Z", @@ -99,7 +103,8 @@ { "id": "NZD", "name": "New Zealand dollar" - }, { + }, + { "id": "RUB", "name": "Russian rouble" } @@ -128,19 +133,29 @@ "values": [ { "name": "New Zealand dollar (NZD)" - }, { + }, + { "name": "Russian rouble (RUB)" } ] } ] - } + }, + "annotations": [ + { + "title": "Sample series annotation title", + "type": "example", + "text": "Sample series annotation text", + "id": "ABC123456" + } + ] }, "dataSets": [ { "action": "Information", "series": { "0": { + "annotations": [0], "attributes": [], "observations": { "0": [1.5931, 0, 0], From f8f67fc498a6853e72377bd6a7d955e052c2e324 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Tue, 29 Aug 2017 11:20:22 +0200 Subject: [PATCH 052/161] Update exr-flat.json Updated example for issue #38 (Attachment of annotations) --- data-message/samples/exr/exr-flat.json | 36 +++++++++++++++++++------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/data-message/samples/exr/exr-flat.json b/data-message/samples/exr/exr-flat.json index 2e71004..42b9298 100644 --- a/data-message/samples/exr/exr-flat.json +++ b/data-message/samples/exr/exr-flat.json @@ -38,7 +38,8 @@ "name": "Daily" } ] - }, { + }, + { "id": "CURRENCY_DENOM", "name": "Currency denominator", "keyPosition": 2, @@ -48,7 +49,8 @@ "name": "Euro" } ] - }, { + }, + { "id": "EXR_TYPE", "name": "Exchange rate type", "keyPosition": 3, @@ -58,7 +60,8 @@ "name": "Spot rate" } ] - }, { + }, + { "id": "EXR_SUFFIX", "name": "Series variation - EXR context", "keyPosition": 4, @@ -80,12 +83,14 @@ { "id": "NZD", "name": "New Zealand dollar" - }, { + }, + { "id": "RUB", "name": "Russian rouble" } ] - }, { + }, + { "id": "TIME_PERIOD", "name": "Time period or range", "role": "TIME_PERIOD", @@ -95,7 +100,8 @@ "name": "2013-01-18", "start": "2013-01-18T00:00:00.000Z", "end": "2013-01-18T23:59:59.999Z" - }, { + }, + { "id": "2013-01-21", "name": "2013-01-21", "start": "2013-01-21T00:00:00.000Z", @@ -116,11 +122,13 @@ "values": [ { "name": "New Zealand dollar (NZD)" - }, { + }, + { "name": "Russian rouble (RUB)" } ] - }, { + }, + { "id": "OBS_STATUS", "name": "Observation status", "values": [ @@ -131,14 +139,22 @@ ] } ] - } + }, + "annotations": [ + { + "title": "Sample observation annotation title", + "type": "example", + "text": "Sample observation annotation text", + "id": "XYZ98765" + } + ] }, "dataSets": [ { "action": "Information", "observations": { "0:0": [1.5931, 0, 0], - "0:1": [1.5925, 0, 0], + "0:1": [1.5925, 0, 0, 0], "1:0": [40.3426, 1, 0], "1:1": [40.3000, 1, 0] } From 3f79012a424d4efe8ed5c552522a971c423555bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Tue, 29 Aug 2017 11:23:32 +0200 Subject: [PATCH 053/161] Update exr-time-series.json Updated example for issue #38 (Attachment of annotations) --- data-message/samples/exr/exr-time-series.json | 37 +++++++++++++++---- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/data-message/samples/exr/exr-time-series.json b/data-message/samples/exr/exr-time-series.json index 55fe2d3..41ca10b 100644 --- a/data-message/samples/exr/exr-time-series.json +++ b/data-message/samples/exr/exr-time-series.json @@ -38,7 +38,8 @@ "name": "Daily" } ] - }, { + }, + { "id": "CURRENCY_DENOM", "name": "Currency denominator", "keyPosition": 2, @@ -48,7 +49,8 @@ "name": "Euro" } ] - }, { + }, + { "id": "EXR_TYPE", "name": "Exchange rate type", "keyPosition": 3, @@ -58,7 +60,8 @@ "name": "Spot rate" } ] - }, { + }, + { "id": "EXR_SUFFIX", "name": "Series variation - EXR context", "keyPosition": 4, @@ -79,7 +82,8 @@ { "id": "NZD", "name": "New Zealand dollar" - }, { + }, + { "id": "RUB", "name": "Russian rouble" } @@ -97,7 +101,8 @@ "name": "2013-01-18", "start": "2013-01-18T00:00:00.000Z", "end": "2013-01-18T23:59:59.999Z" - }, { + }, + { "id": "2013-01-21", "name": "2013-01-21", "start": "2013-01-21T00:00:00.000Z", @@ -117,7 +122,8 @@ "values": [ { "name": "New Zealand dollar (NZD)" - }, { + }, + { "name": "Russian rouble (RUB)" } ] @@ -136,13 +142,28 @@ ] } ] - } + }, + "annotations": [ + { + "title": "Sample series annotation title", + "type": "example", + "text": "Sample series annotation text", + "id": "ABC123456" + }, + { + "title": "Sample observation annotation title", + "type": "example", + "text": "Sample observation annotation text", + "id": "XYZ98765" + } + ] }, "dataSets": [ { "action": "Information", "series": { "0": { + "annotations": [0], "attributes": [0], "observations": { "0": [1.5931, 0], @@ -153,7 +174,7 @@ "attributes": [1], "observations": { "0": [40.3426, 0], - "1": [40.3000, 0] + "1": [40.3000, 0, 1] } } } From 77320ac2cebd4393f963dc5b051ebe41cae42a2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 30 Nov 2017 10:42:49 +0100 Subject: [PATCH 054/161] Update 1-sdmx-json-field-guide.md (#52) * Update 1-sdmx-json-field-guide.md Proposal to not include SDMX-JSON version as mandatory but a recommendation should be made to add information of the SDMX-JSON version as done by other standards (e.g. html). Do this by aligning with JSON-API standard with: - new optional top-level meta tag replacing the current header tag to specify SDMX-JSON schema, which contains the SDMX-JSON format version number - new top-level data tag under which the current structure and dataSets tags are grouped - the already existing top-level errors tag is updated --- data-message/docs/1-sdmx-json-field-guide.md | 185 +++++++++++-------- 1 file changed, 103 insertions(+), 82 deletions(-) diff --git a/data-message/docs/1-sdmx-json-field-guide.md b/data-message/docs/1-sdmx-json-field-guide.md index 3cb3bd4..18fb913 100644 --- a/data-message/docs/1-sdmx-json-field-guide.md +++ b/data-message/docs/1-sdmx-json-field-guide.md @@ -44,27 +44,23 @@ may not contain fields for data, dimensions and attributes. ## message Message is the top level object and it contains the data as well -as the metadata needed to interpret those data. +as the structural metadata needed to interpret those data. -* header - *Object* *nullable*. *[Header](#header)* contains basic technical information about the message, such as when it was prepared and who has sent it. -* structure - *Object* *nullable*. *[Structure](#structure)* contains the information needed to interpret the data available in the message, such as the list of concepts used. -* dataSets - *Array* *nullable*. *DataSets* field is an array of *[dataSet](#dataset)* objects. That's where the data (i.e.: the observations) will be. -* errors - *Array* *nullable*. *Errors* field is an array of *[error](#error)* objects. When appropriate provides a list of error messages in addition to RESTful web services HTTP error status codes. +* meta - *Object* *optional*. A *[meta](#meta)* object that contains non-standard meta-information and basic technical information about the message, such as when it was prepared and who has sent it. +* data - *Object* *optional*. *[Data](#data)* contains the message's “primary data”. +* errors - *Array* *optional*. *Errors* field is an array of *[error](#error)* objects. When appropriate provides a list of error messages in addition to RESTful web services HTTP error status codes. + +The members data and errors MUST NOT coexist in the same message. Example: { - "header": { - # header object # + "meta": { + # meta object # }, - "structure": { - # structure object # + "data": { + # data object # }, - "dataSets": [ - { - # dataSet object # - } - ], "errors": [ { # error object # @@ -72,23 +68,26 @@ Example: ] } -## header +## meta -*Object* *nullable*. Header contains basic technical information +*Object* *optional*. Used to include non-standard meta-information and basic technical information about the message, such as when it was prepared and who has sent it. - -* id - *String*. *String*. Unique string that identifies the message for further references. -* test - *Boolean* *nullable*. Indicates whether the message is for test purposes or not. False for normal messages. +Any members MAY be specified within `meta` objects. +* schema - *String* *optional*. Contains the URL to the schema allowing to validate the message. This also allows identifying the version of SDMX-JSON format used in this message. **Providing the link to the SDMX-JSON schema is recommended.** +* id - *String*. Unique string that identifies the message for further references. +* test - *Boolean* *optional*. Indicates whether the message is for test purposes or not. False for normal messages. * prepared - *String*. A timestamp indicating when the message was prepared. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. * sender - *Object*. *[Sender](#sender)* contains information about the party that is transmitting the message. -* receiver - *Object* *nullable*. *[Receiver](#receiver)* contains information about the party that is receiving the message. This can be useful if the WS requires authentication. -* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional external resources for the header. +* receiver - *Object* *optional*. *[Receiver](#receiver)* contains information about the party that is receiving the message. This can be useful if the WS requires authentication. +* links - *Array* *optional*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional external resources for the header. Example: - "header": { + "meta": { + "schema": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/data-message/tools/schemas/sdmx-json-data-schema.json", + "copyright": "Copyright 2017 Statistics hotline", "id": "b1804c51-1ee3-45a9-bb75-795cd4e06489", - "prepared": "2013-01-03T12:54:12", + "prepared": "2018-01-03T12:54:12", "test": false, "sender: { # sender object # @@ -109,8 +108,8 @@ Example: Sender contains the following fields: * id - *String*. A unique identifier of the party. -* name - *String* *nullable*. A human-readable name of the sender. -* contacts - *Array* *nullable*. A collection of *[contacts](#contact)*. +* name - *String* *optional*. A human-readable name of the sender. +* contacts - *Array* *optional*. A collection of *[contacts](#contact)*. Example: @@ -130,12 +129,12 @@ Example: may contain the following field: * name - *String*. The contact's name. -* department - *String* *nullable*. The organisational structure for the contact. -* role - *String* *nullable*. The responsibility of the contact. -* telephone - *Array* *nullable*. An array of telephone numbers for the contact. -* fax - *Array* *nullable*. An array of fax numbers for the contact person. -* uri - *Array* *nullable*. An array of uris. Each uri holds an information URL for the contact. -* email - *Array* *nullable*. An array of email addresses for the contact person. +* department - *String* *optional*. The organisational structure for the contact. +* role - *String* *optional*. The responsibility of the contact. +* telephone - *Array* *optional*. An array of telephone numbers for the contact. +* fax - *Array* *optional*. An array of fax numbers for the contact person. +* uri - *Array* *optional*. An array of uris. Each uri holds an information URL for the contact. +* email - *Array* *optional*. An array of email addresses for the contact person. Example: @@ -151,7 +150,7 @@ Example: ### receiver -*Object* *nullable*. Information about the party that is receiving the message. +*Object* *optional*. Information about the party that is receiving the message. This can be useful if the WS requires authentication. Receiver contains the same fields as [sender](#sender). @@ -159,17 +158,37 @@ same fields as [sender](#sender). See the section on [linking mechanism](#linking-mechanism) for all information on links. +## data + +*Object* *optional*. Header contains the message's “primary data”. + +* structure - *Object* *optional*. *[Structure](#structure)* contains the information needed to interpret the data available in the message, such as the list of concepts used. +* dataSets - *Array* *optional*. *DataSets* field is an array of *[dataSet](#dataset)* objects. That's where the data (i.e.: the observations) will be. + +Example: + + "data": { + "structure": { + # structure object # + }, + "dataSets": [ + { + # dataSet object # + } + ] + } + ## structure -*Object* *nullable*. Provides the structural metadata necessary to interpret the data +*Object* *optional*. Provides the structural metadata necessary to interpret the data contained in the message. It tells you which are the components (`dimensions` and `attributes`) used in the message and also describes to which level in the hierarchy (`dataSet`, `series`, `observations`) these components are attached. -* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. A collection of links to structural metadata or to additional information regarding the structure. **Providing links allowing accessing the underlying SDMX Data Structure Definition, Dataflow and/or Provision Agreements is recommended.** +* links - *Array* *optional*. *Links* field is an array of *[link](#link)* objects. A collection of links to structural metadata or to additional information regarding the structure. **Providing links allowing accessing the underlying SDMX Data Structure Definition, Dataflow and/or Provision Agreements is recommended.** * dimensions - *Object*. Describes the *[dimensions](#dimensions-attributes)* used in the message as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) to which these `dimensions` are attached. * attributes - *Object*. Describes the *[attributes](#dimensions-attributes)* used in the message as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) to which these `attributes` are attached. -* annotations - *Array* *nullable*. *Annotations* field is an array of *[annotation](#annotation)* objects. If appropriate, provides a list of `annotations` that can be referenced by `structure`, `component`, `component value`, `dataSets`, `series` and `observations`. +* annotations - *Array* *optional*. *Annotations* field is an array of *[annotation](#annotation)* objects. If appropriate, provides a list of `annotations` that can be referenced by `structure`, `component`, `component value`, `dataSets`, `series` and `observations`. Example: @@ -204,9 +223,9 @@ and/or Provision Agreements is recommended. as well as the levels in the hierarchy (`dataSet`, `series`, `observations`) to which these dimensions/attributes are attached. -* dataSet - *Array* *nullable*. *DataSet* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `dataSet` level. It is highly recommended to present all dimensions and attributes at the `dataSet` level for which the message contains only 1 single value. -* series - *Array* *nullable*. *Series* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `series` level. -* observation - *Array* *nullable*. *Observation* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `observation` level. When using the SDMX API, then the dimension(s) specified in the parameter "dimensionAtObservation" would be presented at `observation` level. If "dimensionAtObservation=AllDimensions" then all dimensions, except those with only one value possibly presented at the `dataSet` level, would be presented at `observation` level. +* dataSet - *Array* *optional*. *DataSet* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `dataSet` level. It is highly recommended to present all dimensions and attributes at the `dataSet` level for which the message contains only 1 single value. +* series - *Array* *optional*. *Series* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `series` level. +* observation - *Array* *optional*. *Observation* field is an array of *[component](#component)* objects. Optional array to be provided if components (dimensions or attributes) are presented at the `observation` level. When using the SDMX API, then the dimension(s) specified in the parameter "dimensionAtObservation" would be presented at `observation` level. If "dimensionAtObservation=AllDimensions" then all dimensions, except those with only one value possibly presented at the `dataSet` level, would be presented at `observation` level. Example: @@ -247,19 +266,19 @@ Example: #### component -*Object* *nullable*. A component represents a `dimension` or an `attribute` used in the message. +*Object* *optional*. A component represents a `dimension` or an `attribute` used in the message. It contains basic information about the component (such as its `name` and `id`) as well as the list of `values` used in the message for this particular component. Each of the components may contain the following fields: * id - *String*. Identifier for the component. * name - *String*. Name provides a human-readable name for the component. -* description - *String* *nullable*. Provides a description for the component. -* keyPosition - *Number* *nullable*. Indicates the position of the `dimension` in the key (e.g. used in the SDMX API call), starting at 0. This field should not be supplied for `attributes` and it may also be omitted for `dimensions`. This field could be used to build the "key" parameter string (i.e. D.USD.EUR.SP00.A) for data queries, whenever the order of the `dimensions` cannot easily be derived from the structural metadata information available in the data message. -* role - *String* *nullable*. Defines the component role(s), if any. Roles are represented by the id of a concept defined as [SDMX cross-domain concept](https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf). Several of the concepts defined as SDMX cross-domain concepts are useful for data visualisation, such as for example, the series title ("TITLE"), the unit of measure ("UNIT_MEASURE"), the number of decimals to be displayed ("DECIMALS"), the country or geographic reference area ("REF_AREA", e.g. when using maps), the period of time to which the measured observation refers ("REF_PERIOD"), the time interval at which observations occur over a given time period ("FREQ"), etc. It is strongly recommended to identify any component that can be useful for data visualisation purposes by using the appropriate SDMX cross-domain concept as role. -* default - *String* or *Number* *nullable*. Defines a default `value` for the component (valid for `attributes` only!). If no value is provided in the data part of the message then this value applies. -* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional information regarding the component. -* annotations - *Array* *nullable*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the component. Indices refer back to the array of *annotations* in the structure field. +* description - *String* *optional*. Provides a description for the component. +* keyPosition - *Number* *optional*. Indicates the position of the `dimension` in the key (e.g. used in the SDMX API call), starting at 0. This field should not be supplied for `attributes` and it may also be omitted for `dimensions`. This field could be used to build the "key" parameter string (i.e. D.USD.EUR.SP00.A) for data queries, whenever the order of the `dimensions` cannot easily be derived from the structural metadata information available in the data message. +* role - *String* *optional*. Defines the component role(s), if any. Roles are represented by the id of a concept defined as [SDMX cross-domain concept](https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf). Several of the concepts defined as SDMX cross-domain concepts are useful for data visualisation, such as for example, the series title ("TITLE"), the unit of measure ("UNIT_MEASURE"), the number of decimals to be displayed ("DECIMALS"), the country or geographic reference area ("REF_AREA", e.g. when using maps), the period of time to which the measured observation refers ("REF_PERIOD"), the time interval at which observations occur over a given time period ("FREQ"), etc. It is strongly recommended to identify any component that can be useful for data visualisation purposes by using the appropriate SDMX cross-domain concept as role. +* default - *String* or *Number* *optional*. Defines a default `value` for the component (valid for `attributes` only!). If no value is provided in the data part of the message then this value applies. +* links - *Array* *optional*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional information regarding the component. +* annotations - *Array* *optional*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the component. Indices refer back to the array of *annotations* in the structure field. * values - *Array*. *Values* field is an array of *[component value](#component-value)* objects. Note that `dimensions` and `attributes` presented at `dataSet` level can only have one single component value. Example: @@ -290,14 +309,14 @@ See the section on [linking mechanism](#linking-mechanism) for all information o ##### component value -*Object* *nullable*. A particular value for a component in a message. +*Object* *optional*. A particular value for a component in a message. * id - *String*. Unique identifier for a component value. * name - *String*. Name provides a human-readable name for the component value. -* description - *String* *nullable*. Description provides a human-readable description of the value. The description is typically longer than the text provided for the name field. -* start, end - *String* *nullable*. Start and end are instances of time that define the actual Gregorian calendar period covered by the values for the time dimension. The algorithm for computing start and end fields for any supported reporting period is defined in the SDMX Technical Notes. These fields should be used only when the component value represents one of the values for the time dimension. Values are considered as inclusive both for the start field and the end field. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. These fields are useful for visualisation tools, when selecting the appropriate point in time for the time axis. Statistical data, can be collected, for example, at the beginning, the middle or the end of the period, or can represent the average of observations through the period. Based on this information and using the start and end fields, it is easy to get or calculate the desired point in time to be used for the time axis. -* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional information regarding the component value. -* annotations - *Array* *nullable*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the component value. Indices refer back to the array of *annotations* in the structure field. +* description - *String* *optional*. Description provides a human-readable description of the value. The description is typically longer than the text provided for the name field. +* start, end - *String* *optional*. Start and end are instances of time that define the actual Gregorian calendar period covered by the values for the time dimension. The algorithm for computing start and end fields for any supported reporting period is defined in the SDMX Technical Notes. These fields should be used only when the component value represents one of the values for the time dimension. Values are considered as inclusive both for the start field and the end field. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. These fields are useful for visualisation tools, when selecting the appropriate point in time for the time axis. Statistical data, can be collected, for example, at the beginning, the middle or the end of the period, or can represent the average of observations through the period. Based on this information and using the start and end fields, it is easy to get or calculate the desired point in time to be used for the time axis. +* links - *Array* *optional*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional information regarding the component value. +* annotations - *Array* *optional*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the component value. Indices refer back to the array of *annotations* in the structure field. Example: @@ -321,13 +340,13 @@ See the section on [linking mechanism](#linking-mechanism) for all information o ### annotation -*Object* *nullable*. An `annotation` object can be referenced through its `annotations` array index by `structure`, `component`, `component value`, `dataSets`, `series` and `observations`. It contains the following optional information: +*Object* *optional*. An `annotation` object can be referenced through its `annotations` array index by `structure`, `component`, `component value`, `dataSets`, `series` and `observations`. It contains the following optional information: -* title - *String* *nullable*. Provides a title for the annotation. -* type - *String* *nullable*. Type is used to distinguish between annotations designed to support various uses. The types are not enumerated, and these can be freely specified by the creator of the annotations. The definitions and use of annotation types should be documented by their creator. -* text - *String* *nullable*. Contains the text of the annotation. -* id - *String* *nullable*. ID provides a non-standard identification of an annotation. It can be used to disambiguate annotations. -* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. If appropriate, a link to an additional external resource which may contain or supplement the annotation. +* title - *String* *optional*. Provides a title for the annotation. +* type - *String* *optional*. Type is used to distinguish between annotations designed to support various uses. The types are not enumerated, and these can be freely specified by the creator of the annotations. The definitions and use of annotation types should be documented by their creator. +* text - *String* *optional*. Contains the text of the annotation. +* id - *String* *optional*. ID provides a non-standard identification of an annotation. It can be used to disambiguate annotations. +* links - *Array* *optional*. *Links* field is an array of *[link](#link)* objects. If appropriate, a link to an additional external resource which may contain or supplement the annotation. Example: @@ -376,22 +395,22 @@ or cross sections, the `observations` will be found under the `series` elements. The `dataSet` properties are: -* action - *String* *nullable*. Action provides a list of actions, describing the intention of the data transmission from the sender's side. +* action - *String* *optional*. Action provides a list of actions, describing the intention of the data transmission from the sender's side. - `Append` - this is an incremental update for an existing `dataSet` or the provision of new data or documentation (attribute values) formerly absent. If any of the supplied data or metadata is already present, it will not replace these data. - `Replace` - data are to be replaced, and may also include additional data to be appended. - `Delete` - data are to be deleted. - `Information` (default) - data are being exchanged for informational purposes only, and not meant to update a system. -* reportingBegin - *String* *nullable*. The start of the time period covered by the message. -* reportingEnd - *String* *nullable*. The end of the time period covered by the message. -* validFrom - *String* *nullable*. The validFrom indicates the inclusive start time indicating the validity of the information in the data. -* validTo - *String* *nullable*. The validTo indicates the inclusive end time indicating the validity of the information in the data. -* publicationYear - *String* *nullable*. The publicationYear holds the ISO 8601 four-digit year. -* publicationPeriod - *String* *nullable*. The publicationPeriod specifies the period of publication of the data in terms of whatever provisioning agreements might be in force (i.e., "2005-Q1" if that is the time of publication for a `dataSet` published on a quarterly basis). -* links - *Array* *nullable*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional information regarding the dataSet. -* annotations - *Array* *nullable*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the dataSet. Indices refer back to the array of *annotations* in the structure field. -* attributes - *Array* *nullable*. Collection of indices of the corresponding *values* of all attributes presented at the dataSet level. Each value is an index in the `values` array of the respective *component* object within the `structure.attributes.dataSet` array. This is typically the case for `attributes` that always have the same value for all the `observations` available in the `dataSet`. In order to avoid repetition, that value can simply be presented at the `dataSet` level. -* series - *Object* *nullable*. A collection of *[series](#series)* objects, to be used when the `observations` contained in the `dataSet` are presented in logical groups (time series or cross-sections), e.g. when using the SDMX API with the parameter "dimensionAtObservation=TIME_PERIOD" (default option) or with the "dimensionAtObservation" parameter with an ID of any other specific `dimension`. This element must **not** be used in case the `dataSet` presents a flat view of `observations`. -* observations - *Object* *nullable*. Collection of *[observations](#observations)* used in case when a `dataSet` is presented as a flat view of `observations`, e.g. when using the SDMX API with the parameter "dimensionAtObservation=AllDimensions". All `dimensions`, except those with only one `value` possibly presented at the `dataSet` level, would be presented at `observation` level. Alternatively, in case the `observations` are to be presented in logical groups (time series or cross-sections), use the *[series](#series)* element instead. +* reportingBegin - *String* *optional*. The start of the time period covered by the message. +* reportingEnd - *String* *optional*. The end of the time period covered by the message. +* validFrom - *String* *optional*. The validFrom indicates the inclusive start time indicating the validity of the information in the data. +* validTo - *String* *optional*. The validTo indicates the inclusive end time indicating the validity of the information in the data. +* publicationYear - *String* *optional*. The publicationYear holds the ISO 8601 four-digit year. +* publicationPeriod - *String* *optional*. The publicationPeriod specifies the period of publication of the data in terms of whatever provisioning agreements might be in force (i.e., "2005-Q1" if that is the time of publication for a `dataSet` published on a quarterly basis). +* links - *Array* *optional*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional information regarding the dataSet. +* annotations - *Array* *optional*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the dataSet. Indices refer back to the array of *annotations* in the structure field. +* attributes - *Array* *optional*. Collection of indices of the corresponding *values* of all attributes presented at the dataSet level. Each value is an index in the `values` array of the respective *component* object within the `structure.attributes.dataSet` array. This is typically the case for `attributes` that always have the same value for all the `observations` available in the `dataSet`. In order to avoid repetition, that value can simply be presented at the `dataSet` level. +* series - *Object* *optional*. A collection of *[series](#series)* objects, to be used when the `observations` contained in the `dataSet` are presented in logical groups (time series or cross-sections), e.g. when using the SDMX API with the parameter "dimensionAtObservation=TIME_PERIOD" (default option) or with the "dimensionAtObservation" parameter with an ID of any other specific `dimension`. This element must **not** be used in case the `dataSet` presents a flat view of `observations`. +* observations - *Object* *optional*. Collection of *[observations](#observations)* used in case when a `dataSet` is presented as a flat view of `observations`, e.g. when using the SDMX API with the parameter "dimensionAtObservation=AllDimensions". All `dimensions`, except those with only one `value` possibly presented at the `dataSet` level, would be presented at `observation` level. Alternatively, in case the `observations` are to be presented in logical groups (time series or cross-sections), use the *[series](#series)* element instead. For information on how to handle the indices for `annotations`, `attributes` or `observations` see the section dedicated to [handling component values](#handling-component-values). @@ -440,7 +459,7 @@ See the section on [linking mechanism](#linking-mechanism) for all information o ### series -*Object* *nullable*. Collection of series, when the `observations` contained in the `dataSet` +*Object* *optional*. Collection of series, when the `observations` contained in the `dataSet` are used into logical groups (time series or cross-sections). Each underlying series is represented as a name/value pair in the `series` object. @@ -451,9 +470,9 @@ level (indices in the `values` array of the respective *component* object within The *value* in the name/value pair is an object containing: -* annotations - *Array* *nullable*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the series. Indices refer back to the array of `annotations` in the structure field. -* attributes - *Array* *nullable*. Collection of indices of the corresponding `values` of all `attributes` presented at the `series` level. Each value is an index in the `values` array of the respective `component` object within the `structure.attributes.series` array. This is typically the case for `attributes` that always have the same value for all the `observations` available in the series. In order to avoid repetition, that value can simply be presented at the `series` level. -* observations - *Object* *nullable*. Collection of [observations](#observations) used in case when the `observations` are presented in logical groups (time series or cross-sections), e.g. when using the SDMX API with the parameter "dimensionAtObservation=TIME_PERIOD" (default option) or with the "dimensionAtObservation" parameter with an ID of any other specific `dimension`. Only (this) one `dimension` would be presented at `observation` level for each series. +* annotations - *Array* *optional*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the series. Indices refer back to the array of `annotations` in the structure field. +* attributes - *Array* *optional*. Collection of indices of the corresponding `values` of all `attributes` presented at the `series` level. Each value is an index in the `values` array of the respective `component` object within the `structure.attributes.series` array. This is typically the case for `attributes` that always have the same value for all the `observations` available in the series. In order to avoid repetition, that value can simply be presented at the `series` level. +* observations - *Object* *optional*. Collection of [observations](#observations) used in case when the `observations` are presented in logical groups (time series or cross-sections), e.g. when using the SDMX API with the parameter "dimensionAtObservation=TIME_PERIOD" (default option) or with the "dimensionAtObservation" parameter with an ID of any other specific `dimension`. Only (this) one `dimension` would be presented at `observation` level for each series. Example: @@ -617,7 +636,7 @@ For information on how to handle the indices for `annotations`, `attributes` or ### observations -*Object* *nullable*. Collection of observations. Each observation is represented as a +*Object* *optional*. Collection of observations. Each observation is represented as a name/value pair in the `observations` object. An observation is uniquely identified through the content of the *name* in the name/value pair, @@ -754,31 +773,33 @@ see the section dedicated to [handling component values](#handling-component-val ## error -*Object* *nullable*. Used to provide a error message in addition +*Object* *optional*. Used to provide a error message in addition to RESTful web services HTTP error status codes. The following pieces of information are to be provided: -* code - *number*. Provides a code number for the error message. Code numbers are defined in the SDMX 2.1 Web Services Guidelines. -* message - *string*. Provides the error message. Error messages are fully customizable by the service providers and should provide enough detail to ease understanding the reasons of the error. +* code - *Number*. Provides a code number for the error message. Code numbers are defined in the SDMX 2.1 Web Services Guidelines. +* title - *String* *optional*. A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization. +* detail - *String* *optional*. A human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized. It is fully customizable by the service providers and should provide enough detail to ease understanding the reasons of the error. +* links - *Array* *optional*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional external resources for the error. Example: { "code": 150, - "message": "Invalid number of dimensions in the key parameter" + "title": "Invalid number of dimensions in the key parameter" } # Linking mechanism ## link -*Object* *nullable*. A link to an external resource. +*Object* *optional*. A link to an external resource. * href - *String*. Absolute or relative URL of the external resource. * rel - *String*. Relationship of the object to the external resource. -* title - *String* *nullable*. A human-friendly description of the target link. -* type - *String* *nullable*. A hint about the type of representation returned by the link. -* hreflang - *String* *nullable*. The natural language of the external link, the same as used in the HTTP Accept-Language request header. +* title - *String* *optional*. A human-friendly description of the target link. +* type - *String* *optional*. A hint about the type of representation returned by the link. +* hreflang - *String* *optional*. The natural language of the external link, the same as used in the HTTP Accept-Language request header. Examples: @@ -1137,7 +1158,7 @@ a `wsCustomErrorCode`: "errors": [ { "code": 150, - "message": "Invalid number of dimensions in the key parameter", + "title": "Invalid number of dimensions in the key parameter", "wsCustomErrorCode": 39272 } ] From c0f8864f843831d91273a577dedef0efc98e13b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 30 Nov 2017 11:07:07 +0100 Subject: [PATCH 055/161] Update sdmx-json-data-schema.json Changed to align with SDMX-API spec (linked to implementation for #37) --- .../tools/schemas/sdmx-json-data-schema.json | 56 ++++++++++++------- 1 file changed, 37 insertions(+), 19 deletions(-) diff --git a/data-message/tools/schemas/sdmx-json-data-schema.json b/data-message/tools/schemas/sdmx-json-data-schema.json index 3ef0006..f6c67bd 100644 --- a/data-message/tools/schemas/sdmx-json-data-schema.json +++ b/data-message/tools/schemas/sdmx-json-data-schema.json @@ -1,20 +1,21 @@ { "id": "http://sdmx.org/data-message/v0.9.0/schema#", - "$schema" : "http://json-schema.org/draft-04/schema#", + "$schema" : "http://json-schema.org/draft-05/schema#", "description": "Schema for SDMX-JSON data message", "type": "object", - "required": [ "header" ], "properties": { - "header": { - "$ref": "#/definitions/header" + "meta": { + "$ref": "#/definitions/meta" }, - "structure": { - "$ref": "#/definitions/structure" - }, - "dataSets": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/dataSet" + "data": { + "structure": { + "$ref": "#/definitions/structure" + }, + "dataSets": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/dataSet" + } } }, "errors": { @@ -25,20 +26,25 @@ } }, "definitions": { - "header": { + "meta": { "type": "object", "required": [ "id", "prepared", "sender" ], "properties": { + "schema": { + "type": "string", + "format": "uri" + }, "id": { "type": "string" }, + "test": { + "type": [ "null", "boolean" ] + }, "prepared": { "type": "string", "format": "date-time" }, - "test": { - "type": [ "null", "boolean" ] - }, + "sender": { "$ref": "#/definitions/party" }, @@ -110,14 +116,23 @@ }, "error": { "type": "object", - "required": [ "code", "message" ], + "required": [ "code" ], "properties": { "code": { "type": "number" }, - "message": { + "title": { "type": "string" - } + }, + "detail": { + "type": "string" + }, + "links": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/link" + } + } } }, "link": { @@ -129,13 +144,16 @@ "format": "uri" }, "rel": { - "type": "string" + "type": [ "null", "string" ] }, "title": { "type": [ "null", "string" ] }, "type": { "type": [ "null", "string" ] + }, + "hreflang": { + "type": [ "null", "string" ] } } }, From 175aa23463fcd230b7530f44a6f244401b964f32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 30 Nov 2017 11:19:23 +0100 Subject: [PATCH 056/161] Update 1-sdmx-json-field-guide.md #46 : Make keyPosition mandatory for dimensions. --- data-message/docs/1-sdmx-json-field-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-message/docs/1-sdmx-json-field-guide.md b/data-message/docs/1-sdmx-json-field-guide.md index 18fb913..7452b5d 100644 --- a/data-message/docs/1-sdmx-json-field-guide.md +++ b/data-message/docs/1-sdmx-json-field-guide.md @@ -274,7 +274,7 @@ Each of the components may contain the following fields: * id - *String*. Identifier for the component. * name - *String*. Name provides a human-readable name for the component. * description - *String* *optional*. Provides a description for the component. -* keyPosition - *Number* *optional*. Indicates the position of the `dimension` in the key (e.g. used in the SDMX API call), starting at 0. This field should not be supplied for `attributes` and it may also be omitted for `dimensions`. This field could be used to build the "key" parameter string (i.e. D.USD.EUR.SP00.A) for data queries, whenever the order of the `dimensions` cannot easily be derived from the structural metadata information available in the data message. +* keyPosition - *Number* *optional*. **This field is mandatory for `dimensions` but not to be supplied for `attributes`.** Indicates the position of the `dimension` in the Data Structure Definition, starting at 0. It needs to be provided also for the special `dimensions` such as Time or Measure dimensions. The information in this field is consistent with the order of `dimensions` in the "key" parameter string (i.e. D.USD.EUR.SP00.A) for data queries in the SDMX API. * role - *String* *optional*. Defines the component role(s), if any. Roles are represented by the id of a concept defined as [SDMX cross-domain concept](https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf). Several of the concepts defined as SDMX cross-domain concepts are useful for data visualisation, such as for example, the series title ("TITLE"), the unit of measure ("UNIT_MEASURE"), the number of decimals to be displayed ("DECIMALS"), the country or geographic reference area ("REF_AREA", e.g. when using maps), the period of time to which the measured observation refers ("REF_PERIOD"), the time interval at which observations occur over a given time period ("FREQ"), etc. It is strongly recommended to identify any component that can be useful for data visualisation purposes by using the appropriate SDMX cross-domain concept as role. * default - *String* or *Number* *optional*. Defines a default `value` for the component (valid for `attributes` only!). If no value is provided in the data part of the message then this value applies. * links - *Array* *optional*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional information regarding the component. From 0c2493a506980e8f6192f81c3f71a38d32f7e9b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 30 Nov 2017 11:41:45 +0100 Subject: [PATCH 057/161] Update sdmx-json-data-schema.json #46 and other bug corrections --- .../tools/schemas/sdmx-json-data-schema.json | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/data-message/tools/schemas/sdmx-json-data-schema.json b/data-message/tools/schemas/sdmx-json-data-schema.json index f6c67bd..f355d0c 100644 --- a/data-message/tools/schemas/sdmx-json-data-schema.json +++ b/data-message/tools/schemas/sdmx-json-data-schema.json @@ -67,15 +67,16 @@ "type": "string" }, "name": { - "type": "string" + "type": [ "null", "string" ] }, "contact": { "type": [ "null", "array" ], "items": { "type": "object", + "required": [ "name" ], "properties": { "name": { - "type": [ "null", "string" ] + "type": "string" }, "department": { "type": [ "null", "string" ] @@ -122,10 +123,10 @@ "type": "number" }, "title": { - "type": "string" + "type": [ "null", "string" ] }, "detail": { - "type": "string" + "type": [ "null", "string" ] }, "links": { "type": [ "null", "array" ], @@ -144,7 +145,7 @@ "format": "uri" }, "rel": { - "type": [ "null", "string" ] + "type": "string" }, "title": { "type": [ "null", "string" ] @@ -255,12 +256,13 @@ }, "component": { "type": "object", + "required": [ "id", "values" ], "properties": { "id": { "type": "string" }, "name": { - "type": "string" + "type": [ "null", "string" ] }, "description": { "type": [ "null", "string" ] @@ -291,12 +293,13 @@ "type": "array", "items": { "type": "object", + "required": [ "id" ], "properties": { "id": { "type": "string" }, "name": { - "type": "string" + "type": [ "null", "string" ] }, "description": { "type": [ "null", "string" ] @@ -322,14 +325,12 @@ "minimum": 0 } } - }, - "required": [ "name" ] + } }, "minItems": 0, "uniqueItems": true } - }, - "required": [ "name", "values" ] + } }, "dataSet": { "type": "object", From 76a6589cdececec3eccc8e4240228c75c22b2541 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 30 Nov 2017 12:07:31 +0100 Subject: [PATCH 058/161] Update 2-references.md Align to SDMX-API specification --- data-message/docs/2-references.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data-message/docs/2-references.md b/data-message/docs/2-references.md index b8426ff..0db7891 100644 --- a/data-message/docs/2-references.md +++ b/data-message/docs/2-references.md @@ -14,3 +14,5 @@ SDMX, April 2011 [sdmxws21] *Section 7: Guidelines for the Use of Web Services*, SDMX Standards 2.1, SDMX, April 2011 + +[json api 1.0] *A specification for building APIs in Json*, http://jsonapi.org/, 2015 From 7a5d07a7d3a51f6506082c424cab9b4b0a28cd0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 30 Nov 2017 12:57:35 +0100 Subject: [PATCH 059/161] Update 1-sdmx-json-field-guide.md Implement solution for #40 --- data-message/docs/1-sdmx-json-field-guide.md | 49 +++++++++++++++----- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/data-message/docs/1-sdmx-json-field-guide.md b/data-message/docs/1-sdmx-json-field-guide.md index 7452b5d..2ae6d31 100644 --- a/data-message/docs/1-sdmx-json-field-guide.md +++ b/data-message/docs/1-sdmx-json-field-guide.md @@ -77,10 +77,13 @@ Any members MAY be specified within `meta` objects. * id - *String*. Unique string that identifies the message for further references. * test - *Boolean* *optional*. Indicates whether the message is for test purposes or not. False for normal messages. * prepared - *String*. A timestamp indicating when the message was prepared. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. +* content-language *String* *optional*. To indicate all languages used anywhere in the message for localized elements, and thus the languages of the intended audience, using the format defined for the http Content-Language response header. **The usage of this property is recommended.** +* lang *String* *optional*. To indicate the main language used in the message for localized elements, using the format defined for the html meta tag lang property. * sender - *Object*. *[Sender](#sender)* contains information about the party that is transmitting the message. * receiver - *Object* *optional*. *[Receiver](#receiver)* contains information about the party that is receiving the message. This can be useful if the WS requires authentication. * links - *Array* *optional*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional external resources for the header. + Example: "meta": { @@ -89,6 +92,8 @@ Example: "id": "b1804c51-1ee3-45a9-bb75-795cd4e06489", "prepared": "2018-01-03T12:54:12", "test": false, + "content-language": "en, fr-fr;q=0.8, fr;q=0.7", + "lang": "en", "sender: { # sender object # }, @@ -108,7 +113,7 @@ Example: Sender contains the following fields: * id - *String*. A unique identifier of the party. -* name - *String* *optional*. A human-readable name of the sender. +* name - *String* *optional*. A human-readable localised name of the sender. See the section on [localised strings](#localised-strings) on how the message deals with languages. * contacts - *Array* *optional*. A collection of *[contacts](#contact)*. Example: @@ -129,13 +134,15 @@ Example: may contain the following field: * name - *String*. The contact's name. -* department - *String* *optional*. The organisational structure for the contact. -* role - *String* *optional*. The responsibility of the contact. +* department - *String* *optional*. The localised name of the organisational structure for the contact. +* role - *String* *optional*. The localised name of the responsibility of the contact. * telephone - *Array* *optional*. An array of telephone numbers for the contact. * fax - *Array* *optional*. An array of fax numbers for the contact person. * uri - *Array* *optional*. An array of uris. Each uri holds an information URL for the contact. * email - *Array* *optional*. An array of email addresses for the contact person. +See the section on [localised strings](#localised-strings) on how the message deals with languages. + Example: { @@ -272,8 +279,8 @@ as well as the list of `values` used in the message for this particular componen Each of the components may contain the following fields: * id - *String*. Identifier for the component. -* name - *String*. Name provides a human-readable name for the component. -* description - *String* *optional*. Provides a description for the component. +* name - *String*. Name provides a human-readable localised name for the component. +* description - *String* *optional*. Provides a localised description for the component. * keyPosition - *Number* *optional*. **This field is mandatory for `dimensions` but not to be supplied for `attributes`.** Indicates the position of the `dimension` in the Data Structure Definition, starting at 0. It needs to be provided also for the special `dimensions` such as Time or Measure dimensions. The information in this field is consistent with the order of `dimensions` in the "key" parameter string (i.e. D.USD.EUR.SP00.A) for data queries in the SDMX API. * role - *String* *optional*. Defines the component role(s), if any. Roles are represented by the id of a concept defined as [SDMX cross-domain concept](https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf). Several of the concepts defined as SDMX cross-domain concepts are useful for data visualisation, such as for example, the series title ("TITLE"), the unit of measure ("UNIT_MEASURE"), the number of decimals to be displayed ("DECIMALS"), the country or geographic reference area ("REF_AREA", e.g. when using maps), the period of time to which the measured observation refers ("REF_PERIOD"), the time interval at which observations occur over a given time period ("FREQ"), etc. It is strongly recommended to identify any component that can be useful for data visualisation purposes by using the appropriate SDMX cross-domain concept as role. * default - *String* or *Number* *optional*. Defines a default `value` for the component (valid for `attributes` only!). If no value is provided in the data part of the message then this value applies. @@ -281,6 +288,8 @@ Each of the components may contain the following fields: * annotations - *Array* *optional*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the component. Indices refer back to the array of *annotations* in the structure field. * values - *Array*. *Values* field is an array of *[component value](#component-value)* objects. Note that `dimensions` and `attributes` presented at `dataSet` level can only have one single component value. +See the section on [localised strings](#localised-strings) on how the message deals with languages. + Example: { @@ -312,12 +321,14 @@ See the section on [linking mechanism](#linking-mechanism) for all information o *Object* *optional*. A particular value for a component in a message. * id - *String*. Unique identifier for a component value. -* name - *String*. Name provides a human-readable name for the component value. -* description - *String* *optional*. Description provides a human-readable description of the value. The description is typically longer than the text provided for the name field. +* name - *String*. Name provides a human-readable localised name for the component value. +* description - *String* *optional*. Description provides a human-readable localised description of the value. The description is typically longer than the text provided for the name field. * start, end - *String* *optional*. Start and end are instances of time that define the actual Gregorian calendar period covered by the values for the time dimension. The algorithm for computing start and end fields for any supported reporting period is defined in the SDMX Technical Notes. These fields should be used only when the component value represents one of the values for the time dimension. Values are considered as inclusive both for the start field and the end field. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. These fields are useful for visualisation tools, when selecting the appropriate point in time for the time axis. Statistical data, can be collected, for example, at the beginning, the middle or the end of the period, or can represent the average of observations through the period. Based on this information and using the start and end fields, it is easy to get or calculate the desired point in time to be used for the time axis. * links - *Array* *optional*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional information regarding the component value. * annotations - *Array* *optional*. *[Annotations](#annotation)* is a collection of indices of the corresponding *annotations* for the component value. Indices refer back to the array of *annotations* in the structure field. +See the section on [localised strings](#localised-strings) on how the message deals with languages. + Example: { @@ -342,12 +353,14 @@ See the section on [linking mechanism](#linking-mechanism) for all information o *Object* *optional*. An `annotation` object can be referenced through its `annotations` array index by `structure`, `component`, `component value`, `dataSets`, `series` and `observations`. It contains the following optional information: -* title - *String* *optional*. Provides a title for the annotation. +* title - *String* *optional*. Provides a localised title for the annotation. * type - *String* *optional*. Type is used to distinguish between annotations designed to support various uses. The types are not enumerated, and these can be freely specified by the creator of the annotations. The definitions and use of annotation types should be documented by their creator. -* text - *String* *optional*. Contains the text of the annotation. +* text - *String* *optional*. Contains the localised text of the annotation. * id - *String* *optional*. ID provides a non-standard identification of an annotation. It can be used to disambiguate annotations. * links - *Array* *optional*. *Links* field is an array of *[link](#link)* objects. If appropriate, a link to an additional external resource which may contain or supplement the annotation. +See the section on [localised strings](#localised-strings) on how the message deals with languages. + Example: { @@ -778,10 +791,12 @@ to RESTful web services HTTP error status codes. The following pieces of information are to be provided: * code - *Number*. Provides a code number for the error message. Code numbers are defined in the SDMX 2.1 Web Services Guidelines. -* title - *String* *optional*. A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization. -* detail - *String* *optional*. A human-readable explanation specific to this occurrence of the problem. Like title, this field’s value can be localized. It is fully customizable by the service providers and should provide enough detail to ease understanding the reasons of the error. +* title - *String* *optional*. A short, human-readable localised summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization. +* detail - *String* *optional*. A human-readable localised explanation specific to this occurrence of the problem. Like title, this field’s value can be localized. It is fully customizable by the service providers and should provide enough detail to ease understanding the reasons of the error. * links - *Array* *optional*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional external resources for the error. +See the section on [localised strings](#localised-strings) on how the message deals with languages. + Example: { @@ -797,7 +812,7 @@ Example: * href - *String*. Absolute or relative URL of the external resource. * rel - *String*. Relationship of the object to the external resource. -* title - *String* *optional*. A human-friendly description of the target link. +* title - *String* *optional*. A human-friendly localised description of the target link. See the section on [localised strings](#localised-strings) on how the message deals with languages. * type - *String* *optional*. A hint about the type of representation returned by the link. * hreflang - *String* *optional*. The natural language of the external link, the same as used in the HTTP Accept-Language request header. @@ -1136,6 +1151,16 @@ is therefore "Normal value". The same logic applies for mapping the other observations, its attributes and annotations. +# Localised strings + +The first best language match according to the user’s preferred language choices in the http Accept-Language header (or if that is not available than according to the system's default language order) is to be used for each localisable message element. The message does however not indicate the returned language per localisable element. +In case that there is no such language match for a particular localisable element, it is optional to: + +- return the element in a system-default language or alternatively to not return the element +- indicate available alternative languages for the element's maintainable artefact through links to underlying localised resources + +**It is recommended to indicate all languages used anywhere in the message for localised elements through http Content-Language response header (languages of the intended audience) and/or through a “content-language” property in the meta tag.** The main language used can be indicated through the “lang” property in the meta tag. + # Security Considerations This document defines a response format for SDMX RESTful Web Services in JSON From 245c1e530d99bcf9ec1f02b96edad63a164cb266 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 30 Nov 2017 12:59:50 +0100 Subject: [PATCH 060/161] Update sdmx-json-data-schema.json Implementation of solution for #40 --- data-message/tools/schemas/sdmx-json-data-schema.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/data-message/tools/schemas/sdmx-json-data-schema.json b/data-message/tools/schemas/sdmx-json-data-schema.json index f355d0c..177835e 100644 --- a/data-message/tools/schemas/sdmx-json-data-schema.json +++ b/data-message/tools/schemas/sdmx-json-data-schema.json @@ -44,7 +44,12 @@ "type": "string", "format": "date-time" }, - + "content-language": { + "type": [ "null", "string" ] + }, + "lang": { + "type": [ "null", "string" ] + }, "sender": { "$ref": "#/definitions/party" }, From b81166f2c8985c9003f11b15aba9bc3276c530e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 30 Nov 2017 13:14:16 +0100 Subject: [PATCH 061/161] Update 3-full-example-with-comments.md Implement solution for #40 --- .../docs/3-full-example-with-comments.md | 665 +++++++++--------- 1 file changed, 336 insertions(+), 329 deletions(-) diff --git a/data-message/docs/3-full-example-with-comments.md b/data-message/docs/3-full-example-with-comments.md index 9882b9c..2f60771 100644 --- a/data-message/docs/3-full-example-with-comments.md +++ b/data-message/docs/3-full-example-with-comments.md @@ -2,7 +2,7 @@ ```json { - "header": { + "meta": { # dynamically generated GUI "id": "62b5f19d-f1c9-495d-8446-a3661ed24753", @@ -13,9 +13,15 @@ # optional with default false "test": false, + # all languages used anywhere in the message for localisable elements + "content-language": "en, fr;q=0.1", + + # main language used in the message for localisable elements + "lang": "en", + "sender": { "id": "ECB", - "name": "European Central Bank", + "name": "Banque Centrale Européenne", "contact": [ { "name": "Statistics hotline", @@ -59,361 +65,362 @@ "errors": [ { "code": 123, - "message": "Invalid number of dimensions in parameter key" + "title": "Invalid number of dimensions in parameter key" } ], - "structure": { - - "links": [ - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", - "rel": "datastructure", - "title": "resolvable uri to datastructure" - }, - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR", - "rel": "dataflow", - "title": "resolvable uri to dataflow" - }, - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", - "rel": "provisionagreement", - "title": "resolvable uri to provision agreement" - } - ], - - "name": "dataflow name", - "description": "dataflow description", - "dimensions": { - - # dataSet is used only if grouping of dimensions with single values - "dataSet": [ - { - "id": "FREQ", - "name": "Frequency", - "description": "Description for the dimension", - - # 0-based position of dimension in key in user request url - "keyPosition": 0, - - # restricted list of dimension and attribute roles (time, frequency, - # geo, unit, scalefactor, referenceperiod, ...) - "role": "frequency", - - "values": [ + "data": { + "structure": { + + "links": [ + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", + "rel": "datastructure", + "title": "resolvable uri to datastructure" + }, + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR", + "rel": "dataflow", + "title": "resolvable uri to dataflow" + }, + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", + "rel": "provisionagreement", + "title": "resolvable uri to provision agreement" + } + ], + + "name": "dataflow name", + "description": "dataflow description", + "dimensions": { + + # dataSet is used only if grouping of dimensions with single values + "dataSet": [ + { + "id": "FREQ", + "name": "Frequency", + "description": "Description for the dimension", + + # 0-based position of dimension in key in user request url + "keyPosition": 0, + + # restricted list of dimension and attribute roles (time, frequency, + # geo, unit, scalefactor, referenceperiod, ...) + "role": "frequency", + + "values": [ + { + "id": "D", + "name": "Daily" + } + ] + }, + { + "id": "CURRENCY_DENOM", + "name": "Currency denominator", + "description": "Description for the dimension", + "keyPosition": 3, + "values": [ + { + "id": "EUR", + "name": "Euro" + } + ] + }, { - "id": "D", - "name": "Daily" + "id": "EXR_TYPE", + "name": "Exchange rate type", + "description": "Description for the dimension", + "keyPosition": 4, + "values": [ + { + "id": "SP00", + "name": "Spot rate" + } + ] + }, + { + "id": "EXR_SUFFIX", + "name": "Series variation - EXR context", + "description": "Description for the dimension", + "keyPosition": 5, + "values": [ + { + "id": "A", + "name": "Average or standardised measure for given frequency" + } + ] } - ] - }, - { - "id": "CURRENCY_DENOM", - "name": "Currency denominator", - "description": "Description for the dimension", - "keyPosition": 3, - "values": [ + ], + + # only if dimensionAtObservation <> allDimensions + "series": [ { - "id": "EUR", - "name": "Euro" + "id": "CURRENCY", + "name": "Currency", + "description": "Description for the dimension", + "keyPosition": 2, + "role": "unit", + "values": [ + { + "id": "NZD", + "name": "New Zealand dollar" + }, + { + "id": "RUB", + "name": "Russian rouble" + } + ] } - ] - }, - { - "id": "EXR_TYPE", - "name": "Exchange rate type", - "description": "Description for the dimension", - "keyPosition": 4, - "values": [ + ], + + # only for dimensions used at observation level + "observation": [ { - "id": "SP00", - "name": "Spot rate" + "id": "TIME_PERIOD", + "name": "Time period or range", + "description": "Description for the dimension", + "role": "time", + "values": [ + { + "id": "2013-01-18", + "name": "2013-01-18", + "start": "2013-01-18T00:00:00Z", + "end": "2013-01-18T23:59:59Z" + }, + { + "id": "2013-01-21", + "name": "2013-01-21", + "start": "2013-01-21T00:00:00Z", + "end": "2013-01-21T23:59:59Z" + } + ] } ] }, - { - "id": "EXR_SUFFIX", - "name": "Series variation - EXR context", - "description": "Description for the dimension", - "keyPosition": 5, - "values": [ + "attributes": { + + # only for attributes returned at dataset level + "dataSet": [], + + # only for attributes returned at series level + "series": [ { - "id": "A", - "name": "Average or standardised measure for given frequency" + "id": "ID", + "name": "Attribute name", + "description": "Description for the attribute", + "role": null, + "default": null, + + # inclusion of attachment level and its format to be decided + # e.g. "attachment": [ true, true, true, true, true, true, false ], + + "values": [ + { + # id property is optional to allow for uncoded attributes + "id": null, + "name": "New Zealand dollar (NZD)" + }, + { + "id": null, + "name": "Russian rouble (RUB)" + } + ] } - ] - } - ], - - # only if dimensionAtObservation <> allDimensions - "series": [ - { - "id": "CURRENCY", - "name": "Currency", - "description": "Description for the dimension", - "keyPosition": 2, - "role": "unit", - "values": [ - { - "id": "NZD", - "name": "New Zealand dollar" - }, + ], + "observation": [ { - "id": "RUB", - "name": "Russian rouble" + "id": "OBS_STATUS", + "name": "Observation status", + "description": "Description for the attribute", + "role": null, + + # optional + "default": "A", + + "values": [ + # a null attribute can be used to shorten the message by + # using O index later in message + null, + + { + "id": "A", + "name": "Normal value", + "description": "Normal value" + } + ] } ] - } - ], - - # only for dimensions used at observation level - "observation": [ + }, + "annotations": [ + { + "title": "AnnotationTitle provides a title for the annotation.", + "type": "AnnotationType is used to distinguish between annotations.", + "text": "AnnotationText contains the text of the annotation.", + "id": "Non-standard identification of an annotation.", + "links": [ + { + "href": "http://www.myorg.org/ws/uri/for/this/annotation", + "rel": "description" + } + ] + } + ] + }, + "dataSets": [ { - "id": "TIME_PERIOD", - "name": "Time period or range", - "description": "Description for the dimension", - "role": "time", - "values": [ + "links": [ { - "id": "2013-01-18", - "name": "2013-01-18", - "start": "2013-01-18T00:00:00Z", - "end": "2013-01-18T23:59:59Z" - }, - { - "id": "2013-01-21", - "name": "2013-01-21", - "start": "2013-01-21T00:00:00Z", - "end": "2013-01-21T23:59:59Z" + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/EXR/1.0", + "rel": "datastructure" } - ] - } - ] - }, - "attributes": { - - # only for attributes returned at dataset level - "dataSet": [], - - # only for attributes returned at series level - "series": [ - { - "id": "ID", - "name": "Attribute name", - "description": "Description for the attribute", - "role": null, - "default": null, - - # inclusion of attachment level and its format to be decided - # e.g. "attachment": [ true, true, true, true, true, true, false ], - - "values": [ - { - # id property is optional to allow for uncoded attributes - "id": null, - "name": "New Zealand dollar (NZD)" + ], + + "action": "Information", + + # optional first time period in returned message + "reportingBegin": "2012-05-04", + + # optional last time period in returned message + "reportingEnd": "2012-06-01", + + # optional only for version history + "validFrom": "2012-01-01T10:00:00Z", + + # optional only for version history + "validTo": "2013-01-01T10:00:00Z", + + # optional only for publication release calendars + "publicationYear": "2005", + + # optional only for publication release calendars + "publicationPeriod": "2005-Q1", + + # optional as per annotations + "annotations": [0], + + # optional as per attributes at dataset level + "attributes": [0], + + # 1st alternative (only if series level + # (dimensionAtObservation <> allDimensions)) + + "series": { + "0": { + "annotations": [], + "attributes": [0], + "observations": { + "0": [1.5931, 0], + "1": [1.5925, 0] + } }, - { - "id": null, - "name": "Russian rouble (RUB)" + "1": { + "annotations": [0], + "attributes": [1], + "observations": { + "0": [40.3426, 0], + "1": [40.3000, 0] + } } - ] - } - ], - "observation": [ + } + }, { - "id": "OBS_STATUS", - "name": "Observation status", - "description": "Description for the attribute", - "role": null, - - # optional - "default": "A", - - "values": [ - # a null attribute can be used to shorten the message by - # using O index later in message - null, - - { - "id": "A", - "name": "Normal value", - "description": "Normal value" - } - ] - } - ] - }, - "annotations": [ - { - "title": "AnnotationTitle provides a title for the annotation.", - "type": "AnnotationType is used to distinguish between annotations.", - "text": "AnnotationText contains the text of the annotation.", - "id": "Non-standard identification of an annotation.", - "links": [ - { - "href": "http://www.myorg.org/ws/uri/for/this/annotation", - "rel": "description" + "action": "Information", + + # 2nd alternative (only if no series level + # (dimensionAtObservation == allDimensions)) + + "observations": { + "0:0": [1.5931, 0], + "0:1": [1.5925, 0], + "1:0": [40.3426, 0, 0], + "1:1": [40.3000, 0, 0] } - ] - } - ] - }, - "dataSets": [ - { - "links": [ + }, + + # In case that the server does not group dimensions + # with single values at dataset level + { - "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/EXR/1.0", - "rel": "datastructure" - } - ], - - "action": "Information", - - # optional first time period in returned message - "reportingBegin": "2012-05-04", - - # optional last time period in returned message - "reportingEnd": "2012-06-01", - - # optional only for version history - "validFrom": "2012-01-01T10:00:00Z", - - # optional only for version history - "validTo": "2013-01-01T10:00:00Z", - - # optional only for publication release calendars - "publicationYear": "2005", - - # optional only for publication release calendars - "publicationPeriod": "2005-Q1", - - # optional as per annotations - "annotations": [0], - - # optional as per attributes at dataset level - "attributes": [0], - - # 1st alternative (only if series level - # (dimensionAtObservation <> allDimensions)) - - "series": { - "0": { - "annotations": [], - "attributes": [0], + "action": "Information", + + # 1st alternative (only if series level + # (dimensionAtObservation <> allDimensions)) + + "series": { + "0:0:0:0:0": { + "annotations": [], + "attributes": [0], + "observations": { + "0": [1.5931, 0], + "1": [1.5925, 0] + } + }, + "0:0:0:0:1": { + "annotations": [0], + "attributes": [1], + "observations": { + "0": [40.3426, 0], + "1": [40.3000, 0] + } + } + } + }, + { + "action": "Information", + + # 2nd alternative (only if no series level + # (dimensionAtObservation == allDimensions)) + "observations": { - "0": [1.5931, 0], - "1": [1.5925, 0] + "0:0:0:0:0:0": [1.5931, 0], + "0:0:0:0:0:1": [1.5925, 0], + "0:0:0:0:1:0": [40.3426, 0, 0], + "0:0:0:0:1:1": [40.3000, 0, 0] } }, - "1": { - "annotations": [0], - "attributes": [1], + + # In case the client is using the detail parameter + # and the server supports it + + { + "action": "Information", + + # Detail parameter: serieskeysonly. No observation values, + # attributes or annotations. + + "observations": { + "0:0": [], + "0:1": [], + "1:0": [], + "1:1": [] + } + }, + { + "action": "Information", + + # Detail parameter: dataonly. No attributes or annotations. + + "observations": { + "0:0": [1.5931], + "0:1": [1.5925], + "1:0": [40.3426], + "1:1": [40.3000] + } + }, + { + "action": "Information", + + # Detail parameter: nodata. No observation values + # just attributes and annotations. + "observations": { - "0": [40.3426, 0], - "1": [40.3000, 0] + "0:0": [0], + "0:1": [0], + "1:0": [0, 0], + "1:1": [0, 0] } } - } - }, - { - "action": "Information", - - # 2nd alternative (only if no series level - # (dimensionAtObservation == allDimensions)) - - "observations": { - "0:0": [1.5931, 0], - "0:1": [1.5925, 0], - "1:0": [40.3426, 0, 0], - "1:1": [40.3000, 0, 0] - } - }, - - # In case that the server does not group dimensions - # with single values at dataset level - - { - "action": "Information", - - # 1st alternative (only if series level - # (dimensionAtObservation <> allDimensions)) - - "series": { - "0:0:0:0:0": { - "annotations": [], - "attributes": [0], - "observations": { - "0": [1.5931, 0], - "1": [1.5925, 0] - } - }, - "0:0:0:0:1": { - "annotations": [0], - "attributes": [1], - "observations": { - "0": [40.3426, 0], - "1": [40.3000, 0] - } - } - } - }, - { - "action": "Information", - - # 2nd alternative (only if no series level - # (dimensionAtObservation == allDimensions)) - - "observations": { - "0:0:0:0:0:0": [1.5931, 0], - "0:0:0:0:0:1": [1.5925, 0], - "0:0:0:0:1:0": [40.3426, 0, 0], - "0:0:0:0:1:1": [40.3000, 0, 0] - } - }, - - # In case the client is using the detail parameter - # and the server supports it - - { - "action": "Information", - - # Detail parameter: serieskeysonly. No observation values, - # attributes or annotations. - - "observations": { - "0:0": [], - "0:1": [], - "1:0": [], - "1:1": [] - } - }, - { - "action": "Information", - - # Detail parameter: dataonly. No attributes or annotations. - - "observations": { - "0:0": [1.5931], - "0:1": [1.5925], - "1:0": [40.3426], - "1:1": [40.3000] - } - }, - { - "action": "Information", - - # Detail parameter: nodata. No observation values - # just attributes and annotations. - - "observations": { - "0:0": [0], - "0:1": [0], - "1:0": [0, 0], - "1:1": [0, 0] - } - } - ] + ] + } } ``` - From 9b093a5e26fbb00f22c2040bbcd3ee5568dab07e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 30 Nov 2017 14:31:26 +0100 Subject: [PATCH 062/161] Update exr-action-delete.json Implementation of solution of #40 --- .../samples/exr/exr-action-delete.json | 228 +++++++++--------- 1 file changed, 110 insertions(+), 118 deletions(-) diff --git a/data-message/samples/exr/exr-action-delete.json b/data-message/samples/exr/exr-action-delete.json index 5cb2f48..45fb737 100644 --- a/data-message/samples/exr/exr-action-delete.json +++ b/data-message/samples/exr/exr-action-delete.json @@ -1,77 +1,74 @@ { - "header": { + "meta": { "id": "62b5f19d-f1c9-495d-8446-a3661ed24753", "prepared": "2012-11-29T08:40:26Z", + "content-language": "en, fr;q=0.1", + "lang": "en", "sender": { "id": "ECB", - "name": "European Central Bank" + "name": "Banque Centrale Européenne" } }, - "structure": { - "links": [ - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR/1.0", - "rel": "dataflow", - "title": "resolvable uri to dataflow" - }, - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", - "rel": "datastructure", - "title": "resolvable uri to datastructure" - }, - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", - "rel": "provisionagreement", - "title": "resolvable uri to provision agreement" - } - ], - "dimensions": { - "dataSet": [ + "data": { + "structure": { + "links": [ { - "id": "FREQ", - "name": "Frequency", - "role": "FREQ", - "keyPosition": 0, - "values": [ - { + "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR/1.0", + "rel": "dataflow", + "title": "resolvable uri to dataflow" + }, + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", + "rel": "datastructure", + "title": "resolvable uri to datastructure" + }, + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", + "rel": "provisionagreement", + "title": "resolvable uri to provision agreement" + } + ], + "dimensions": { + "dataSet": [ + { + "id": "FREQ", + "name": "Frequency", + "role": "FREQ", + "keyPosition": 0, + "values": [{ "id": "D", "name": "Daily" - } - ] - }, { - "id": "CURRENCY_DENOM", - "name": "Currency denominator", - "keyPosition": 2, - "values": [ - { + }] + }, + { + "id": "CURRENCY_DENOM", + "name": "Currency denominator", + "keyPosition": 2, + "values": [{ "id": "EUR", "name": "Euro" - } - ] - }, { - "id": "EXR_TYPE", - "name": "Exchange rate type", - "keyPosition": 3, - "values": [ - { + }] + }, + { + "id": "EXR_TYPE", + "name": "Exchange rate type", + "keyPosition": 3, + "values": [{ "id": "SP00", "name": "Spot rate" - } - ] - }, { - "id": "EXR_SUFFIX", - "name": "Series variation - EXR context", - "keyPosition": 4, - "values": [ - { + }] + }, + { + "id": "EXR_SUFFIX", + "name": "Series variation - EXR context", + "keyPosition": 4, + "values": [{ "id": "A", "name": "Average or standardised measure for given frequency" - } - ] - } - ], - "series": [ - { + }] + } + ], + "series": [{ "id": "TIME_PERIOD", "name": "Time period or range", "role": "TIME_PERIOD", @@ -81,17 +78,16 @@ "name": "2013-01-18", "start": "2013-01-18T00:00:00.000Z", "end": "2013-01-18T23:59:59.999Z" - }, { + }, + { "id": "2013-01-21", "name": "2013-01-21", "start": "2013-01-21T00:00:00.000Z", "end": "2013-01-21T23:59:59.999Z" } ] - } - ], - "observation": [ - { + }], + "observation": [{ "id": "CURRENCY", "name": "Currency", "keyPosition": 1, @@ -99,70 +95,66 @@ { "id": "NZD", "name": "New Zealand dollar" - }, { + }, + { "id": "RUB", "name": "Russian rouble" } ] - } - ] - }, - "attributes": { - "dataSet": [], - "series": [], - "observation": [ - { - "id": "TITLE", - "name": "Series title", - "role": "TITLE", - "values": [ - { - "name": "New Zealand dollar (NZD)" - }, { - "name": "Russian rouble (RUB)" - } - ] - }, { - "id": "OBS_STATUS", - "name": "Observation status", - "values": [ - { + }] + }, + "attributes": { + "dataSet": [], + "series": [], + "observation": [ + { + "id": "TITLE", + "name": "Series title", + "role": "TITLE", + "values": [ + {"name": "New Zealand dollar (NZD)"}, + {"name": "Russian rouble (RUB)"} + ] + }, + { + "id": "OBS_STATUS", + "name": "Observation status", + "values": [{ "id": "A", "name": "Normal value" - } - ] - } - ] - } - }, - "dataSets": [ - { - "action": "Replace", - "validFrom": "2012-03-20T15:00:16.000+01:00", - "series": { - "0": { - "attributes": [], - "observations": { - "1": [40.3426, 0, 1] - } - }, - "1": { - "attributes": [], - "observations": { - "1": [40.3000, 0, 1] + }] } - } + ] } - }, { - "action": "Delete", - "validTo": "2012-03-20T10:07:58.000+01:00", - "series": { - "0": { - "observations": { - "0": [] + }, + "dataSets": [ + { + "action": "Replace", + "validFrom": "2012-03-20T15:00:16.000+01:00", + "series": { + "0": { + "attributes": [], + "observations": {"1": [ + 40.3426, + 0, + 1 + ]} + }, + "1": { + "attributes": [], + "observations": {"1": [ + 40.3, + 0, + 1 + ]} } } + }, + { + "action": "Delete", + "validTo": "2012-03-20T10:07:58.000+01:00", + "series": {"0": {"observations": {"0": []}}} } - } - ] + ] + } } From c224e19b0610611ab2dd92b688ee009052b5cf40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 30 Nov 2017 14:33:33 +0100 Subject: [PATCH 063/161] Update exr-cross-section.json Implementation of solution of #40 --- .../samples/exr/exr-cross-section.json | 220 +++++++++--------- 1 file changed, 109 insertions(+), 111 deletions(-) diff --git a/data-message/samples/exr/exr-cross-section.json b/data-message/samples/exr/exr-cross-section.json index 94ef5f3..975c580 100644 --- a/data-message/samples/exr/exr-cross-section.json +++ b/data-message/samples/exr/exr-cross-section.json @@ -1,80 +1,74 @@ { - "header": { + "meta": { "id": "62b5f19d-f1c9-495d-8446-a3661ed24753", "prepared": "2012-11-29T08:40:26Z", + "content-language": "en, fr;q=0.1", + "lang": "en", "sender": { "id": "ECB", - "name": "European Central Bank" + "name": "Banque Centrale Européenne" } }, - "structure": { - "links": [ - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR/1.0", - "rel": "dataflow", - "title": "resolvable uri to dataflow" - }, - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", - "rel": "datastructure", - "title": "resolvable uri to datastructure" - }, - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", - "rel": "provisionagreement", - "title": "resolvable uri to provision agreement" - } - ], - "dimensions": { - "dataSet": [ + "data": { + "structure": { + "links": [ { - "id": "FREQ", - "name": "Frequency", - "role": "FREQ", - "keyPosition": 0, - "values": [ - { - "id": "D", - "name": "Daily" - } - ] + "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR/1.0", + "rel": "dataflow", + "title": "resolvable uri to dataflow" }, { - "id": "CURRENCY_DENOM", - "name": "Currency denominator", - "keyPosition": 2, - "values": [ - { - "id": "EUR", - "name": "Euro" - } - ] + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", + "rel": "datastructure", + "title": "resolvable uri to datastructure" }, { - "id": "EXR_TYPE", - "name": "Exchange rate type", - "keyPosition": 3, - "values": [ - { + "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", + "rel": "provisionagreement", + "title": "resolvable uri to provision agreement" + } + ], + "dimensions": { + "dataSet": [ + { + "id": "FREQ", + "name": "Frequency", + "role": "FREQ", + "keyPosition": 0, + "values": [{ + "id": "D", + "name": "Daily" + }] + }, + { + "id": "CURRENCY_DENOM", + "name": "Currency denominator", + "keyPosition": 2, + "values": [{ + "id": "EUR", + "name": "Euro" + }] + }, + { + "id": "EXR_TYPE", + "name": "Exchange rate type", + "keyPosition": 3, + "values": [{ "id": "SP00", "name": "Spot rate" - } - ] - }, - { - "id": "EXR_SUFFIX", - "name": "Series variation - EXR context", - "keyPosition": 4, - "values": [ - { + }] + }, + { + "id": "EXR_SUFFIX", + "name": "Series variation - EXR context", + "keyPosition": 4, + "values": [{ "id": "A", "name": "Average or standardised measure for given frequency" - } - ] - } - ], - "series": [ - { + }] + } + ], + "series": [{ "id": "TIME_PERIOD", "name": "Time period or range", "role": "TIME_PERIOD", @@ -92,10 +86,8 @@ "end": "2013-01-21T23:59:59.999Z" } ] - } - ], - "observation": [ - { + }], + "observation": [{ "id": "CURRENCY", "name": "Currency", "keyPosition": 1, @@ -109,67 +101,73 @@ "name": "Russian rouble" } ] - } - ] - }, - "attributes": { - "dataSet": [], - "series": [], - "observation": [ - { - "id": "OBS_STATUS", - "name": "Observation status", - "values": [ - { + }] + }, + "attributes": { + "dataSet": [], + "series": [], + "observation": [ + { + "id": "OBS_STATUS", + "name": "Observation status", + "values": [{ "id": "A", "name": "Normal value" - } - ] - }, - { - "id": "TITLE", - "name": "Series title", - "role": "TITLE", - "values": [ - { - "name": "New Zealand dollar (NZD)" - }, - { - "name": "Russian rouble (RUB)" - } - ] - } - ] + }] + }, + { + "id": "TITLE", + "name": "Series title", + "role": "TITLE", + "values": [ + {"name": "New Zealand dollar (NZD)"}, + {"name": "Russian rouble (RUB)"} + ] + } + ] + }, + "annotations": [{ + "title": "Sample series annotation title", + "type": "example", + "text": "Sample series annotation text", + "id": "ABC123456" + }] }, - "annotations": [ - { - "title": "Sample series annotation title", - "type": "example", - "text": "Sample series annotation text", - "id": "ABC123456" - } - ] - }, - "dataSets": [ - { + "dataSets": [{ "action": "Information", "series": { "0": { "annotations": [0], "attributes": [], "observations": { - "0": [1.5931, 0, 0], - "1": [40.3426, 0, 1] + "0": [ + 1.5931, + 0, + 0 + ], + "1": [ + 40.3426, + 0, + 1 + ] } }, "1": { "attributes": [], "observations": { - "0": [1.5925, 0, 0], - "1": [40.3000, 0, 1] + "0": [ + 1.5925, + 0, + 0 + ], + "1": [ + 40.3, + 0, + 1 + ] } } } - } - ] + }] + } } From 6233b8203d54c790f6478b29ddfc15315ab3dd83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 30 Nov 2017 14:35:43 +0100 Subject: [PATCH 064/161] Update exr-flat.json Implementation of solution of #40 --- data-message/samples/exr/exr-flat.json | 283 +++++++++++++------------ 1 file changed, 143 insertions(+), 140 deletions(-) diff --git a/data-message/samples/exr/exr-flat.json b/data-message/samples/exr/exr-flat.json index 42b9298..cc50675 100644 --- a/data-message/samples/exr/exr-flat.json +++ b/data-message/samples/exr/exr-flat.json @@ -1,163 +1,166 @@ { - "header": { + "meta": { "id": "62b5f19d-f1c9-495d-8446-a3661ed24753", "prepared": "2012-11-29T08:40:26Z", + "content-language": "en, fr;q=0.1", + "lang": "en", "sender": { "id": "ECB", - "name": "European Central Bank" + "name": "Banque Centrale Européenne" } }, - "structure": { - "links": [ - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR/1.0", - "rel": "dataflow", - "title": "resolvable uri to dataflow" - }, - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", - "rel": "datastructure", - "title": "resolvable uri to datastructure" - }, - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", - "rel": "provisionagreement", - "title": "resolvable uri to provision agreement" - } - ], - "dimensions": { - "dataSet": [ + "data": { + "structure": { + "links": [ { - "id": "FREQ", - "name": "Frequency", - "keyPosition": 0, - "role": "FREQ", - "values": [ - { - "id": "D", - "name": "Daily" - } - ] + "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR/1.0", + "rel": "dataflow", + "title": "resolvable uri to dataflow" }, { - "id": "CURRENCY_DENOM", - "name": "Currency denominator", - "keyPosition": 2, - "values": [ - { - "id": "EUR", - "name": "Euro" - } - ] + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", + "rel": "datastructure", + "title": "resolvable uri to datastructure" }, { - "id": "EXR_TYPE", - "name": "Exchange rate type", - "keyPosition": 3, - "values": [ - { + "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", + "rel": "provisionagreement", + "title": "resolvable uri to provision agreement" + } + ], + "dimensions": { + "dataSet": [ + { + "id": "FREQ", + "name": "Frequency", + "keyPosition": 0, + "role": "FREQ", + "values": [{ + "id": "D", + "name": "Daily" + }] + }, + { + "id": "CURRENCY_DENOM", + "name": "Currency denominator", + "keyPosition": 2, + "values": [{ + "id": "EUR", + "name": "Euro" + }] + }, + { + "id": "EXR_TYPE", + "name": "Exchange rate type", + "keyPosition": 3, + "values": [{ "id": "SP00", "name": "Spot rate" - } - ] - }, - { - "id": "EXR_SUFFIX", - "name": "Series variation - EXR context", - "keyPosition": 4, - "values": [ - { + }] + }, + { + "id": "EXR_SUFFIX", + "name": "Series variation - EXR context", + "keyPosition": 4, + "values": [{ "id": "A", "name": "Average or standardised measure for given frequency" - } - ] - } - ], - "series": [], - "observation": [ - { - "id": "CURRENCY", - "name": "Currency", - "keyPosition": 1, - "values": [ - { - "id": "NZD", - "name": "New Zealand dollar" - }, - { - "id": "RUB", - "name": "Russian rouble" - } - ] - }, - { - "id": "TIME_PERIOD", - "name": "Time period or range", - "role": "TIME_PERIOD", - "values": [ - { - "id": "2013-01-18", - "name": "2013-01-18", - "start": "2013-01-18T00:00:00.000Z", - "end": "2013-01-18T23:59:59.999Z" - }, - { - "id": "2013-01-21", - "name": "2013-01-21", - "start": "2013-01-21T00:00:00.000Z", - "end": "2013-01-21T23:59:59.999Z" - } - ] - } - ] - }, - "attributes": { - "dataSet": [], - "series": [], - "observation": [ - { - "id": "TITLE", - "name": "Series title", - "role": "TITLE", - "values": [ - { - "name": "New Zealand dollar (NZD)" - }, - { - "name": "Russian rouble (RUB)" - } - ] - }, - { - "id": "OBS_STATUS", - "name": "Observation status", - "values": [ - { + }] + } + ], + "series": [], + "observation": [ + { + "id": "CURRENCY", + "name": "Currency", + "keyPosition": 1, + "values": [ + { + "id": "NZD", + "name": "New Zealand dollar" + }, + { + "id": "RUB", + "name": "Russian rouble" + } + ] + }, + { + "id": "TIME_PERIOD", + "name": "Time period or range", + "role": "TIME_PERIOD", + "values": [ + { + "id": "2013-01-18", + "name": "2013-01-18", + "start": "2013-01-18T00:00:00.000Z", + "end": "2013-01-18T23:59:59.999Z" + }, + { + "id": "2013-01-21", + "name": "2013-01-21", + "start": "2013-01-21T00:00:00.000Z", + "end": "2013-01-21T23:59:59.999Z" + } + ] + } + ] + }, + "attributes": { + "dataSet": [], + "series": [], + "observation": [ + { + "id": "TITLE", + "name": "Series title", + "role": "TITLE", + "values": [ + {"name": "New Zealand dollar (NZD)"}, + {"name": "Russian rouble (RUB)"} + ] + }, + { + "id": "OBS_STATUS", + "name": "Observation status", + "values": [{ "id": "A", "name": "Normal value" - } - ] - } - ] + }] + } + ] + }, + "annotations": [{ + "title": "Sample observation annotation title", + "type": "example", + "text": "Sample observation annotation text", + "id": "XYZ98765" + }] }, - "annotations": [ - { - "title": "Sample observation annotation title", - "type": "example", - "text": "Sample observation annotation text", - "id": "XYZ98765" - } - ] - }, - "dataSets": [ - { + "dataSets": [{ "action": "Information", "observations": { - "0:0": [1.5931, 0, 0], - "0:1": [1.5925, 0, 0, 0], - "1:0": [40.3426, 1, 0], - "1:1": [40.3000, 1, 0] + "0:0": [ + 1.5931, + 0, + 0 + ], + "0:1": [ + 1.5925, + 0, + 0, + 0 + ], + "1:0": [ + 40.3426, + 1, + 0 + ], + "1:1": [ + 40.3, + 1, + 0 + ] } - } - ] + }] + } } From 9ee54f025c0a261958897cafaacae0b56251c189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 30 Nov 2017 14:37:36 +0100 Subject: [PATCH 065/161] Update exr-time-series.json Implementation of solution of #40 --- data-message/samples/exr/exr-time-series.json | 215 +++++++++--------- 1 file changed, 104 insertions(+), 111 deletions(-) diff --git a/data-message/samples/exr/exr-time-series.json b/data-message/samples/exr/exr-time-series.json index 41ca10b..c68df98 100644 --- a/data-message/samples/exr/exr-time-series.json +++ b/data-message/samples/exr/exr-time-series.json @@ -1,80 +1,74 @@ { - "header": { + "meta": { "id": "62b5f19d-f1c9-495d-8446-a3661ed24753", "prepared": "2012-11-29T08:40:26Z", + "content-language": "en, fr;q=0.1", + "lang": "en", "sender": { "id": "ECB", - "name": "European Central Bank" + "name": "Banque Centrale Européenne" } }, - "structure": { - "links": [ - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR/1.0", - "rel": "dataflow", - "title": "resolvable uri to dataflow" - }, - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", - "rel": "datastructure", - "title": "resolvable uri to datastructure" - }, - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", - "rel": "provisionagreement", - "title": "resolvable uri to provision agreement" - } - ], - "dimensions": { - "dataSet": [ + "data": { + "structure": { + "links": [ { - "id": "FREQ", - "name": "Frequency", - "role": "FREQ", - "keyPosition": 0, - "values": [ - { - "id": "D", - "name": "Daily" - } - ] + "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR/1.0", + "rel": "dataflow", + "title": "resolvable uri to dataflow" }, { - "id": "CURRENCY_DENOM", - "name": "Currency denominator", - "keyPosition": 2, - "values": [ - { - "id": "EUR", - "name": "Euro" - } - ] + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", + "rel": "datastructure", + "title": "resolvable uri to datastructure" }, { - "id": "EXR_TYPE", - "name": "Exchange rate type", - "keyPosition": 3, - "values": [ - { + "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", + "rel": "provisionagreement", + "title": "resolvable uri to provision agreement" + } + ], + "dimensions": { + "dataSet": [ + { + "id": "FREQ", + "name": "Frequency", + "role": "FREQ", + "keyPosition": 0, + "values": [{ + "id": "D", + "name": "Daily" + }] + }, + { + "id": "CURRENCY_DENOM", + "name": "Currency denominator", + "keyPosition": 2, + "values": [{ + "id": "EUR", + "name": "Euro" + }] + }, + { + "id": "EXR_TYPE", + "name": "Exchange rate type", + "keyPosition": 3, + "values": [{ "id": "SP00", "name": "Spot rate" - } - ] - }, - { - "id": "EXR_SUFFIX", - "name": "Series variation - EXR context", - "keyPosition": 4, - "values": [ - { + }] + }, + { + "id": "EXR_SUFFIX", + "name": "Series variation - EXR context", + "keyPosition": 4, + "values": [{ "id": "A", "name": "Average or standardised measure for given frequency" - } - ] - } - ], - "series": [ - { + }] + } + ], + "series": [{ "id": "CURRENCY", "name": "Currency", "keyPosition": 1, @@ -88,10 +82,8 @@ "name": "Russian rouble" } ] - } - ], - "observation": [ - { + }], + "observation": [{ "id": "TIME_PERIOD", "name": "Time period or range", "role": "TIME_PERIOD", @@ -109,75 +101,76 @@ "end": "2013-01-21T23:59:59.999Z" } ] - } - ] - }, - "attributes": { - "dataSet": [], - "series": [ - { + }] + }, + "attributes": { + "dataSet": [], + "series": [{ "id": "TITLE", "name": "Series title", "role": "TITLE", "values": [ - { - "name": "New Zealand dollar (NZD)" - }, - { - "name": "Russian rouble (RUB)" - } + {"name": "New Zealand dollar (NZD)"}, + {"name": "Russian rouble (RUB)"} ] - } - ], - "observation": [ - { + }], + "observation": [{ "id": "OBS_STATUS", "name": "Observation status", "role": "OBS_STATUS", - "values": [ - { - "id": "A", - "name": "Normal value" - } - ] + "values": [{ + "id": "A", + "name": "Normal value" + }] + }] + }, + "annotations": [ + { + "title": "Sample series annotation title", + "type": "example", + "text": "Sample series annotation text", + "id": "ABC123456" + }, + { + "title": "Sample observation annotation title", + "type": "example", + "text": "Sample observation annotation text", + "id": "XYZ98765" } ] }, - "annotations": [ - { - "title": "Sample series annotation title", - "type": "example", - "text": "Sample series annotation text", - "id": "ABC123456" - }, - { - "title": "Sample observation annotation title", - "type": "example", - "text": "Sample observation annotation text", - "id": "XYZ98765" - } - ] - }, - "dataSets": [ - { + "dataSets": [{ "action": "Information", "series": { "0": { "annotations": [0], "attributes": [0], "observations": { - "0": [1.5931, 0], - "1": [1.5925, 0] + "0": [ + 1.5931, + 0 + ], + "1": [ + 1.5925, + 0 + ] } }, "1": { "attributes": [1], "observations": { - "0": [40.3426, 0], - "1": [40.3000, 0, 1] + "0": [ + 40.3426, + 0 + ], + "1": [ + 40.3, + 0, + 1 + ] } } } - } - ] + }] + } } From f96c87908fdb3697fb9f36c47d627630d8477f22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Thu, 30 Nov 2017 16:08:00 +0100 Subject: [PATCH 066/161] Update sdmx-json-data-schema.json First changes for #30 --- .../tools/schemas/sdmx-json-data-schema.json | 887 +++++++++--------- 1 file changed, 447 insertions(+), 440 deletions(-) diff --git a/data-message/tools/schemas/sdmx-json-data-schema.json b/data-message/tools/schemas/sdmx-json-data-schema.json index 177835e..5dc7c3e 100644 --- a/data-message/tools/schemas/sdmx-json-data-schema.json +++ b/data-message/tools/schemas/sdmx-json-data-schema.json @@ -1,440 +1,447 @@ -{ - "id": "http://sdmx.org/data-message/v0.9.0/schema#", - "$schema" : "http://json-schema.org/draft-05/schema#", - "description": "Schema for SDMX-JSON data message", - "type": "object", - "properties": { - "meta": { - "$ref": "#/definitions/meta" - }, - "data": { - "structure": { - "$ref": "#/definitions/structure" - }, - "dataSets": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/dataSet" - } - } - }, - "errors": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/error" - } - } - }, - "definitions": { - "meta": { - "type": "object", - "required": [ "id", "prepared", "sender" ], - "properties": { - "schema": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "string" - }, - "test": { - "type": [ "null", "boolean" ] - }, - "prepared": { - "type": "string", - "format": "date-time" - }, - "content-language": { - "type": [ "null", "string" ] - }, - "lang": { - "type": [ "null", "string" ] - }, - "sender": { - "$ref": "#/definitions/party" - }, - "receiver": { - "$ref": "#/definitions/party" - }, - "links": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/link" - } - } - } - }, - "party": { - "type": "object", - "required": [ "id" ], - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": [ "null", "string" ] - }, - "contact": { - "type": [ "null", "array" ], - "items": { - "type": "object", - "required": [ "name" ], - "properties": { - "name": { - "type": "string" - }, - "department": { - "type": [ "null", "string" ] - }, - "role": { - "type": [ "null", "string" ] - }, - "telephone": { - "type": [ "null", "array" ], - "items": { - "type": "string" - } - }, - "fax": { - "type": [ "null", "array" ], - "items": { - "type": "string" - } - }, - "uri": { - "type": [ "null", "array" ], - "items": { - "type": "string", - "format": "uri" - } - }, - "email": { - "type": [ "null", "array" ], - "items": { - "type": "string", - "format": "email" - } - } - } - } - } - } - }, - "error": { - "type": "object", - "required": [ "code" ], - "properties": { - "code": { - "type": "number" - }, - "title": { - "type": [ "null", "string" ] - }, - "detail": { - "type": [ "null", "string" ] - }, - "links": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/link" - } - } - } - }, - "link": { - "type": "object", - "required": [ "href", "rel" ], - "properties": { - "href": { - "type": "string", - "format": "uri" - }, - "rel": { - "type": "string" - }, - "title": { - "type": [ "null", "string" ] - }, - "type": { - "type": [ "null", "string" ] - }, - "hreflang": { - "type": [ "null", "string" ] - } - } - }, - "structure": { - "type": [ "null", "object" ], - "required": [ "dimensions" ], - "properties": { - "links": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/link" - } - }, - "name": { - "type": [ "null", "string" ] - }, - "description": { - "type": [ "null", "string" ] - }, - "dimensions": { - "type": "object", - "properties": { - "dataSet": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/component" - }, - "uniqueItems": true - }, - "series": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/component" - }, - "uniqueItems": true - }, - "observation": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/component" - }, - "uniqueItems": true - } - } - }, - "attributes": { - "type": "object", - "properties": { - "dataSet": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/component" - }, - "uniqueItems": true - }, - "series": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/component" - }, - "uniqueItems": true - }, - "observation": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/component" - }, - "uniqueItems": true - } - } - }, - "annotations": { - "type": [ "null", "array" ], - "items": { - "type": "object", - "properties": { - "title": { - "type": [ "null", "string" ] - }, - "type": { - "type": [ "null", "string" ] - }, - "text": { - "type": [ "null", "string" ] - }, - "id": { - "type": [ "null", "string" ] - }, - "links": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/link" - } - } - } - } - } - } - }, - "component": { - "type": "object", - "required": [ "id", "values" ], - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": [ "null", "string" ] - }, - "description": { - "type": [ "null", "string" ] - }, - "role": { - "type": [ "null", "string" ] - }, - "keyPosition": { - "type": [ "null", "integer" ], - "minimum": 0 - }, - "default": { - "type": [ "null", "string" ] - }, - "links": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/link" - }, - "annotations": { - "type": [ "null", "array" ], - "items": { - "type": [ "integer" ], - "minimum": 0 - } - }, - "values": { - "type": "array", - "items": { - "type": "object", - "required": [ "id" ], - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": [ "null", "string" ] - }, - "description": { - "type": [ "null", "string" ] - }, - "start": { - "type": [ "null", "string" ], - "format": "date-time" - }, - "end": { - "type": [ "null", "string" ], - "format": "date-time" - }, - "links": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/link" - } - }, - "annotations": { - "type": [ "null", "array" ], - "items": { - "type": [ "integer" ], - "minimum": 0 - } - } - } - }, - "minItems": 0, - "uniqueItems": true - } - } - }, - "dataSet": { - "type": "object", - "properties": { - "action": { - "type": "string", - "enum": [ "Information", "Append", "Replace", "Delete" ] - }, - "reportingBegin": { - "type": [ "null", "string" ] - }, - "reportingEnd": { - "type": [ "null", "string" ] - }, - "validFrom": { - "type": [ "null", "string" ], - "format": "date-time" - }, - "validTo": { - "type": [ "null", "string" ], - "format": "date-time" - }, - "publicationYear": { - "type": [ "null", "string" ] - }, - "publicationPeriod": { - "type": [ "null", "string" ] - }, - "annotations": { - "type": [ "null", "array" ], - "items": { - "type": [ "integer" ], - "minimum": 0 - } - }, - "attributes": { - "type": [ "null", "array" ], - "items": { - "type": [ "null", "integer" ], - "minimum": 0 - } - }, - "observations": { - "type": [ "null", "object" ], - "patternProperties": { - "^[0-9]+(:[0-9]+)*$": { - "type": "array", - "items": { - "type": [ "null", "number" ] - } - } - }, - "additionalProperties": false - }, - "series": { - "type": [ "null", "object" ], - "patternProperties": { - "^[0-9]+(:[0-9]+)*$": { - "type": "object", - "properties": { - "annotations": { - "type": [ "null", "array" ], - "items": { - "type": [ "integer" ], - "minimum": 0 - } - }, - "attributes": { - "type": [ "null", "array" ], - "items": { - "type": [ "null", "integer" ], - "minimum": 0 - } - }, - "observations": { - "type": "object", - "patternProperties": { - "^[0-9]+(:[0-9]+)*$": { - "type": "array", - "items": { - "type": [ "null", "number" ] - } - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - }, - "links": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/link" - } - } - } - } - } -} + { + "id": "http://sdmx.org/data-message/v0.9.0/schema#", + "$schema" : "http://json-schema.org/draft-05/schema#", + "description": "Schema for SDMX-JSON data message", + "type": "object", + "properties": { + "meta": { + "$ref": "#/definitions/meta" + }, + "data": { + "structure": { + "$ref": "#/definitions/structure" + }, + "dataSets": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/dataSet" + } + } + }, + "errors": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/error" + } + } + }, + "definitions": { + "meta": { + "type": "object", + "required": [ "id", "prepared", "sender" ], + "properties": { + "schema": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "string", + "pattern": "[A-Za-z0-9_@$-]+" + }, + "test": { + "type": [ "null", "boolean" ] + }, + "prepared": { + "type": "string", + "format": "date-time" + }, + "content-language": { + "type": [ "null", "string" ] + }, + "lang": { + "type": [ "null", "string" ] + }, + "sender": { + "$ref": "#/definitions/party" + }, + "receiver": { + "$ref": "#/definitions/party" + }, + "links": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/link" + } + } + } + }, + "party": { + "type": "object", + "required": [ "id" ], + "properties": { + "id": { + "type": "string", + "pattern": "[A-Za-z0-9_@$-]+" + }, + "name": { + "type": [ "null", "string" ] + }, + "contact": { + "type": [ "null", "array" ], + "items": { + "type": "object", + "required": [ "name" ], + "properties": { + "name": { + "type": "string" + }, + "department": { + "type": [ "null", "string" ] + }, + "role": { + "type": [ "null", "string" ] + }, + "telephone": { + "type": [ "null", "array" ], + "items": { + "type": "string" + } + }, + "fax": { + "type": [ "null", "array" ], + "items": { + "type": "string" + } + }, + "uri": { + "type": [ "null", "array" ], + "items": { + "type": "string", + "format": "uri" + } + }, + "email": { + "type": [ "null", "array" ], + "items": { + "type": "string", + "format": "email" + } + } + } + } + } + } + }, + "error": { + "type": "object", + "required": [ "code" ], + "properties": { + "code": { + "type": "number" + }, + "title": { + "type": [ "null", "string" ] + }, + "detail": { + "type": [ "null", "string" ] + }, + "links": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/link" + } + } + } + }, + "link": { + "type": "object", + "required": [ "href", "rel" ], + "properties": { + "href": { + "type": "string", + "format": "uri" + }, + "rel": { + "type": "string" + }, + "title": { + "type": [ "null", "string" ] + }, + "type": { + "type": [ "null", "string" ] + }, + "hreflang": { + "type": [ "null", "string" ] + } + } + }, + "structure": { + "type": [ "null", "object" ], + "required": [ "dimensions" ], + "properties": { + "links": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/link" + } + }, + "name": { + "type": [ "null", "string" ] + }, + "description": { + "type": [ "null", "string" ] + }, + "dimensions": { + "type": "object", + "properties": { + "dataSet": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/component" + }, + "uniqueItems": true + }, + "series": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/component" + }, + "uniqueItems": true + }, + "observation": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/component" + }, + "uniqueItems": true + } + } + }, + "attributes": { + "type": "object", + "properties": { + "dataSet": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/component" + }, + "uniqueItems": true + }, + "series": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/component" + }, + "uniqueItems": true + }, + "observation": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/component" + }, + "uniqueItems": true + } + } + }, + "annotations": { + "type": [ "null", "array" ], + "items": { + "type": "object", + "properties": { + "title": { + "type": [ "null", "string" ] + }, + "type": { + "type": [ "null", "string" ] + }, + "text": { + "type": [ "null", "string" ] + }, + "id": { + "type": [ "null", "string" ], + "items": { + "pattern": "[A-Za-z0-9_@$-]+" + } + }, + "links": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/link" + } + } + } + } + } + } + }, + "component": { + "type": "object", + "required": [ "id", "values" ], + "properties": { + "id": { + "type": "string", + "pattern": "[A-Za-z][A-Za-z0-9_-]*" + }, + "name": { + "type": [ "null", "string" ] + }, + "description": { + "type": [ "null", "string" ] + }, + "role": { + "type": [ "null", "string" ] + }, + "keyPosition": { + "type": [ "null", "integer" ], + "minimum": 0 + }, + "default": { + "type": [ "null", "string" ] + }, + "links": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/link" + }, + "annotations": { + "type": [ "null", "array" ], + "items": { + "type": [ "integer" ], + "minimum": 0 + } + }, + "values": { + "type": "array", + "items": { + "type": "object", + "required": [ "id" ], + "properties": { + "id": { + "type": "string", + "pattern": "[A-Za-z0-9_@$-]+" + }, + "name": { + "type": [ "null", "string" ] + }, + "description": { + "type": [ "null", "string" ] + }, + "start": { + "type": [ "null", "string" ], + "format": "date-time" + }, + "end": { + "type": [ "null", "string" ], + "format": "date-time" + }, + "links": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/link" + } + }, + "annotations": { + "type": [ "null", "array" ], + "items": { + "type": [ "integer" ], + "minimum": 0 + } + } + } + }, + "minItems": 0, + "uniqueItems": true + } + } + }, + "dataSet": { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ "Information", "Append", "Replace", "Delete" ] + }, + "reportingBegin": { + "type": [ "null", "string" ] + }, + "reportingEnd": { + "type": [ "null", "string" ] + }, + "validFrom": { + "type": [ "null", "string" ], + "format": "date-time" + }, + "validTo": { + "type": [ "null", "string" ], + "format": "date-time" + }, + "publicationYear": { + "type": [ "null", "string" ] + }, + "publicationPeriod": { + "type": [ "null", "string" ] + }, + "annotations": { + "type": [ "null", "array" ], + "items": { + "type": [ "integer" ], + "minimum": 0 + } + }, + "attributes": { + "type": [ "null", "array" ], + "items": { + "type": [ "null", "integer" ], + "minimum": 0 + } + }, + "observations": { + "type": [ "null", "object" ], + "patternProperties": { + "^[0-9]+(:[0-9]+)*$": { + "type": "array", + "items": { + "type": [ "null", "number" ] + } + } + }, + "additionalProperties": false + }, + "series": { + "type": [ "null", "object" ], + "patternProperties": { + "^[0-9]+(:[0-9]+)*$": { + "type": "object", + "properties": { + "annotations": { + "type": [ "null", "array" ], + "items": { + "type": [ "integer" ], + "minimum": 0 + } + }, + "attributes": { + "type": [ "null", "array" ], + "items": { + "type": [ "null", "integer" ], + "minimum": 0 + } + }, + "observations": { + "type": "object", + "patternProperties": { + "^[0-9]+(:[0-9]+)*$": { + "type": "array", + "items": { + "type": [ "null", "number" ] + } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "links": { + "type": [ "null", "array" ], + "items": { + "$ref": "#/definitions/link" + } + } + } + } + } + } From 56cd8e4bb27f12458c40edd35d8bbbe90700cbd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 1 Dec 2017 13:23:18 +0100 Subject: [PATCH 067/161] Update and rename data-message/tools/schemas/sdmx-json-data-schema.json to data-message/tools/schemas/1.0/sdmx-json-data-schema.json Implementation of solution for #30 (regular expression validation) Also corrected bugs --- .../schemas/1.0/sdmx-json-data-schema.json | 658 ++++++++++++++++++ .../tools/schemas/sdmx-json-data-schema.json | 447 ------------ 2 files changed, 658 insertions(+), 447 deletions(-) create mode 100644 data-message/tools/schemas/1.0/sdmx-json-data-schema.json delete mode 100644 data-message/tools/schemas/sdmx-json-data-schema.json diff --git a/data-message/tools/schemas/1.0/sdmx-json-data-schema.json b/data-message/tools/schemas/1.0/sdmx-json-data-schema.json new file mode 100644 index 0000000..20c3aa7 --- /dev/null +++ b/data-message/tools/schemas/1.0/sdmx-json-data-schema.json @@ -0,0 +1,658 @@ +{ + "id": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/develop/data-message/tools/schemas/1.0/sdmx-json-data-schema.json", + "$schema": "http://json-schema.org/schema#", + "description": "Schema for SDMX-JSON data message", + "type": "object", + "properties": { + "meta": {"$ref": "#/definitions/meta"}, + "data": { + "type": "object", + "properties": { + "structure": {"$ref": "#/definitions/structure"}, + "dataSets": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/dataSet"} + } + } + }, + "errors": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/error"} + } + }, + "definitions": { + "meta": { + "type": "object", + "required": [ + "id", + "prepared", + "sender" + ], + "properties": { + "schema": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9_@$-]+$" + }, + "test": {"type": [ + "null", + "boolean" + ]}, + "prepared": { + "type": "string", + "format": "date-time" + }, + "content-language": {"type": [ + "null", + "string" + ]}, + "lang": {"type": [ + "null", + "string" + ]}, + "sender": {"$ref": "#/definitions/party"}, + "receiver": {"$ref": "#/definitions/party"}, + "links": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/link"} + } + } + }, + "party": { + "type": "object", + "required": ["id"], + "properties": { + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9_@$-]+$" + }, + "name": {"type": [ + "null", + "string" + ]}, + "contact": { + "type": [ + "null", + "array" + ], + "items": { + "type": "object", + "required": ["name"], + "properties": { + "name": {"type": "string"}, + "department": {"type": [ + "null", + "string" + ]}, + "role": {"type": [ + "null", + "string" + ]}, + "telephone": { + "type": [ + "null", + "array" + ], + "items": {"type": "string"} + }, + "fax": { + "type": [ + "null", + "array" + ], + "items": {"type": "string"} + }, + "uri": { + "type": [ + "null", + "array" + ], + "items": { + "type": "string", + "format": "uri" + } + }, + "email": { + "type": [ + "null", + "array" + ], + "items": { + "type": "string", + "format": "email" + } + } + } + } + } + } + }, + "error": { + "type": "object", + "required": ["code"], + "properties": { + "code": {"type": "number"}, + "title": {"type": [ + "null", + "string" + ]}, + "detail": {"type": [ + "null", + "string" + ]}, + "links": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/link"} + } + } + }, + "link": { + "type": "object", + "required": [ + "href", + "rel" + ], + "properties": { + "href": { + "type": "string", + "format": "uri" + }, + "rel": {"type": "string"}, + "title": {"type": [ + "null", + "string" + ]}, + "type": {"type": [ + "null", + "string" + ]}, + "hreflang": {"type": [ + "null", + "string" + ]} + } + }, + "structure": { + "type": [ + "null", + "object" + ], + "required": ["dimensions"], + "properties": { + "links": { + "type": "array", + "items": {"$ref": "#/definitions/link"} + }, + "name": {"type": [ + "null", + "string" + ]}, + "description": {"type": [ + "null", + "string" + ]}, + "dimensions": { + "type": "object", + "properties": { + "dataSet": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/dimension"}, + "uniqueItems": true + }, + "series": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/dimension"}, + "uniqueItems": true + }, + "observation": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/dimension"}, + "uniqueItems": true + } + } + }, + "attributes": { + "type": "object", + "properties": { + "dataSet": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/attribute"}, + "uniqueItems": true + }, + "series": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/attribute"}, + "uniqueItems": true + }, + "observation": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/attribute"}, + "uniqueItems": true + } + } + }, + "annotations": { + "type": [ + "null", + "array" + ], + "items": { + "type": "object", + "properties": { + "title": {"type": [ + "null", + "string" + ]}, + "type": {"type": [ + "null", + "string" + ]}, + "text": {"type": [ + "null", + "string" + ]}, + "id": { + "type": [ + "null", + "string" + ], + "pattern": "^[A-Za-z0-9_@$-]+$" + }, + "links": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/link"} + } + } + } + } + } + }, + "dimension": { + "type": "object", + "required": [ + "id", + "keyPosition", + "values" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[A-Za-z][A-Za-z0-9_-]*$" + }, + "name": {"type": [ + "null", + "string" + ]}, + "description": {"type": [ + "null", + "string" + ]}, + "role": { + "type": [ + "null", + "string" + ], + "pattern": "^[A-Za-z][A-Za-z0-9_-]*$" + }, + "keyPosition": { + "type": [ + "null", + "integer" + ], + "minimum": 0 + }, + "default": {"type": [ + "null", + "string" + ]}, + "links": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/link"} + }, + "annotations": { + "type": [ + "null", + "array" + ], + "items": { + "type": ["integer"], + "minimum": 0 + } + }, + "values": {"$ref": "#/definitions/values"} + } + }, + "attribute": { + "type": "object", + "required": [ + "id", + "values" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[A-Za-z][A-Za-z0-9_-]*$" + }, + "name": {"type": [ + "null", + "string" + ]}, + "description": {"type": [ + "null", + "string" + ]}, + "role": { + "type": [ + "null", + "string" + ], + "pattern": "^[A-Za-z][A-Za-z0-9_-]*$" + }, + "keyPosition": {"not": {}}, + "default": {"type": [ + "null", + "string" + ]}, + "links": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/link"} + }, + "annotations": { + "type": [ + "null", + "array" + ], + "items": { + "type": ["integer"], + "minimum": 0 + } + }, + "values": {"$ref": "#/definitions/attrvalues"} + } + }, + "values": { + "type": "array", + "items": { + "type": "object", + "required": ["id"], + "properties": { + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9_@$-]+$" + }, + "name": {"type": [ + "null", + "string" + ]}, + "description": {"type": [ + "null", + "string" + ]}, + "start": { + "type": [ + "null", + "string" + ], + "format": "date-time" + }, + "end": { + "type": [ + "null", + "string" + ], + "format": "date-time" + }, + "links": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/link"} + }, + "annotations": { + "type": [ + "null", + "array" + ], + "items": { + "type": ["integer"], + "minimum": 0 + } + } + } + }, + "minItems": 0, + "uniqueItems": true + }, + "attrvalues": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9_@$-]+$" + }, + "name": {"type": [ + "null", + "string" + ]}, + "description": {"type": [ + "null", + "string" + ]}, + "start": { + "type": [ + "null", + "string" + ], + "format": "date-time" + }, + "end": { + "type": [ + "null", + "string" + ], + "format": "date-time" + }, + "links": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/link"} + }, + "annotations": { + "type": [ + "null", + "array" + ], + "items": { + "type": ["integer"], + "minimum": 0 + } + } + } + }, + "minItems": 0, + "uniqueItems": true + }, + "dataSet": { + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "Information", + "Append", + "Replace", + "Delete" + ] + }, + "reportingBegin": {"type": [ + "null", + "string" + ]}, + "reportingEnd": {"type": [ + "null", + "string" + ]}, + "validFrom": { + "type": [ + "null", + "string" + ], + "format": "date-time" + }, + "validTo": { + "type": [ + "null", + "string" + ], + "format": "date-time" + }, + "publicationYear": {"type": [ + "null", + "string" + ]}, + "publicationPeriod": {"type": [ + "null", + "string" + ]}, + "annotations": { + "type": [ + "null", + "array" + ], + "items": { + "type": ["integer"], + "minimum": 0 + } + }, + "attributes": { + "type": [ + "null", + "array" + ], + "items": { + "type": [ + "null", + "integer" + ], + "minimum": 0 + } + }, + "observations": { + "type": [ + "null", + "object" + ], + "patternProperties": {"^[0-9]+(:[0-9]+)*$": { + "type": "array", + "items": {"type": [ + "null", + "number" + ]} + }}, + "additionalProperties": false + }, + "series": { + "type": [ + "null", + "object" + ], + "patternProperties": {"^[0-9]+(:[0-9]+)*$": { + "type": "object", + "properties": { + "annotations": { + "type": [ + "null", + "array" + ], + "items": { + "type": ["integer"], + "minimum": 0 + } + }, + "attributes": { + "type": [ + "null", + "array" + ], + "items": { + "type": [ + "null", + "integer" + ], + "minimum": 0 + } + }, + "observations": { + "type": "object", + "patternProperties": {"^[0-9]+(:[0-9]+)*$": { + "type": "array", + "items": {"type": [ + "null", + "number" + ]} + }}, + "additionalProperties": false + } + }, + "additionalProperties": false + }}, + "additionalProperties": false + }, + "links": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/link"} + } + } + } + } +} diff --git a/data-message/tools/schemas/sdmx-json-data-schema.json b/data-message/tools/schemas/sdmx-json-data-schema.json deleted file mode 100644 index 5dc7c3e..0000000 --- a/data-message/tools/schemas/sdmx-json-data-schema.json +++ /dev/null @@ -1,447 +0,0 @@ - { - "id": "http://sdmx.org/data-message/v0.9.0/schema#", - "$schema" : "http://json-schema.org/draft-05/schema#", - "description": "Schema for SDMX-JSON data message", - "type": "object", - "properties": { - "meta": { - "$ref": "#/definitions/meta" - }, - "data": { - "structure": { - "$ref": "#/definitions/structure" - }, - "dataSets": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/dataSet" - } - } - }, - "errors": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/error" - } - } - }, - "definitions": { - "meta": { - "type": "object", - "required": [ "id", "prepared", "sender" ], - "properties": { - "schema": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "string", - "pattern": "[A-Za-z0-9_@$-]+" - }, - "test": { - "type": [ "null", "boolean" ] - }, - "prepared": { - "type": "string", - "format": "date-time" - }, - "content-language": { - "type": [ "null", "string" ] - }, - "lang": { - "type": [ "null", "string" ] - }, - "sender": { - "$ref": "#/definitions/party" - }, - "receiver": { - "$ref": "#/definitions/party" - }, - "links": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/link" - } - } - } - }, - "party": { - "type": "object", - "required": [ "id" ], - "properties": { - "id": { - "type": "string", - "pattern": "[A-Za-z0-9_@$-]+" - }, - "name": { - "type": [ "null", "string" ] - }, - "contact": { - "type": [ "null", "array" ], - "items": { - "type": "object", - "required": [ "name" ], - "properties": { - "name": { - "type": "string" - }, - "department": { - "type": [ "null", "string" ] - }, - "role": { - "type": [ "null", "string" ] - }, - "telephone": { - "type": [ "null", "array" ], - "items": { - "type": "string" - } - }, - "fax": { - "type": [ "null", "array" ], - "items": { - "type": "string" - } - }, - "uri": { - "type": [ "null", "array" ], - "items": { - "type": "string", - "format": "uri" - } - }, - "email": { - "type": [ "null", "array" ], - "items": { - "type": "string", - "format": "email" - } - } - } - } - } - } - }, - "error": { - "type": "object", - "required": [ "code" ], - "properties": { - "code": { - "type": "number" - }, - "title": { - "type": [ "null", "string" ] - }, - "detail": { - "type": [ "null", "string" ] - }, - "links": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/link" - } - } - } - }, - "link": { - "type": "object", - "required": [ "href", "rel" ], - "properties": { - "href": { - "type": "string", - "format": "uri" - }, - "rel": { - "type": "string" - }, - "title": { - "type": [ "null", "string" ] - }, - "type": { - "type": [ "null", "string" ] - }, - "hreflang": { - "type": [ "null", "string" ] - } - } - }, - "structure": { - "type": [ "null", "object" ], - "required": [ "dimensions" ], - "properties": { - "links": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/link" - } - }, - "name": { - "type": [ "null", "string" ] - }, - "description": { - "type": [ "null", "string" ] - }, - "dimensions": { - "type": "object", - "properties": { - "dataSet": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/component" - }, - "uniqueItems": true - }, - "series": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/component" - }, - "uniqueItems": true - }, - "observation": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/component" - }, - "uniqueItems": true - } - } - }, - "attributes": { - "type": "object", - "properties": { - "dataSet": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/component" - }, - "uniqueItems": true - }, - "series": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/component" - }, - "uniqueItems": true - }, - "observation": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/component" - }, - "uniqueItems": true - } - } - }, - "annotations": { - "type": [ "null", "array" ], - "items": { - "type": "object", - "properties": { - "title": { - "type": [ "null", "string" ] - }, - "type": { - "type": [ "null", "string" ] - }, - "text": { - "type": [ "null", "string" ] - }, - "id": { - "type": [ "null", "string" ], - "items": { - "pattern": "[A-Za-z0-9_@$-]+" - } - }, - "links": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/link" - } - } - } - } - } - } - }, - "component": { - "type": "object", - "required": [ "id", "values" ], - "properties": { - "id": { - "type": "string", - "pattern": "[A-Za-z][A-Za-z0-9_-]*" - }, - "name": { - "type": [ "null", "string" ] - }, - "description": { - "type": [ "null", "string" ] - }, - "role": { - "type": [ "null", "string" ] - }, - "keyPosition": { - "type": [ "null", "integer" ], - "minimum": 0 - }, - "default": { - "type": [ "null", "string" ] - }, - "links": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/link" - }, - "annotations": { - "type": [ "null", "array" ], - "items": { - "type": [ "integer" ], - "minimum": 0 - } - }, - "values": { - "type": "array", - "items": { - "type": "object", - "required": [ "id" ], - "properties": { - "id": { - "type": "string", - "pattern": "[A-Za-z0-9_@$-]+" - }, - "name": { - "type": [ "null", "string" ] - }, - "description": { - "type": [ "null", "string" ] - }, - "start": { - "type": [ "null", "string" ], - "format": "date-time" - }, - "end": { - "type": [ "null", "string" ], - "format": "date-time" - }, - "links": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/link" - } - }, - "annotations": { - "type": [ "null", "array" ], - "items": { - "type": [ "integer" ], - "minimum": 0 - } - } - } - }, - "minItems": 0, - "uniqueItems": true - } - } - }, - "dataSet": { - "type": "object", - "properties": { - "action": { - "type": "string", - "enum": [ "Information", "Append", "Replace", "Delete" ] - }, - "reportingBegin": { - "type": [ "null", "string" ] - }, - "reportingEnd": { - "type": [ "null", "string" ] - }, - "validFrom": { - "type": [ "null", "string" ], - "format": "date-time" - }, - "validTo": { - "type": [ "null", "string" ], - "format": "date-time" - }, - "publicationYear": { - "type": [ "null", "string" ] - }, - "publicationPeriod": { - "type": [ "null", "string" ] - }, - "annotations": { - "type": [ "null", "array" ], - "items": { - "type": [ "integer" ], - "minimum": 0 - } - }, - "attributes": { - "type": [ "null", "array" ], - "items": { - "type": [ "null", "integer" ], - "minimum": 0 - } - }, - "observations": { - "type": [ "null", "object" ], - "patternProperties": { - "^[0-9]+(:[0-9]+)*$": { - "type": "array", - "items": { - "type": [ "null", "number" ] - } - } - }, - "additionalProperties": false - }, - "series": { - "type": [ "null", "object" ], - "patternProperties": { - "^[0-9]+(:[0-9]+)*$": { - "type": "object", - "properties": { - "annotations": { - "type": [ "null", "array" ], - "items": { - "type": [ "integer" ], - "minimum": 0 - } - }, - "attributes": { - "type": [ "null", "array" ], - "items": { - "type": [ "null", "integer" ], - "minimum": 0 - } - }, - "observations": { - "type": "object", - "patternProperties": { - "^[0-9]+(:[0-9]+)*$": { - "type": "array", - "items": { - "type": [ "null", "number" ] - } - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false - }, - "links": { - "type": [ "null", "array" ], - "items": { - "$ref": "#/definitions/link" - } - } - } - } - } - } From c74866a3e80e81210aef7eeff67a315843f80b4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 1 Dec 2017 13:29:18 +0100 Subject: [PATCH 068/161] Update exr-action-delete.json Bug correction for #46 --- data-message/samples/exr/exr-action-delete.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data-message/samples/exr/exr-action-delete.json b/data-message/samples/exr/exr-action-delete.json index 45fb737..4fcfc15 100644 --- a/data-message/samples/exr/exr-action-delete.json +++ b/data-message/samples/exr/exr-action-delete.json @@ -72,6 +72,7 @@ "id": "TIME_PERIOD", "name": "Time period or range", "role": "TIME_PERIOD", + "keyPosition": 5, "values": [ { "id": "2013-01-18", From 87421cf5299311bac3227cb91cc438f1926bafc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 1 Dec 2017 13:31:18 +0100 Subject: [PATCH 069/161] Update exr-cross-section.json Bug correction for #46 --- data-message/samples/exr/exr-cross-section.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data-message/samples/exr/exr-cross-section.json b/data-message/samples/exr/exr-cross-section.json index 975c580..2d895f4 100644 --- a/data-message/samples/exr/exr-cross-section.json +++ b/data-message/samples/exr/exr-cross-section.json @@ -72,6 +72,7 @@ "id": "TIME_PERIOD", "name": "Time period or range", "role": "TIME_PERIOD", + "keyPosition": 5, "values": [ { "id": "2013-01-18", From 84c35455b9c0ca57edde1a87c1b389dc41783440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 1 Dec 2017 13:32:53 +0100 Subject: [PATCH 070/161] Update exr-flat.json Bug correction for #46 --- data-message/samples/exr/exr-flat.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data-message/samples/exr/exr-flat.json b/data-message/samples/exr/exr-flat.json index cc50675..f052ba5 100644 --- a/data-message/samples/exr/exr-flat.json +++ b/data-message/samples/exr/exr-flat.json @@ -89,6 +89,7 @@ "id": "TIME_PERIOD", "name": "Time period or range", "role": "TIME_PERIOD", + "keyPosition": 5, "values": [ { "id": "2013-01-18", From fb9a60d87c15ea88bd4345754215274e201cdce1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 1 Dec 2017 13:34:55 +0100 Subject: [PATCH 071/161] Update exr-time-series.json Bug correction for #46 --- data-message/samples/exr/exr-time-series.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data-message/samples/exr/exr-time-series.json b/data-message/samples/exr/exr-time-series.json index c68df98..78b2dd1 100644 --- a/data-message/samples/exr/exr-time-series.json +++ b/data-message/samples/exr/exr-time-series.json @@ -87,6 +87,7 @@ "id": "TIME_PERIOD", "name": "Time period or range", "role": "TIME_PERIOD", + "keyPosition": 5, "values": [ { "id": "2013-01-18", From 506a07ed6c734c9b19a510579b5e68380a7c2564 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 1 Dec 2017 13:52:32 +0100 Subject: [PATCH 072/161] Update 3-full-example-with-comments.md Corrected bug for #46 --- .../docs/3-full-example-with-comments.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/data-message/docs/3-full-example-with-comments.md b/data-message/docs/3-full-example-with-comments.md index 2f60771..f7afcb2 100644 --- a/data-message/docs/3-full-example-with-comments.md +++ b/data-message/docs/3-full-example-with-comments.md @@ -46,7 +46,7 @@ "role": "role", "telephone": ["telephone"], "fax": ["fax"], - "uri": ["uri"], + "uri": ["http://sdmx.org"], "email": ["sdmx@xyz.org"] } ] @@ -118,7 +118,7 @@ "id": "CURRENCY_DENOM", "name": "Currency denominator", "description": "Description for the dimension", - "keyPosition": 3, + "keyPosition": 2, "values": [ { "id": "EUR", @@ -130,7 +130,7 @@ "id": "EXR_TYPE", "name": "Exchange rate type", "description": "Description for the dimension", - "keyPosition": 4, + "keyPosition": 3, "values": [ { "id": "SP00", @@ -142,7 +142,7 @@ "id": "EXR_SUFFIX", "name": "Series variation - EXR context", "description": "Description for the dimension", - "keyPosition": 5, + "keyPosition": 4, "values": [ { "id": "A", @@ -158,7 +158,7 @@ "id": "CURRENCY", "name": "Currency", "description": "Description for the dimension", - "keyPosition": 2, + "keyPosition": 1, "role": "unit", "values": [ { @@ -180,6 +180,7 @@ "name": "Time period or range", "description": "Description for the dimension", "role": "time", + "keyPosition": 5, "values": [ { "id": "2013-01-18", @@ -217,11 +218,10 @@ "values": [ { # id property is optional to allow for uncoded attributes - "id": null, "name": "New Zealand dollar (NZD)" }, { - "id": null, + # id property is optional to allow for uncoded attributes "name": "Russian rouble (RUB)" } ] @@ -256,7 +256,7 @@ "title": "AnnotationTitle provides a title for the annotation.", "type": "AnnotationType is used to distinguish between annotations.", "text": "AnnotationText contains the text of the annotation.", - "id": "Non-standard identification of an annotation.", + "id": "ANNOTATION01", "links": [ { "href": "http://www.myorg.org/ws/uri/for/this/annotation", From 1159cd0c6742e84fa18f1dcf06f12659a2254fe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 1 Dec 2017 13:57:20 +0100 Subject: [PATCH 073/161] Update sdmx-json-data-schema.json Corrected bug that prevented following feature: An attribute value of "null" can be used to reduce the message size by using the index of the attribute value in the data part of the message (instead of "null"). --- data-message/tools/schemas/1.0/sdmx-json-data-schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-message/tools/schemas/1.0/sdmx-json-data-schema.json b/data-message/tools/schemas/1.0/sdmx-json-data-schema.json index 20c3aa7..11651d9 100644 --- a/data-message/tools/schemas/1.0/sdmx-json-data-schema.json +++ b/data-message/tools/schemas/1.0/sdmx-json-data-schema.json @@ -469,7 +469,7 @@ "attrvalues": { "type": "array", "items": { - "type": "object", + "type": ["null", "object"], "properties": { "id": { "type": "string", From 9f0f10de8dad4d306e6b21b4052a7ad6a399dbd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 1 Dec 2017 14:11:47 +0100 Subject: [PATCH 074/161] Update sdmx-json-data-schema.json Undo previous change as it wasn't correct. --- data-message/tools/schemas/1.0/sdmx-json-data-schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data-message/tools/schemas/1.0/sdmx-json-data-schema.json b/data-message/tools/schemas/1.0/sdmx-json-data-schema.json index 11651d9..20c3aa7 100644 --- a/data-message/tools/schemas/1.0/sdmx-json-data-schema.json +++ b/data-message/tools/schemas/1.0/sdmx-json-data-schema.json @@ -469,7 +469,7 @@ "attrvalues": { "type": "array", "items": { - "type": ["null", "object"], + "type": "object", "properties": { "id": { "type": "string", From 0f107f8ab9efe1029196b0c4ebb517473063335f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Fri, 1 Dec 2017 14:15:35 +0100 Subject: [PATCH 075/161] Update 3-full-example-with-comments.md Bug correction for attribute value specification --- .../docs/3-full-example-with-comments.md | 648 +++++++++--------- 1 file changed, 310 insertions(+), 338 deletions(-) diff --git a/data-message/docs/3-full-example-with-comments.md b/data-message/docs/3-full-example-with-comments.md index f7afcb2..e76ca11 100644 --- a/data-message/docs/3-full-example-with-comments.md +++ b/data-message/docs/3-full-example-with-comments.md @@ -2,7 +2,7 @@ ```json { - "meta": { + "header": { # dynamically generated GUI "id": "62b5f19d-f1c9-495d-8446-a3661ed24753", @@ -13,15 +13,9 @@ # optional with default false "test": false, - # all languages used anywhere in the message for localisable elements - "content-language": "en, fr;q=0.1", - - # main language used in the message for localisable elements - "lang": "en", - "sender": { "id": "ECB", - "name": "Banque Centrale Européenne", + "name": "European Central Bank", "contact": [ { "name": "Statistics hotline", @@ -46,7 +40,7 @@ "role": "role", "telephone": ["telephone"], "fax": ["fax"], - "uri": ["http://sdmx.org"], + "uri": ["uri"], "email": ["sdmx@xyz.org"] } ] @@ -68,359 +62,337 @@ "title": "Invalid number of dimensions in parameter key" } ], - "data": { - "structure": { - - "links": [ - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", - "rel": "datastructure", - "title": "resolvable uri to datastructure" - }, - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/dataflow/ECB/EXR", - "rel": "dataflow", - "title": "resolvable uri to dataflow" - }, - { - "href": "https://sdw-wsrest.ecb.europa.eu/service/provisionagreement/ECB/PA_EXR", - "rel": "provisionagreement", - "title": "resolvable uri to provision agreement" - } - ], - - "name": "dataflow name", - "description": "dataflow description", - "dimensions": { - - # dataSet is used only if grouping of dimensions with single values - "dataSet": [ - { - "id": "FREQ", - "name": "Frequency", - "description": "Description for the dimension", - - # 0-based position of dimension in key in user request url - "keyPosition": 0, - - # restricted list of dimension and attribute roles (time, frequency, - # geo, unit, scalefactor, referenceperiod, ...) - "role": "frequency", - - "values": [ - { - "id": "D", - "name": "Daily" - } - ] - }, - { - "id": "CURRENCY_DENOM", - "name": "Currency denominator", - "description": "Description for the dimension", - "keyPosition": 2, - "values": [ - { - "id": "EUR", - "name": "Euro" - } - ] - }, - { - "id": "EXR_TYPE", - "name": "Exchange rate type", - "description": "Description for the dimension", - "keyPosition": 3, - "values": [ - { - "id": "SP00", - "name": "Spot rate" - } - ] - }, + "structure": { + + "links": [ + { + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/ECB_EXR1/1.0", + "rel": "datastructure", + "title": "resolvable uri to datastructure" + } + ], + + "name": "dataflow name", + "description": "dataflow description", + "dimensions": { + + # dataSet is used only if grouping of dimensions with single values + "dataSet": [ + { + "id": "FREQ", + "name": "Frequency", + "description": "Description for the dimension", + + # 0-based position of dimension in key in user request url + "keyPosition": 0, + + # restricted list of dimension and attribute roles (time, frequency, + # geo, unit, scalefactor, referenceperiod, ...) + "role": "frequency", + + "values": [ { - "id": "EXR_SUFFIX", - "name": "Series variation - EXR context", - "description": "Description for the dimension", - "keyPosition": 4, - "values": [ - { - "id": "A", - "name": "Average or standardised measure for given frequency" - } - ] + "id": "D", + "name": "Daily" } - ], - - # only if dimensionAtObservation <> allDimensions - "series": [ + ] + }, { + "id": "CURRENCY_DENOM", + "name": "Currency denominator", + "description": "Description for the dimension", + "keyPosition": 2, + "values": [ { - "id": "CURRENCY", - "name": "Currency", - "description": "Description for the dimension", - "keyPosition": 1, - "role": "unit", - "values": [ - { - "id": "NZD", - "name": "New Zealand dollar" - }, - { - "id": "RUB", - "name": "Russian rouble" - } - ] + "id": "EUR", + "name": "Euro" } - ], - - # only for dimensions used at observation level - "observation": [ + ] + }, { + "id": "EXR_TYPE", + "name": "Exchange rate type", + "description": "Description for the dimension", + "keyPosition": 3, + "values": [ { - "id": "TIME_PERIOD", - "name": "Time period or range", - "description": "Description for the dimension", - "role": "time", - "keyPosition": 5, - "values": [ - { - "id": "2013-01-18", - "name": "2013-01-18", - "start": "2013-01-18T00:00:00Z", - "end": "2013-01-18T23:59:59Z" - }, - { - "id": "2013-01-21", - "name": "2013-01-21", - "start": "2013-01-21T00:00:00Z", - "end": "2013-01-21T23:59:59Z" - } - ] + "id": "SP00", + "name": "Spot rate" } ] - }, - "attributes": { - - # only for attributes returned at dataset level - "dataSet": [], - - # only for attributes returned at series level - "series": [ + }, { + "id": "EXR_SUFFIX", + "name": "Series variation - EXR context", + "description": "Description for the dimension", + "keyPosition": 4, + "values": [ { - "id": "ID", - "name": "Attribute name", - "description": "Description for the attribute", - "role": null, - "default": null, - - # inclusion of attachment level and its format to be decided - # e.g. "attachment": [ true, true, true, true, true, true, false ], - - "values": [ - { - # id property is optional to allow for uncoded attributes - "name": "New Zealand dollar (NZD)" - }, - { - # id property is optional to allow for uncoded attributes - "name": "Russian rouble (RUB)" - } - ] + "id": "A", + "name": "Average or standardised measure for given frequency" } - ], - "observation": [ + ] + } + ], + + # only if dimensionAtObservation <> allDimensions + "series": [ + { + "id": "CURRENCY", + "name": "Currency", + "description": "Description for the dimension", + "keyPosition": 1, + "role": "unit", + "values": [ { - "id": "OBS_STATUS", - "name": "Observation status", - "description": "Description for the attribute", - "role": null, - - # optional - "default": "A", - - "values": [ - # a null attribute can be used to shorten the message by - # using O index later in message - null, - - { - "id": "A", - "name": "Normal value", - "description": "Normal value" - } - ] + "id": "NZD", + "name": "New Zealand dollar" + }, { + "id": "RUB", + "name": "Russian rouble" } ] - }, - "annotations": [ - { - "title": "AnnotationTitle provides a title for the annotation.", - "type": "AnnotationType is used to distinguish between annotations.", - "text": "AnnotationText contains the text of the annotation.", - "id": "ANNOTATION01", - "links": [ - { - "href": "http://www.myorg.org/ws/uri/for/this/annotation", - "rel": "description" - } - ] - } - ] - }, - "dataSets": [ + } + ], + + # only for dimensions used at observation level + "observation": [ { - "links": [ + "id": "TIME_PERIOD", + "name": "Time period or range", + "description": "Description for the dimension", + "keyPosition": 5, + "role": "time", + "values": [ { - "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/EXR/1.0", - "rel": "datastructure" - } - ], - - "action": "Information", - - # optional first time period in returned message - "reportingBegin": "2012-05-04", - - # optional last time period in returned message - "reportingEnd": "2012-06-01", - - # optional only for version history - "validFrom": "2012-01-01T10:00:00Z", - - # optional only for version history - "validTo": "2013-01-01T10:00:00Z", - - # optional only for publication release calendars - "publicationYear": "2005", - - # optional only for publication release calendars - "publicationPeriod": "2005-Q1", - - # optional as per annotations - "annotations": [0], - - # optional as per attributes at dataset level - "attributes": [0], - - # 1st alternative (only if series level - # (dimensionAtObservation <> allDimensions)) - - "series": { - "0": { - "annotations": [], - "attributes": [0], - "observations": { - "0": [1.5931, 0], - "1": [1.5925, 0] - } + "id": "2013-01-18", + "name": "2013-01-18", + "start": "2013-01-18T00:00:00Z", + "end": "2013-01-18T23:59:59Z" }, - "1": { - "annotations": [0], - "attributes": [1], - "observations": { - "0": [40.3426, 0], - "1": [40.3000, 0] - } + { + "id": "2013-01-21", + "name": "2013-01-21", + "start": "2013-01-21T00:00:00Z", + "end": "2013-01-21T23:59:59Z" } - } - }, - { - "action": "Information", - - # 2nd alternative (only if no series level - # (dimensionAtObservation == allDimensions)) - - "observations": { - "0:0": [1.5931, 0], - "0:1": [1.5925, 0], - "1:0": [40.3426, 0, 0], - "1:1": [40.3000, 0, 0] - } - }, - - # In case that the server does not group dimensions - # with single values at dataset level - - { - "action": "Information", - - # 1st alternative (only if series level - # (dimensionAtObservation <> allDimensions)) - - "series": { - "0:0:0:0:0": { - "annotations": [], - "attributes": [0], - "observations": { - "0": [1.5931, 0], - "1": [1.5925, 0] - } - }, - "0:0:0:0:1": { - "annotations": [0], - "attributes": [1], - "observations": { - "0": [40.3426, 0], - "1": [40.3000, 0] - } - } - } - }, + ] + } + ] + }, + "attributes": { + + # only for attributes returned at dataset level + "dataSet": [], + + # only for attributes returned at series level + "series": [ { - "action": "Information", - - # 2nd alternative (only if no series level - # (dimensionAtObservation == allDimensions)) - - "observations": { - "0:0:0:0:0:0": [1.5931, 0], - "0:0:0:0:0:1": [1.5925, 0], - "0:0:0:0:1:0": [40.3426, 0, 0], - "0:0:0:0:1:1": [40.3000, 0, 0] - } - }, - - # In case the client is using the detail parameter - # and the server supports it - + "id": "ID", + "name": "Attribute name", + "description": "Description for the attribute", + "role": null, + "default": null, + + # inclusion of attachment level and its format to be decided + # e.g. "attachment": [ true, true, true, true, true, true, false ], + + "values": [ + { + # id property is optional to allow for uncoded attributes + "id": null, + "name": "New Zealand dollar (NZD)" + }, + { + "id": null, + "name": "Russian rouble (RUB)" + } + ] + } + ], + "observation": [ { - "action": "Information", - - # Detail parameter: serieskeysonly. No observation values, - # attributes or annotations. - - "observations": { - "0:0": [], - "0:1": [], - "1:0": [], - "1:1": [] - } - }, + "id": "OBS_STATUS", + "name": "Observation status", + "description": "Description for the attribute", + "role": null, + + # optional + "default": "A", + + "values": [ + # an empty attribute can be used to shorten the message by + # using the index in the data part of the message instead of "null" + {}, + + { + "id": "A", + "name": "Normal value", + "description": "Normal value" + } + ] + } + ] + }, + "annotations": [ + { + "title": "AnnotationTitle provides a title for the annotation.", + "type": "AnnotationType is used to distinguish between annotations.", + "uri": "http://www.myorg.org/ws/uri/for/this/annotation", + "text": "AnnotationText contains the text of the annotation.", + "id": "Non-standard identification of an annotation." + } + ] + }, + "dataSets": [ + { + "links": [ { - "action": "Information", - - # Detail parameter: dataonly. No attributes or annotations. - + "href": "https://sdw-wsrest.ecb.europa.eu/service/datastructure/ECB/EXR/1.0", + "rel": "datastructure" + } + ], + + "action": "Information", + + # optional first time period in returned message + "reportingBegin": "2012-05-04", + + # optional last time period in returned message + "reportingEnd": "2012-06-01", + + # optional only for version history + "validFrom": "2012-01-01T10:00:00Z", + + # optional only for version history + "validTo": "2013-01-01T10:00:00Z", + + # optional only for publication release calendars + "publicationYear": "2005", + + # optional only for publication release calendars + "publicationPeriod": "2005-Q1", + + # optional as per annotations + "annotations": [0], + + # optional as per attributes at dataset level + "attributes": [0], + + # 1st alternative (only if series level + # (dimensionAtObservation <> allDimensions)) + + "series": { + "0": { + "annotations": [], + "attributes": [0], "observations": { - "0:0": [1.5931], - "0:1": [1.5925], - "1:0": [40.3426], - "1:1": [40.3000] + "0": [1.5931, 0], + "1": [1.5925, 0] } }, - { - "action": "Information", - - # Detail parameter: nodata. No observation values - # just attributes and annotations. - + "1": { + "annotations": [ 34 ], + "attributes": [1], "observations": { - "0:0": [0], - "0:1": [0], - "1:0": [0, 0], - "1:1": [0, 0] + "0": [40.3426, 0], + "1": [40.3000, 0] } } - ] - } + } + }, + { + "action": "Information", + + # 2nd alternative (only if no series level + # (dimensionAtObservation == allDimensions)) + + "observations": { + "0:0": [1.5931, 0], + "0:1": [1.5925, 0], + "1:0": [40.3426, 0], + "1:1": [40.3000, 0] + } + }, + + # In case that the server does not group dimensions + # with single values at dataset level + + { + "action": "Information", + + # 1st alternative (only if series level + # (dimensionAtObservation <> allDimensions)) + + "series": { + "0:0:0:0;0": { + "attributes": [0], + "observations": { + "0": [1.5931, 0], + "1": [1.5925, 0] + } + }, + "0:0:0:0;1": { + "attributes": [1], + "observations": { + "0": [40.3426, 0], + "1": [40.3000, 0] + } + } + } + }, + { + "action": "Information", + + # 2nd alternative (only if no series level + # (dimensionAtObservation == allDimensions)) + + "observations": { + "0:0:0:0:0:0": [1.5931, 0], + "0:0:0:0:0:1": [1.5925, 0], + "0:0:0:0:1:0": [40.3426, 0], + "0:0:0:0:1:1": [40.3000, 0] + } + }, + + # In case the client is using the detail parameter + # and the server supports it + + { + "action": "Information", + + # Detail parameter: serieskeysonly. No observation values, + # attributes or annotations. + + "observations": { + "0:0": [], + "0:1": [], + "1:0": [], + "1:1": [] + } + }, + { + "action": "Information", + + # Detail parameter: dataonly. No attributes or annotations. + + "observations": { + "0:0": [1.5931], + "0:1": [1.5925], + "1:0": [40.3426], + "1:1": [40.3000] + } + }, + { + "action": "Information", + + # Detail parameter: nodata. No observation values + # just attributes and annotations. + + "observations": { + "0:0": [0], + "0:1": [0], + "1:0": [0], + "1:1": [0] + } + } + ] } ``` From b961cf7d3895e2cc6e28742cf00ff6f27fc1dcb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Tue, 5 Dec 2017 19:24:35 +0100 Subject: [PATCH 076/161] Update 1-sdmx-json-field-guide.md Replaced resources and references with properties of one single Data object, one for each returned artefact. This will allow for a more in-depth content validation with a JSON schema. Using multiple languages. Changes not yet finished. --- .../docs/1-sdmx-json-field-guide.md | 456 +++++++++++------- 1 file changed, 280 insertions(+), 176 deletions(-) diff --git a/structure-message/docs/1-sdmx-json-field-guide.md b/structure-message/docs/1-sdmx-json-field-guide.md index 33110b1..1695083 100644 --- a/structure-message/docs/1-sdmx-json-field-guide.md +++ b/structure-message/docs/1-sdmx-json-field-guide.md @@ -12,142 +12,197 @@ Before we start, let's clarify a few more things about this guide: # Field Guide to SDMX-JSON Structure Message Objects -## Message +## message -Message is the top level object and it contains the requested resources and as well as the metadata needed to interpret those data. +Message is the top level object and it contains the requested information ("data") as well as the meta-information decribing the (technical) context of the message and, possibly, error information. -* header - *Object* *nullable*. Header contains basic technical information about the message, such as when it was prepared and who has sent it. -* resources - *Array* *nullable*. Provides a list of resource objects. That's where the requested resources will be. -* references - *Object* *nullable*. Collection of referenced resource objects. It contains the full information of referenced resources. The properties of the "references" object are the "urn" properties of the referenced resources. -* errors - *Array* *nullable*. When appropriate provides a list of error messages in addition to RESTful web services HTTP error status codes. +* meta - *Object* *optional*. A *[meta](#meta)* object that contains non-standard meta-information and basic technical information about the message, such as when it was prepared and who has sent it. +* data - *Object* *optional*. *[Data](#data)* contains the message's “primary data”. +* errors - *Array* *optional*. *Errors* field is an array of *[error](#error)* objects. When appropriate provides a list of error messages in addition to RESTful web services HTTP error status codes. -Example: - - { - "header": { - # header fields # - }, - "resources": [ - # resource objects # - ], - "references": { - # referenced resource objects # - }, - "errors": [ - # error messages # - ] - } +The members data and errors MUST NOT coexist in the same message. -## header - -*Object* *nullable*. Header contains basic technical information about the message, such as when it was prepared and who has sent it. +Example: -* id - *String*. *String*. Unique string that identifies the message for further references. -* test - *Boolean* *nullable*. Indicates whether the message is for test purposes or not. False for normal messages. + { + "meta": { + # meta object # + }, + "data": { + # data object # + }, + "errors": [ + { + # error object # + } + ] + } + +## meta + +*Object* *optional*. Used to include non-standard meta-information and basic technical information +about the message, such as when it was prepared and who has sent it. +Any members MAY be specified within `meta` objects. +* schema - *String* *optional*. Contains the URL to the schema allowing to validate the message. This also allows identifying the version of SDMX-JSON format used in this message. **Providing the link to the SDMX-JSON schema is recommended.** +* id - *String*. Unique string that identifies the message for further references. +* test - *Boolean* *optional*. Indicates whether the message is for test purposes or not. False for normal messages. * prepared - *String*. A timestamp indicating when the message was prepared. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. -* sender - *Object*. Information about the party that is transmitting the message. -* receiver - *Object* *nullable*. Information about the party that is receiving the message. This can be -useful if the WS requires authentication. -* links - *Array* *nullable*. A collection of links to additional resources for the header. +* content-language *String* *optional*. To indicate all languages used anywhere in the message for localized elements, and thus the languages of the intended audience, using the format defined for the http Content-Language response header. **The usage of this property is recommended.** +* lang *String* *optional*. To indicate the main language used in the message for localized elements, using the format defined for the html meta tag lang property. +* sender - *Object*. *[Sender](#sender)* contains information about the party that is transmitting the message. +* receiver - *Object* *optional*. *[Receiver](#receiver)* contains information about the party that is receiving the message. This can be useful if the WS requires authentication. +* links - *Array* *optional*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional external resources for the header. + Example: - "header": { - "id": "b1804c51-1ee3-45a9-bb75-795cd4e06489", - "prepared": "2016-01-03T12:54:12", - "test": false, - "sender": { - # sender object # - }, - "receiver": { - # receiver object # - }, - "links": [ - { - # link object # - } - ] - } + "meta": { + "schema": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/master/data-message/tools/schemas/sdmx-json-data-schema.json", + "copyright": "Copyright 2017 Statistics hotline", + "id": "b1804c51-1ee3-45a9-bb75-795cd4e06489", + "prepared": "2018-01-03T12:54:12", + "test": false, + "content-language": "en, fr-fr;q=0.8, fr;q=0.7", + "lang": "en", + "sender: { + # sender object # + }, + "receiver": { + # receiver object # + }, + "links": [ + { + # link object # + } + ] + } ### sender -*Object*. Information about the party that is transmitting the message. Sender contains the following fields: +*Object*. Information about the party that is transmitting the message. +Sender contains the following fields: * id - *String*. A unique identifier of the party. -* name - *String* *nullable*. A human-readable name of the sender. -* contact - *Array* *nullable*. Information on how the party can be contacted. +* name - *Object* *optional*. A list of human-readable localised *[names](#name)* of the sender. See the section on [localised strings](#localised-strings) on how the message deals with languages. +* contacts - *Array* *optional*. A collection of *[contacts](#contact)*. Example: - "sender": { - "id": "ECB", - "name": "European Central Bank", - "contact": [ - # contact details # - ] - } + "sender": { + "id": "ECB", + “name”: { + # name object # + }, + "contacts": [ + { + # contact objects # + } + ] + } + +#### name + +*Object* containing all returned localised names, one per object property: + +* One or more of: language tag according to [RFC 5646 documentation](https://tools.ietf.org/html/rfc5646#section-2.1) for specifying locals in HTTP - *String*. The localised name. + +See the section on [localised strings](#localised-strings) on how the message deals with languages. + +Example: + + { + "en": "This is an English name", + "en-GB": "This is a British name", + "fr": "C'est un nom français" + } #### contact -*Array* *nullable*. A collection of contact details. Each object in the collection may contain the following field: +*Object*. A collection of contact details. Each object in the collection +may contain the following field: -* name - *String*. The contact's name. -* department - *String* *nullable*. The organisational unit for the contact. -* role - *String* *nullable*. The responsibility of the contact. -* telephone - *Array* *nullable*. An array of telephone numbers for the contact. -* fax - *Array* *nullable*. An array of fax numbers for the contact person. -* uri - *Array* *nullable*. An array of uris. Each uri holds an information URL for the contact. -* X400 - *Array* *nullable*. An array of X400. Each X400 holds an X400 address of the contact. -* email - *Array* *nullable*. An array of email addresses for the contact person. +* name - *Object* *optional*. A list of human-readable localised *[names](#name)* of the contact. +* department - *Object* *optional*. A list of human-readable localised *[names](#name)* of the organisational structure for the contact. +* role - *String* *optional*. The localised name of the responsibility of the contact. +* telephone - *Array* *optional*. An array of telephone numbers for the contact. +* fax - *Array* *optional*. An array of fax numbers for the contact person. +* uri - *Array* *optional*. An array of uris. Each uri holds an information URL for the contact. +* email - *Array* *optional*. An array of email addresses for the contact person. + +See the section on [localised strings](#localised-strings) on how the message deals with languages. Example: - "contact": [ - { - "name": "Statistics hotline", - "department": "Statistics hotline", - "role": "Statistics hotline", - "telephone": [ "+00 0 00 00 00 00" ], - "fax": [ "+00 0 00 00 00 01" ], - "uri": [ "www.xyz.org" ], - "X400": [ "X400" ], - "email": [ "statistics@xyz.org" ] - } - ] + { + "name": { "en": "Statistics hotline" }, + "department": { "en": "Statistics hotline" }, + "role": "Statistics hotline", + "telephone": [ "+00 0 00 00 00 00" ], + "fax": [ "+00 0 00 00 00 01" ], + "uri": [ "www.xyz.org" ], + "email": [ "statistics@xyz.org" ] + } ### receiver -*Object* *nullable*. Information about the party that is receiving the message. This can be useful if the WS requires authentication. Receiver contains the same fields as [sender](#sender). +*Object* *optional*. Information about the party that is receiving the message. +This can be useful if the WS requires authentication. Receiver contains the +same fields as [sender](#sender). ### link -*Object* *nullable*. A link to an external resource. - -* href - *String*. Absolute or relative URL of the external resource. -* rel - *String*. Relationship of the object to the external resource. -* title - *String* *nullable*. A human-friendly description of the target link. -* type - *String* *nullable*. A hint about the type of representation returned by the link. - -See the section about the [linking mechanism](#linking-mechanism) for additional information. +See the section on [linking mechanism](#linking-mechanism) for all information on links. + +## data + +*Object* *optional*. Header contains the message's “primary data”. + +* *[Artefact type]* - *Array* *optional*. This field is an array of objects of one of the corresponding SDMX Information Model artefact types: *dataStructureDefinitions*, *metadataStructureDefinitions*, *categorySchemes*, *conceptSchemes*, *codelists*, *hierarchicalCodelists*, *organisationsSchemes*, *agencySchemes*, *dataProviderSchemes*, *dataConsumerSchemes*, *organisationUnitSchemes*, *dataflows*, *metadataflows*, *reportingTaxonomies*, *provisionAgreements*, *structureSets*, *processes*, *categorisations* and *constraints*. Each of the corresponding object properties is allowed at maximum one time. Contains the requested structural information according to the definition of this artefact. For more information, please see: + + * *[dataStructureDefinitions](#datastructuredefinitions)* + * *[metadataStructureDefinitions](#metadatastructuredefinitions)* + * *[categorySchemes](#categoryschemes)* + * *[conceptSchemes](#conceptschemes)* + * *[codelists](#codelists)* + * *[hierarchicalCodelists](#hierarchicalcodelists)* + * *[organisationsSchemes](#organisationsschemes)* + * *[agencySchemes](#agencyschemes)* + * *[dataProviderSchemes](#dataproviderschemes)* + * *[dataConsumerSchemes](#dataconsumerschemes)* + * *[organisationUnitSchemes](#organisationunitschemes)* + * *[dataflows](#dataflows)* + * *[metadataflows](#metadataflows)* + * *[reportingTaxonomies](#reportingtaxonomies)* + * *[provisionAgreements](#provisionagreements)* + * *[structureSets](#structuresets)* + * *[processes](#processes)* + * *[categorisations](#categorisations)* + * *[constraints](#constraints)* Example: - { - "href": "https://registry.sdmx.org/help.html", - "rel": "help", - "title": "Documentation about the SDMX Global Registry", - "type": "text/html" - } + "data": { + "dataStructureDefinitions": [ + { + # dataStructureDefinition object # + } + ], + "dataflows": [ + { + # dataflow object # + } + ] + } -## resource +### Common SDMX artefact properties -*Object* *nullable*. Provides the information about a requested resource. A resource can be any SDMX artifact that can be requested through a structure request: DataStructureDefinition, MetadataStructureDefinition, CategoryScheme, ConceptScheme, Codelist, HierarchicalCodelist, OrganisationsScheme, AgencyScheme, DataProviderScheme, DataConsumerScheme, OrganisationUnitScheme, Dataflow, Metadataflow, ReportingTaxonomy, ProvisionAgreement, StructureSet, Process, Categorisation, Constraint +All SDMX artefact types share the following common object properties: * id - *String*. Identifier for the resource. * uri - *String* *nullable*. The URL address of the resource. * urn - *String* *nullable*. URN - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behavior is desired, an annotation type should be defined which specifies the use of this field more exactly. -* name - *String* *nullable*. Resource name. -* description - *String* *nullable*. Description of the resource. +* name - *Object* *optional*. A list of human-readable localised *[names](#name)* of the resource. +* description - *Object* *optional*. A list of human-readable localised descriptions (see *[names](#name)*) of the resource. * agencyID - *String* *nullable*. ID of the agency maintaining this resource. * version - *String* *nullable*. Version of this resource. It is "1.0" by default. * validFrom - *String* *nullable*. A timestamp from which the version is valid. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. @@ -155,9 +210,8 @@ Example: * isFinal - *Boolean* *nullable*. True if this is the final version of the resource, otherwise False (draft version). * isExternalReference - *Boolean* *nullable*. If set to “true” it indicates that the content of the resource is held externally. * isPartial - *Boolean* *nullable*. If set to true, it indicates that the resource contains only a sub-set of items. Only for resources that inherit from the ItemScheme (CategoryScheme, Codelist, ConceptScheme, ReportingTaxonomy, and OrganisationScheme). -* links - *Array* *nullable*. A collection of links to additional resources for the resource. See the section [link](#link). +* links - *Array* *nullable*. A collection of links to additional resources for the resource. See the section *[link](#link)*. **It is recommended to systematically include a self-referencing hyperlink (link with "rel"="self").** * annotations - *Array* *nullable*. Provides a list of annotation objects. -* items - *Array* *nullable*. Provides a list of items if the resource inherits from the ItemScheme (CategoryScheme, Codelist, ConceptScheme, ReportingTaxonomy, and OrganisationScheme). Example: @@ -165,8 +219,8 @@ Example: "id": "MOBILE_NAVI_PUB", "uri": "HTTP://www.xyz.org/resource/0123456789", "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB.DISS:BSI_PUB(1.0)", - "name": "Economic concepts", - "description": "This is the description of Economic concepts", + "name": { "en": "Economic concepts" }, + "description": { "en": "This is the description of Economic concepts" }, "agencyID": "ECB.DISS", "version": "1.0", "validFrom": "2012-05-04", @@ -183,26 +237,18 @@ Example: { # annotation object# } - ], - "items": [ - { - # item object # - } - ], - "contact": [ - # contact details # ] } ### annotation -*Object* *nullable*. Provides all information about an annotation. +*Object* *optional*. Provides all information about an annotation. -* id - *String* *nullable*. ID provides a non-standard identification of an annotation. It can be used to disambiguate annotations. -* title - *String* *nullable*. Provides a title for the annotation. -* type - *String* *nullable*. Type is used to distinguish between annotations designed to support various uses. The types are not enumerated, and these can be freely specified by the creator of the annotations. The definitions and use of annotation types should be documented by their creator. -* url - *String* *nullable*. URI - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behavior is desired, an annotation type should be defined which specifies the use of this field more exactly. -* text - *String* *nullable*. Contains the text of the annotation. +* id - *String* *optional*. ID provides a non-standard identification of an annotation. It can be used to disambiguate annotations. +* title - *String* *optional*. A title for the annotation. +* type - *String* *optional*. Type is used to distinguish between annotations designed to support various uses. The types are not enumerated, and these can be freely specified by the creator of the annotations. The definitions and use of annotation types should be documented by their creator. +* url - *String* *optional*. URI - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behavior is desired, an annotation type should be defined which specifies the use of this field more exactly. +* text - *Object* *optional*. A list of human-readable localised texts (see *[names](#name)*) of the annotation. Example: @@ -211,21 +257,38 @@ Example: "title": "Sample annotation", "type": "reference", "url": "http://sample.org/annotations/74747", - "text": "Sample annotation text" + "text": { "en": "Sample annotation text" } + } + +### Common property of SDMX artefacts of base type "ItemScheme" + +All SDMX artefacts of base type "ItemScheme" (CategoryScheme, Codelist, ConceptScheme, ReportingTaxonomy, and OrganisationScheme) share the following common object property: + +* items - *Array* *optional*. Provides a list of items if the resource inherits from the ItemScheme . + +Example: + + { + "id": "ITEMSCHEME_EXAMPLE", + "items": [ + { + # item object # + } + ] } ### item -*Object* *nullable*. Item within the ItemScheme (if the resource is a CategoryScheme, Codelist, ConceptScheme, ReportingTaxonomy, or OrganisationScheme. +*Object* *optional*. Item within the ItemScheme (if the resource is a CategoryScheme, Codelist, ConceptScheme, ReportingTaxonomy, or OrganisationScheme. * id - *String*. Identifier for the item. -* uri - *String* *nullable*. The URL address of the item. -* urn - *String* *nullable*. URN - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behavior is desired, an annotation type should be defined which specifies the use of this field more exactly. -* name - *String* *nullable*. Item name. -* description - *String* *nullable*. Description of the item. -* links - *Array* *nullable*. A collection of links to additional resources for the item. See the section [link](#link). -* annotations - *Array* *nullable*. Provides a list of annotation objects. See the section [annotation](#annotation). -* items - *Array* *nullable*. Provides a list of child items of the item. +* uri - *String* *optional*. The URL address of the item. +* urn - *String* *optional*. URN - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behavior is desired, an annotation type should be defined which specifies the use of this field more exactly. +* name - *Object* *optional*. A list of human-readable localised *[names](#name)* of the item. +* description - *Object* *optional*. A list of human-readable localised description (see *[names](#name)*) of the item. +* links - *Array* *optional*. A collection of links to additional resources for the item. See the section [link](#link). +* annotations - *Array* *optional*. Provides a list of annotation objects. See the section [annotation](#annotation). +* items - *Array* *optional*. Provides a list of child items of the item. Example: @@ -233,8 +296,8 @@ Example: "id": "01", "uri": "http://www.xyz.org/resource/0123456789", "urn": "urn:sdmx:org.sdmx.infomodel.categoryscheme.Category=SDMX:SDMXStatSubMatDomainsWD1(1.0).1.1", - "name": "Population and migration", - "description": "Description for Population and migration", + "name": { "en": "Population and migration" }, + "description": { "en": "Description for Population and migration" }, "links":[ { # link object# @@ -252,69 +315,99 @@ Example: ] } -## reference +### dataStructureDefinitions -*Object* *nullable*. Provides full information about a referenced resource object. See [resource](#resource) for the structure of a resource object. +... -Example: +### metadataStructureDefinitions - { - "id": "FM", - "uri": "http://www.xyz.org/resource/0123456789", - "urn": "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:FM(1.0)", - "name": "Financial market data", - "description": "This is the description of Financial market data", - "agencyID": "ECB", - "version": "1.0", - "validFrom": "2012-05-04", - "validTo": "2015-05-04", - "isFinal": true, - "isExternalReference": false, - "isPartial": false, - "items": [ - { - # item object # - } - ], - "links": [ - { - # link object # - } - ], - "annotations": [ - { - # annotation object # - } - ] - } +... -References within the "references" object are accessible through the "urn" properties. +### categorySchemes -Example: +... - "references": { - "urn:sdmx:org.sdmx.infomodel.datastructure.Dataflow=ECB:FM(1.0)": - { - # referenced resource object # - } - } +### conceptSchemes + +... + +### codelists + +... + +### hierarchicalCodelists + +... + +### organisationsSchemes + +... + +### agencySchemes + +... + +### dataProviderSchemes + +... +### dataConsumerSchemes + +... + +### organisationUnitSchemes + +... + +### dataflows + +... + +### metadataflows + +... + +### reportingTaxonomies + +... + +### provisionAgreements + +... + +### structureSets + +... + +### processes + +... + +### categorisations + +... + +### constraints + +... ## error -*Object* *nullable*. Provides information about an error message. +*Object* *optional*. Used to provide a error message in addition to RESTful web services HTTP error status codes. The following pieces of information are to be provided: -* code - *number*. Provides a code number for the error message. Code numbers are defined in the SDMX 2.1 Web Services Guidelines. -* message - *string*. Provides the error message. Error messages are fully customizable by the service providers and should provide enough detail to ease understanding the reasons of the error. +* code - *Number*. Provides a code number for the error message. Code numbers are defined in the SDMX 2.1 Web Services Guidelines. +* title - *Object* *optional*. A list of short, human-readable localised summary (see *[names](#name)*) of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization. +* detail - *Object* *optional*. A list of human-readable localised explanations (see *[names](#name)*) specific to this occurrence of the problem. Like title, this field’s value can be localized. It is fully customizable by the service providers and should provide enough detail to ease understanding the reasons of the error. +* links - *Array* *optional*. *Links* field is an array of *[link](#link)* objects. If appropriate, a collection of links to additional external resources for the error. + +See the section on [localised strings](#localised-strings) on how the message deals with languages. Example: - "errors": [ - { - "code": 150, - "message": "Invalid number of dimensions in the key parameter" - } - ] + { + "code": 150, + "title": { "en": "Invalid number of items in the item parameter" } + } # Linking mechanism @@ -331,6 +424,17 @@ SDMX-JSON offers a list of predefined semantics, but implementers are free to ex The *URL* captured in the `href` attribute can be *absolute* or *relative*. If you intend to archive the SDMX-JSON message, it is recommended to use absolute URLs. +# Localised strings + +At least all language matches according to the user’s preferred language choices in the http Accept-Language header (or if that is not available than according to the system's default languages) are to be provided for each localisable message element. +In case that there is no such language match for a particular localisable element, it is optional to: + +- return the element in the system-default languages or alternatively to not return the element +- indicate available alternative languages for the element's maintainable artefact through links to underlying localised resources + +**It is recommended to indicate all languages used anywhere in the message for localised elements through http Content-Language response header (languages of the intended audience) and/or through a “content-language” property in the meta tag.** The main language used can be indicated through the “lang” property in the meta tag. + + # Security Considerations This document defines a response format for SDMX RESTful Web Services in JSON @@ -348,7 +452,7 @@ The snippet below shows an example of an `error` object, extended with a `wsCust "errors": [ { "code": 150, - "message": "Invalid number of dimensions in the key parameter", + "title": "Invalid number of items in the item parameter" "wsCustomErrorCode": 39272 } ] From 3096891c81e729ef3e989664a91eaa083b6d04b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Tue, 5 Dec 2017 19:28:45 +0100 Subject: [PATCH 077/161] Update 1-sdmx-json-field-guide.md More changes: Changed "nullable" to "optional" --- .../docs/1-sdmx-json-field-guide.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/structure-message/docs/1-sdmx-json-field-guide.md b/structure-message/docs/1-sdmx-json-field-guide.md index 1695083..31fc957 100644 --- a/structure-message/docs/1-sdmx-json-field-guide.md +++ b/structure-message/docs/1-sdmx-json-field-guide.md @@ -199,19 +199,19 @@ Example: All SDMX artefact types share the following common object properties: * id - *String*. Identifier for the resource. -* uri - *String* *nullable*. The URL address of the resource. -* urn - *String* *nullable*. URN - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behavior is desired, an annotation type should be defined which specifies the use of this field more exactly. +* uri - *String* *optional*. The URL address of the resource. +* urn - *String* *optional*. URN - typically a URL - which points to an external resource which may contain or supplement the annotation. If a specific behavior is desired, an annotation type should be defined which specifies the use of this field more exactly. * name - *Object* *optional*. A list of human-readable localised *[names](#name)* of the resource. * description - *Object* *optional*. A list of human-readable localised descriptions (see *[names](#name)*) of the resource. -* agencyID - *String* *nullable*. ID of the agency maintaining this resource. -* version - *String* *nullable*. Version of this resource. It is "1.0" by default. -* validFrom - *String* *nullable*. A timestamp from which the version is valid. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. -* validTo - *String* *nullable*. A timestamp from which the version is superceded. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. -* isFinal - *Boolean* *nullable*. True if this is the final version of the resource, otherwise False (draft version). +* agencyID - *String* *optional*. ID of the agency maintaining this resource. +* version - *String* *optional*. Version of this resource. It is "1.0" by default. +* validFrom - *String* *optional*. A timestamp from which the version is valid. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. +* validTo - *String* *optional*. A timestamp from which the version is superceded. Values must follow the ISO 8601 syntax for combined dates and times, including time zone. +* isFinal - *Boolean* *optional*. True if this is the final version of the resource, otherwise False (draft version). * isExternalReference - *Boolean* *nullable*. If set to “true” it indicates that the content of the resource is held externally. -* isPartial - *Boolean* *nullable*. If set to true, it indicates that the resource contains only a sub-set of items. Only for resources that inherit from the ItemScheme (CategoryScheme, Codelist, ConceptScheme, ReportingTaxonomy, and OrganisationScheme). -* links - *Array* *nullable*. A collection of links to additional resources for the resource. See the section *[link](#link)*. **It is recommended to systematically include a self-referencing hyperlink (link with "rel"="self").** -* annotations - *Array* *nullable*. Provides a list of annotation objects. +* isPartial - *Boolean* *optional*. If set to true, it indicates that the resource contains only a sub-set of items. Only for resources that inherit from the ItemScheme (CategoryScheme, Codelist, ConceptScheme, ReportingTaxonomy, and OrganisationScheme). +* links - *Array* *optional*. A collection of links to additional resources for the resource. See the section *[link](#link)*. **It is recommended to systematically include a self-referencing hyperlink (link with "rel"="self").** +* annotations - *Array* *optional*. Provides a list of annotation objects. Example: From 187620df7cc8888519121061e47e7f847765f6ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jens=20Doss=C3=A9?= Date: Wed, 6 Dec 2017 12:12:35 +0100 Subject: [PATCH 078/161] Create sdmx-json-structure-schema.json First version, more changes to come --- .../1.0/sdmx-json-structure-schema.json | 252 ++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 structure-message/tools/schemas/1.0/sdmx-json-structure-schema.json diff --git a/structure-message/tools/schemas/1.0/sdmx-json-structure-schema.json b/structure-message/tools/schemas/1.0/sdmx-json-structure-schema.json new file mode 100644 index 0000000..deb80ab --- /dev/null +++ b/structure-message/tools/schemas/1.0/sdmx-json-structure-schema.json @@ -0,0 +1,252 @@ +{ + "id": "https://raw.githubusercontent.com/sdmx-twg/sdmx-json/develop/data-message/tools/schemas/1.0/sdmx-json-data-schema.json", + "$schema": "http://json-schema.org/schema#", + "description": "Schema for SDMX-JSON data message", + "type": "object", + "properties": { + "meta": {"$ref": "#/definitions/meta"}, + "data": { + "type": "object", + "properties": { + "dataStructureDefinitions": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/dataStructureDefinition"} + }, + "metadataStructureDefinitions": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/metadataStructureDefinition"} + }, + "categorySchemes": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/categorySchemes"} + }, + "conceptSchemes": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/conceptScheme"} + }, + "codelists": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/codelist"} + }, + "hierarchicalCodelists": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/hierarchicalCodelist"} + }, + "organisationsSchemes": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/organisationsScheme"} + }, + "agencySchemes": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/agencyScheme"} + }, + "dataProviderSchemes": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/dataProviderScheme"} + }, + "dataConsumerSchemes": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/dataConsumerScheme"} + }, + "organisationUnitSchemes": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/organisationUnitScheme"} + }, + "dataflows": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/dataflow"} + }, + "metadataflows": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/metadataflow"} + }, + "reportingTaxonomies": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/reportingTaxonomy"} + }, + "provisionAgreements": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/provisionAgreement"} + }, + "structureSets": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/structureSet"} + }, + "processes": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/process"} + }, + "categorisations": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/categorisation"} + }, + "constraints": { + "type": ["null", "array"], + "items": {"$ref": "#/definitions/constraint"} + }, + } + }, + "errors": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/error"} + } + }, + "definitions": { + "meta": { + "type": "object", + "required": [ + "id", + "prepared", + "sender" + ], + "properties": { + "schema": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9_@$-]+$" + }, + "test": {"type": [ + "null", + "boolean" + ]}, + "prepared": { + "type": "string", + "format": "date-time" + }, + "content-language": {"type": [ + "null", + "string" + ]}, + "lang": {"type": [ + "null", + "string" + ]}, + "sender": {"$ref": "#/definitions/party"}, + "receiver": {"$ref": "#/definitions/party"}, + "links": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/link"} + } + } + }, + "party": { + "type": "object", + "required": ["id"], + "properties": { + "id": { + "type": "string", + "pattern": "^[A-Za-z0-9_@$-]+$" + }, + "name": {"$ref": "#/definitions/name"}, + "contact": { + "type": [ + "null", + "array" + ], + "items": { + "type": "object", + "required": ["name"], + "properties": { + "name": {"$ref": "#/definitions/name"}, + "department": {"$ref": "#/definitions/name"}, + "role": {"type": [ + "null", + "string" + ]}, + "telephone": { + "type": [ + "null", + "array" + ], + "items": {"type": "string"} + }, + "fax": { + "type": [ + "null", + "array" + ], + "items": {"type": "string"} + }, + "uri": { + "type": [ + "null", + "array" + ], + "items": { + "type": "string", + "format": "uri" + } + }, + "email": { + "type": [ + "null", + "array" + ], + "items": { + "type": "string", + "format": "email" + } + } + } + } + } + } + }, + "error": { + "type": "object", + "required": ["code"], + "properties": { + "code": {"type": "number"}, + "title": {"$ref": "#/definitions/name"}, + "detail": {"$ref": "#/definitions/name"}, + "links": { + "type": [ + "null", + "array" + ], + "items": {"$ref": "#/definitions/link"} + } + } + }, + "link": { + "type": "object", + "required": [ + "href", + "rel" + ], + "properties": { + "href": { + "type": "string", + "format": "uri" + }, + "rel": {"type": "string"}, + "title": {"$ref": "#/definitions/name"}, + "type": {"type": [ + "null", + "string" + ]}, + "hreflang": {"type": [ + "null", + "string" + ]} + } + }, + "name": { + "type": ["null", "object"], + "patternProperties": { + "^((?(en-GB-oed|i-ami|i-bnn|i-default|i-enochian|i-hak|i-klingon|i-lux|i-mingo|i-navajo|i-pwn|i-tao|i-tay|i-tsu|sgn-BE-FR|sgn-BE-NL|sgn-CH-DE)|(art-lojban|cel-gaulish|no-bok|no-nyn|zh-guoyu|zh-hakka|zh-min|zh-min-nan|zh-xiang))|((?([A-Za-z]{2,3}(-(?[A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-(?