XML - статьи

Пример электронного документа в формате SDMX-ML


В заключение кратко рассмотрим основных конструкций языка SDMX-ML, для чего воспользуемся небольшим примером, входящим в состав пакета спецификаций языка SDMX-ML.

Статистические данные, приведенные в этом примере, это величины внешнего долга, подлежащие погашению, в млн. долларов США. Данные приводятся на каждый месяц на начало отчетного периода:



Отчетный период Данные
2000-01 3.14
2000-02 3.14
2000-03 4.29
2000-04 6.04
2000-05 5.18
2000-06 5.07
2000-07 3.13
2008-08 1.17
2000-09 1.14
2000-10 3.04
2000-11 1.14
2000-12 3.24

XML-код этого примера представлен в

Листинге 1.

Прежде всего стоит обратить внимание на объявления пространств имен, реализующее принцип модульности, о котором шла речь выше.

Корневой элемент <GenericData> используется для передачи данных относящихся к различным основных понятиям. В данном примере в элементе <GenericData> содержатся два сложенных элемента <Header> и <DataSet>. Остановимся на каждом из них.

Элемент первого уровня <Header> определяет заголовочные поля, некоторые из которых представлены в этом примере. Элемент <ID> описывает поток данных, которое в сочетании с указанием времени однозначно идентифицирует набор данных. Элемент <Test> показывает, является ли сообщение тестовым или нет. <Truncated> используется в сообщениях, которые генерируются в ответ на запрос (<Query>), и содержит значение true (истина) только в том случае, если ответ был сокращен в соответствии с требованиями, предъявляемыми к размеру и задаваемыми с помощью атрибута defaultLimit в сообщении запроса. Элементы <Name> и <Prepared> - указывают имя передачи и дату подготовки, соответственно, а <Sender> и <Receiver> несут информацию о передающей и получающей стороне. Элемент <DataSetAgency> содержит идентификатор/сокращение учреждения, хранящего набор данных, а <DataSetID> - идентификатор передаваемого набора данных. Значение элемента <DataSetAction> определяет, является ли данное сообщение обновлением (Update) или подразумевает удаление (Delete) - сообщение нельзя использовать с сообщением UtilityData. <Extracted> -это временная отметка из системы, предоставляющей данные. Наконец, <ReportingBegin> и <ReportingEnd> указывают начало и конец отрезка времени, к которому относится сообщение.

Элемент второго уровня <DataSet> включает одну или несколько групп, которые составляют передаваемый набор данных. Рассмотрим некоторые элементы, входящие в состав <DataSet>: <GroupKey>, <Attributes> и <Series>.

Элемент <GroupKey> содержит знания ключей (элементы <Value>); заметим, что все эти элементы, если они не являются групповыми символами, должны присутствовать и в элементе <Series>. <GroupKey> - необязательный элемент, однако если передаются элементы <Attributes> (т.е. документация - значения ключевых понятий), то <GroupKey> должен присутствовать в сообщении.

Элемент <Series> определяет структуру временного ряда и включает значения ключей (элемент <SeriesKey>), значения для всех атрибутов (элемент <Attributes>) и совокупность наблюдений (элемент <Obs>). Элемент <SeriesKey> описывает содержание ключа временного ряда, при этом для каждого невременного измерения должно быть передано значение (элемент <Value>), причем в том порядке, в котором во ключевом понятии определены измерения. Элемент <Obs> определяет структуру наблюдения - время (элемент <Time>) и значение (элемент <ObsValue>), а также значения для каждого атрибута (<Attributes>), назначенного ключевым понятием для наблюдения.



Содержание раздела