ГОСТ Р ИСО/ТС 10303-26—2015
кальное целое число, идентифицирующее экземпляр объекта языка EXPRESS в рамках набора дан
ных. содержащего полную совокупность экземпляров объектов языка EXPRESS, относящихся к кон
кретному объектному типу данных. Данное целое число не должно изменяться на протяжении всего
существования данного экземпляра объекта языка EXPRESS.
Информация о представляемом объектном типе данных языка EXPRESS должна содержать
информацию обо всех явно заданных атрибутах, включая все унаследованные явно заданные атри
буты. Для каждого явно заданного атрибута объектного типа данных языка EXPRESS, включая все
унаследованные явно заданные атрибуты, должно быть создано поле (или объект) HDF5. относящее
ся к составному типу данных HDF5, которое представляет этот объектный тип данных.
Именем любого члена составного типа данных HDF5, представляющего атрибут языка
EXPRESS, должно быть имя явно заданного атрибута языка EXPRESS, представленное символами
верхнего регистра.
Типом данных любого члена составного типа данных HDF5 является тип данных HDF5. соответ
ствующий области определения атрибута языка EXPRESS, как это установлено в 6.8.2 для простых
типов данных, в 6.10.4 для идентификаторов экземпляров объектов, в 6.8.3 для типов данных ARRAY и
в 6.8.4 для агрегированных типов данных.
Пример
—
Следующие объектные типы данных языка EXPRESS, относящиеся к представлению
схемы
"
s_encoding
*:
SCHEMA s;
ENTITY x;
name : STRING;
END_ENTITY;
ENTITY у SUBTYPE OF (x);
age : INTEGER,-
END_ENTITY;
END_SCHEMA;
приведут к следующим определениям HDF5:
-
именованный тип данных HDF5 "s_encoding/x“ определен одним полем HDF5 с именем
"s_encoding/x/name
-
именованный тип данных HDF5 "s_encoding/y“ определен двумя полями HDF5 с именами
"s_encoding/y/name" и "s_encoding/y/age".
Настоящий стандарт не определяет отображение для производных или инверсных атрибутов,
следовательно, они не должны присутствовать в соответствующем файле HDF5.
Примечание — Хотя в настоящем стандарте не определено представление производных или инверс
ных атрибутов, это не препятствует им присутствовать в файле HDF5. Кроме того, можно сохранить и даже
транслировать на язык программирования в файле HDF5 выражение, определяющее значение атрибута, и вы
числить данное значение, когда это потребуется.
В языке EXPRESS унаследованный атрибут может быть переобъявлен несколькими способами.
Обработка этих способов при отображении осуществляется следующим образом:
- заданные в явном виде атрибуты языка EXPRESS, которые переобъявляют унаследованные
атрибуты, отображаются на основе области определения атрибута в переобъявляющем подтипе
данных;
- производные атрибуты языка EXPRESS, являющиеся лереобъявлениями унаследованных
заданных в явном виде атрибутов, не присутствуют в составном типе данных HDF5. представляющем
подтип данных, в котором они переобъявлены;
- заданные в явном виде атрибуты языка EXPRESS, которые переименовывают переобъявлен-
ные унаследованные атрибуты, отображаются с использованием нового имени, определенного в
переобъявляющем подтипе данных.
Так как в HDF5 нет понятия отсутствующего значения данных, то для этого в составной тип дан
ных HDF5 вводится дополнительный член. Данный вспомогательный член является битовым обра
зом. полученным из соответствующего объектного типа данных языка EXPRESS, который определяет
состояние «1» или «0» (присутствует или отсутствует) для всех остальных членов составного
типа данных, за исключением поля номер 2. которое является обязательным полем. Данное поле
должно иметь тип данных H5TJNTEGER. Вспомогательный член должен быть первым в своем
составном типе данных и иметь имя *set_unset_bitmap”. Самый младший бит представляет первый
атрибут язы ка EXPRESS (второй член в составном типе данных, начиная с нулевого). Следующий
бит представ-
9