ГОСТ Р ИСО/ТС 10303-26—2015
Таблица 1 - Отображение типов данных языка EXPRESS на HDF5
П редставление a HOPS
Тип данны х языка
EXPR ESS
INTEGER
HDF5 Standard 8. 16. 32 или 64 bits. Big- или Little-
Endian
REAL
HDF5 IEEE Floating Pornt 32 или 64 bits. Big- или
Little-Endian
Пример - Исходные типы дан
ных API HDF5 (справочно)
Н5Т NATIVE IN?,
H5T_NATIVE_LONG,
Н6Т NATIVE~LLONG
Н5T_NATIVE_FLOAT,
H5T NATIVE DOUBLE,
H5T NATIVE LDOUBLE
BOOLEAN
<
-
LOGICAL
STRING
BINARY
NUMBER
HDF5 ENUM из nap
<string>:
i
BOOLEAN-TRUE: 1. BOOLEAN-FALSE:0
HDF5 ENUM из nap
<3tr^ng>:<inte
LOGICAL-TRUE: 1. LOGICAL-FALSE:!) и LOGICAL-
UNKNOWN: -1
H5T_STRING переменной длины
HDF5 OPAQUE, если задано FIXED или разряд
ность. иначе - HDF5 VARYING OPAQUE
Аналогично представлению типа данных REAL
языка EXPRESS
H5T_NATIVE_FLOAT,
H5T_NATIVE DOUBLE,
H5T NATIVE LDOUBLE
ENUMERATION
HDF5 ENUM из пар
<string>:<integer>,
где
string это
<schema_group_name>
+ Т +
<er.um name>
+
V
+
<enum literal>
-
Такое же кодирование для указанного типа данных языка EXPRESS может быть использовано
во всей совокупности данных, содержащихся в файле HDF5. В этом случае в совокупности данных
может быть использован необязательный атрибут для задания способа кодирования, который следу
ет использовать для указанного типа данных языка EXPRESS. В зависимости от типа данных
этот атрибут должен иметь следующее имя:
iso_10303_26_+ <data_type>
*■
encoding
Значением данного атрибута должен быть тип данных HDF5. используемый для кодирования
типа данных языка EXPRESS.
Пример- Атрибут iso_10303_26_real_encoding, имеющий значение "H5T_IEEE_F64LE”, указывает,
что все значения типа данных REAL языка EXPRESS из данной совокупности должны кодироваться
как Eight-byte, little-endian, IEEE floating point (восьмибайтовый код с плавающей запятой по IEEE,
начи ная с младшего байта).
Настоящий стандарт не требует использования какого-либо конкретного способа кодирования.
Для простых случаев способ кодирования, используемый по умолчанию, определяется следующим
образом:
- для представления типа данных INTEGER языка EXPRESS используется способ кодирования
HDF5 32 bits. Signed. Little-Endian (например.
H5?_NATIVE_L0NG
в API HDF5);
- для представления типов данных REAL и NUMBER языка EXPRESS используется способ ко
дирования HDF5 IEEE Floating Point 64 bits. Little-Endian (например.
H5T_ NATIVE_D0UBLL
в API
HDF5);
- для представления типа данных ENUMERATION языка EXPRESS используются целые числа
1. 2. 3 и тщ.
6.5 Отображение объявлений и спецификаций интерфейсов из EXPRESS-схемы
Конкретная EXPRESS-схема является контекстом для любого отображения и называется далее
контекстной схемой. Только объявления в контекстной схеме и объявления, видимые для данной
контекстной схемы через спецификации интерфейсов на языке EXPRESS, должны быть основой для
данных, определенных на языке EXPRESS.
Спецификации интерфейсов, объявленные в контекстной схеме, не отображаются на файл
HDF5. Единственным исключением является случай, когда существует конфликт имен и имя внешней
схемы требуется для разрешения данного конфликта. Для всех данных, записываемых в файл HDF5,
требуется, чтобы соответствующий им тип (или типы) данных также был записан в файл HDF5. По
этому для того, чтобы точно определить средства HDF5. используемые при кодировании совокупно
сти данных на языке EXPRESS, все параметры EXPRESS-схемы также записываются в файл HDF5.
Сама EXPRESS-схема и настоящий стандарт не требуют, чтобы закодированное представление всей
7