ГОСТ Р ИСОГГС 10303-26—2015
ляет второй атрибут языка EXPRESS и т. д.
Пример приведен в приложении С.З.
6.7 Отображение объявлений подтипов данных языка EXPRESS
В языке EXPRESS взаимосвязь между подтипами объектного типа данных по умолчанию заклю
чается в том. что они не являются взаимно исключающими, чему соответствует оператор ANDOR
языка EXPRESS. Экземпляры объектов языка EXPRESS, основанные на комбинации объектных ти
пов данных, называются сложными объектными типами данных. В данном случае отображение за
ключается в том. что для каждой комбинации, присутствующей в данном экземпляре, определены
составные типы данных HDF5. Эти составные типы данных трактуются так. как если бы они были
отображением объектных типов данных, непосредственно присутствующих в EXPRESS-схеме. Если
какой-либо объектный тип данных в комбинации является супертипом любого другого объектного
типа данных из той же комбинации, то идентификатор данного супертипа не присутствует в имени
именованного типа данных HDF5.
П римечание — Сказанное выше означает, что в имени именованного типа данных HDF5 присутствуют
только имена объектных типов данных самого нижнего уровня.
Относительное имя именованного типа данных HDF5 должно выглядеть следующим образом:
<schema_group_name> ■* " /" + <entity_id> + <+ <entity_id> ),
где имена входящих в комбинацию объектных типов данных (e n tity id) расположены в алфавит
ном порядке, а символ "+" является разделителем.
Атрибуты языка EXPRESS трактуются так. как если бы сложный тип данных являлся подтипом
всех объектных типов данных, входящих в комбинацию. В случае если унаследованные атрибуты
языка EXPRESS в подтипе данных имеют одинаковые имена, то либо с помощью обычного наследо
вания. либо с помощью переобъявления, переименовывающего данный атрибут, представление в
HDF5 данного атрибута в данном подтипе получает следующее имя:
<schema_group_name> + " /" + < e ntity_id> * ( "+" + <en tity_ id > ) + V " +
<er.tity_id> •» " ." •» < a ttrib u te _ id > .
Пример
-
Следующая EXPRESS-схема:
SCHEMA test;
ENTITY a;
name : STRING;
END_ENTITY;
ENTITY b SUBTYPE OF a;
age : INTEGER;
x :REAL;
END_ENTITY;
ENTITY c SUBTYPE OF a;
height : REAL;
x: BOOLEAN;
END_ENTITY;
END_SCHEMA;
приведет к появлению следующих имен в файле HDF5:
test/a
test/a/name
test/b
test/b/name
test/b/age
test/b/x
10