ГОСТ Р ИСОГГС 10303-26—2015
test/c
test/c/name
test/c/height
teat/c/x
test/b+c
teat/b+с/name
teat/b+c/age
teat/b+c/height
test/b+c/b.x
teat/b+c/c.x
6.8 Отображение атрибутов языка EXPRESS
6.8.1 Общие положения
Конкретные детали отображения явных атрибутов языка EXPRESS зависят от области опреде
ления атрибута и представлены в данном подразделе для всех областей определения.
6.8.2 Области определения простых типов данных
Для каждого явного атрибута языка EXPRESS, областью определения которого является про
стой. перечисляемый или выбираемый тип данных языка EXPRESS, либо определенный тип данных,
который сводится к простому или перечисляемому типу данных, определено поле HDF5 с единствен ным
значением, относящимся к типу данных HDF5 в соответствии с 6.4. 6.9.4. 6.9.2 и 6.9.3.2.
6.8.3 Представление значений типа данных ARRAY языка EXPRESS в HDF5
В настоящем стандарте определены два подхода к отображению атрибутов языка EXPRESS,
имеющих агрегированные значения:
a) в случае больших агрегированных экземпляров для представления данных используется от
дельный набор данных HDF5:
b
) в случае небольших агрегированных экземпляров для представления данных может быть ис
пользован тот же самый набор данных HDF5, который содержит диапазон объектов языка EXPRESS
(т.е. агрегированные экземпляры встраиваются в составной тип данных, представляющий экземпляр
родительского объекта языка EXPRESS).
Создание отдельного набора данных HDF5 с целью оптимизации доступа для небольших агре
гированных экземпляров не является необходимым. Встраивание агрегированного экземпляра в
представление родительского экземпляра позволяет избежать переполнения, вызванного многочис
ленными небольшими наборами данных HDF5. Решение о том. какой способ использовать (опреде
лить. является агрегированный экземпляр большим или нет), не определено в настоящем стандарте, а
оставлено на усмотрение пользователей.
П римечание — Сказанное выше означает, что программа, обрабатывающая экземпляры объектов
языка EXPRESS, имеющих атрибуты с агрегированными значениями, должна проверять определение типа дан
ных HDF5. представляющего экземпляр объекта языка EXPRESS, для того чтобы установить, определены ли
агрегированные данные в составном типе данных HDF5 как объектные ссылки HDF5 на наборы данных HDF5.
либо как встроенный массив HDF5 или тип данных VLEN.
Значение атрибута языка EXPRESS, которое классифицировано как большое агрегированное
значение, представляется как набор данных HDF5, в котором присутствует массив HDF5 или структу ра
данных VLEN, содержащий реальные данные. В HDF5 все элементы массива могут иметь один и тот же
тип данных HDF5. Кроме того, должны быть установлены число вложений массива (в терминах HDF5 это
называется «рангом» массива) и размерность для каждого вложенного массива. Ранг мас сива в HDF5
должен быть представлен целым числом, определяющим число вложений массива, а размерности в
HDF5 соответствуют числу элементов на каждом уровне. Массивы языка EXPRESS хранятся как
отдельные наборы данных, доступ к которым осуществляется с помощью ссылок на наборы данных
HDF5. Ссылка на набор данных HDF5 является значением, хранящимся в памяти для данного значения
атрибута языка EXPRESS, и с нее должна быть снята косвенность для того, чтобы прочитать элементы
массива.
Массивы могут содержать элементы, представляющие сброс или возврат в исходное состояние.
Поэтому элементы массива хранятся как небольшие составные типы данных, состоящие из двух элемен
тов. Первый элемент относится к типу данных H5T_BlTFIELD и имеет имя •’set_unset_array_element’.
Второй элемент имеет имя "value", и он может относиться к любому из типов данных, перечисленных в
таблице 1. так же как и ссылки на экземпляры (см. 6.10.4) и составные типы данных, представляющие
выбираемые типы данных. Если элементом массива является возврат в исходное состояние, то первый
элемент составного типа данных должен иметь значение 0. а второй элемент должен быть пустым. Если
11