ГОСТ Р ИСО 10303-21—2022
12.1.2 Тип данных list
(список)
Значения данных в EXPRESS типа LIST отображают в структуру обмена как данные спискового типа. В раз
деле 7 описан состав данных спискового типа. Если список пустой, то он должен быть закодирован каклевая скоб
ка "(", за которой сразу следует правая скобка ")". Внутри списка каждый экземпляр типа элемента должен быть
закодирован, как требуется (согласно разделу 12) для каждого типа данных в EXPRESS.
Значения данных в EXPRESS типа LIST могут быть определены в ссылочной секции. Значение сопостав
ляется с использованием имени значения экземпляра, определенного для этого экземпляра в ссылочной секции.
Значение экземпляра должно быть совместимо с типом EXPRESS.
Значения данных в EXPRESS типа LIST могут быть определены константами EXPRESS. Значение должно
быть сопоставлено с использованием значения, определенного для этого экземпляра всхеме EXPRESS. Значение
экземпляра должно быть совместимо с типом EXPRESS.
Примечание — Если в конкретном экземпляре объекта отсутствует значение для необязательного
(OPTIONAL) атрибута, чей тип данных — LIST, то атрибутдолжен быть закодирован знаком доллара ("$"), как опре
делено в 12.2.2, и это не пустой список.
Пример
—
Определение объекта в языке EXPRESS.
ENTITY widget;
attribute1; LIST [0 : ?] OF INTEGER;----------------- >A
attribute2: LIST [1 : ?] OF INTEGER;----------------- > В
attribute3: OPTIONAL LIST [1 : ?] OF INTEGER; ~> C
attributed
attributes:
REAL;--------------------------------------------> D
LIST [1 : ?] OF INTEGER;------------------> E
END_ENTITY;
Образец экземпляра объекта в секции данных:
#4 = WIDGET((), (1,2,@10), $, 2.56, @PI);
ЛЛЛЛЛ
! I ! ! I
А в С D Е
А: атрибут attributel является пустым списком (список, содержащий ноль элементов);
В: в этом экземпляре атрибут attribute2 содержит три элемента. Один из экземпляров определяется экзем
пляром @10 в ссылочной секции;
С: в этом экземпляре атрибут attributes не имеет значения;
D: в этом экземпляре атрибут attributed имеет значение 2.56;
Е; в этом экземпляре атрибут attributes имеет значение LIST, определенное в EXPRESS константой PI.
12.1.3 Тип данных array
(массив)
Значения данных в языке EXPRESS типа ARRAY должны быть отображены в структуру обмена
как данные спискового типа. Раздел 7 описывает состав данных спискового типа. Если атрибут в языке
EXPRESS является многомерным массивом, он должен быть закодирован как список списков, вложен
ный на глубину, равную размерности массива. В создании таких списков самый внутренний список,
содержащий только экземпляры типа элемента, должен соответствовать самому правому из опреде
лений ARRAY в операторе языка EXPRESS, определяющем объект. Упорядочение элементов при
ко дировании осуществляется так, что для каждого элемента следующего внешнего списка
кодируются элементы внутреннего списка. Данный порядок означает, что в каждом списке самый
правый индекс будет изменяться первым. Внутри списка каждый экземпляр типа элемента должен
быть закодирован, как требуется (согласно разделу 12) для каждого типа данных в EXPRESS. Если
тип данных массива имеет необязательные (OPTIONAL) элементы, то любой элемент, для которого
отсутствует значение, должен быть закодирован знаком доллара ("$").
Значения данных в языке EXPRESS типа ARRAY могут быть определены в ссылочной секции.
Значение должно отображаться с использованием имени экземпляра значения, определенного для это
го экземпляра в ссылочной секции. Значение экземпляра должно быть совместимо с типом EXPRESS.
Значения данных в языке EXPRESS типа могут быть определены константами EXPRESS. Значе
ние должно отображаться с использованием значения, определенного для этого экземпляра в схеме
EXPRESS. Значение экземпляра должно быть совместимо с типом EXPRESS.
Примечание— Если в конкретном экземпляре объекта отсутствует значение для необязательного
(OPTIONAL) атрибута, тип данных которого ARRAY, этот атрибут должен быть закодирован знаком доллара ("$")
как определено в 12.2.2, и это не пустой список.
36