Eurostat のデータは、REST API経由でダウンロードできます。API の応答形式は、SDMX-ML 標準に従ってフォーマットされた XML ファイルです。libname
SAS では、非常に便利なことに、ステートメントとXML
orXMLv2
エンジンを使用して XML ファイルにアクセスできます。
現在、xmlv2
エンジンを使用して、データにアクセスするためautomap=
の を生成するオプションを使用しています。xmlmap
できます。ただし、結果として得られる SAS データ セットは非常に構造化されておらず、別のデータ セットをダウンロードすると、データ構造が変わる可能性があります。また、要求は、Eurostat が異なる XML ファイル内の各データベース項目に提供する DSD ファイルに依存する場合があります。
コードは次のとおりです。
%let path = /your/working/directory/;
filename map "&path.map.txt";
filename resp "&path.resp.txt";
proc http
URL="http://ec.europa.eu/eurostat/SDMX/diss-web/rest/data/cdh_e_fos/..PC.FOS1.BE/?startperiod=2005&endPeriod=2011"
METHOD="GET"
OUT=resp;
run;quit;
libname resp XMLv2 automap=REPLACE xmlmap=map;
proc datasets;
copy out=WORK in=resp;
run;quit;
上記のコードを使用すると、ダウンロードしたすべてのデータを WORK ライブラリに表示できます。その混乱。
別の時系列をダウンロードするには、Eurostat の説明に従って URLのパラメーターを変更します。
だからここに私の質問があります
xmlmap
データが適切に構造化された方法で保存されるように、DSD ファイルへの呼び出しから簡単に生成する方法はありますか?
SDMX-ML 標準は、ECB、Eurostat、OECD などの公的機関で広く使用されているため、誰かがデータベースへの要求を既に実装しているかどうか疑問に思っています。javaObject を使用するBanca Italiaのツールについて知っています。ただし、javaObject を使用しないで解決策があるのではないかと考えていました。