ГОСТ Р ИСО/ТС 10303-26—2015
’obj_ref_or_vlen". Второй элемент относится к типу данных H5T_STD_REF_OBJ и имеет имя
"objecWeference". Данный элемент не пуст в том случае, когда значением ”obj_ref_or_v!en* является 0.
и содержит ссылку на отдельный набор данных, в котором хранится агрегированная структура.
Третий элемент относится к типу данных H5T_VLEN и имеет имя "vlen_array”. Данный элемент не
пуст в том случае, когда значением "obj_ref_or_vlen" является 1. При этом данные типа H5T_VLEN
встроены в родительский составной тип данных.
6.9 Отображение определенных типов данных языка EXPRESS
6.9.1 Общие положения
Именованные типы данных HDF5. которые представляют определенные типы данных языка
EXPRESS, определены так, что они имеют родителя, являющегося представлением EXPRESS-
схемы. как определено в 6.5.
6.9.2 Отображение перечисляемых типов данных языка EXPRESS на HDF5
Перечисляемые типы данных языка EXPRESS отображаются так же. как и другие простые опре
деленные типы данных языка EXPRESS, которые отображаются на именованные типы данных HDF5.
Однако соответствующий тип данных HDF5 определен непосредственно как HDF5 ENUM. представ
ленный парой <string>:<unsigned integers где <string> представляет символическое имя. которому
должно быть задано значение в виде <enum_name> + V + <enum_literal>. Во второй редакции языка
EXPRESS был определен наращиваемый перечисляемый тип данных, следствием чего явилось от
сутствие упорядочения, которое могло бы быть связано со значениями элементов перечисляемого
типа данных. Поэтому ссылки должны делаться с использованием символического имени.
Пример
—
Отображение представленного ниже перечисляемого типа данных языка EXPRESS,
связанного с представлением схемы "s_encoding“, даст в результате именованный тип данных HDF5
“s_encoding/ahead_or_behind“ипарызначений("sjencoding/ahead_or_behind/ahead",0),
("s_encoding/ahead_or_behindJexact", 1) и Cs_encoding/ahead_or_behind/behind“, 2), представляющие
элементы перечисляемого типа данных языка EXPRESS, помня при этом, что целые числа О, 1 и 2 не
должны использоваться в качестве ссылок.
SCHEMA s;
TYPE ahead_or_behind * ENUMERATION OF
(ahead, exact, behind);
ENDJTYPE;
END_SCHEMA;
Для каждого наращиваемого перечисляемого типа данных языка EXPRESS любой возможный
элемент перечисления должен отображаться так. как если бы он был определен локально.
Пример
—
Следующие перечисляемые типы данных языка EXPRESS, связанные с представлени
ем схемы "s_encoding“:
SCHEMA s;
TYPE x « EXTENSIBLE ENUMERATION OF (a,b);
END_TYPE;
TYPE у в ENUMERATION BASED_ON x WITH(c,d);
END_TYPE;
TYPE
2
■ ENUMERATION BASED_ON x WITH(e,f);
ENDJTYPE;
END_SCHEMA;
в
результате отображения дадут следующие определения в HDF5:
- именованный тип данных HDF5 “s_encoding/x
".
заданный шестью парами ("s_encoding/x/a
",
0),
("s_encoding/x/b“, 1), ("sjencodingJx/c
",
2), (“sjencoding/x/d", 3), C’s_encoding/x/e", 4) и (“s_encoding/ x/f”, 5),
представляющими элементы перечисляемого типа данных "х” языка EXPRESS;
- именованный тип данных HDF5
"
sjencodingfy", заданный четырьмя парами ("s_encodingfy/a
”,
0), Cs_encoding/y/b“, 1), C’s_encoding/y/c", 2) и ("s_encodingfy/d
”,
3), представляющими элементы пере
числяемого типа данных "у" языка EXPRESS;
- именованный тип данных HDF5 "s_encoding/z
".
заданный четырьмя парами (“sjencodingh/a", 0),
("s_encoding/z/b", 1), ("s_encoding/z/e", 2) и ("s_encoding/y/r
.
3), представляющими элементы перечис
ляемого типа данных “г" языка EXPRESS.
Дополнительный пример приведен в С.4.
13