ГОСТ Р ИСО 10303-21-2002
10.1.3 Т ип д а н н ы х ar ray ( м а сс и в)
Значения данных в языке EXPRESS типа ARRAY должны быть отображены в структуру обмена
как данные спискового типа. Раздел 7 описывает состав данных спискового типа. Если атрибут в
языке EXPRESS яазяется многомерным массивом, он должен быть закодирован как список
списков, вложенный на глубину, равную размерности массива. В создании таких списков самый
внутренний список, содержащий только экземпляры типа элемента, должен соответствовать
самому правому из определений ARRAY в операторе языка EXPRESS, определяющем обьект.
Упорядочение элементов при кодировании осуществляется так, что для каждого элемента
следующего внешнего списка кодируются элементы внутреннего списка. Данный порядок
означает, что в каждом списке самый правый индекс будет изменяться первым. Внутри списка
каждый экземпляр типа элемента должен быть закодирован, как требуется (согласно разделу 10)
для каждого типа данных в EXPRESS. Если тип данных массива имеет необязательные
(OPTIONAL) элементы, любой элемент, для которого отсутствует значение, должен быть
закодирован шиком даьгара “$”.
Примечание —Если в конкретном экземпляре объекта отсутствует значение для необязательного
(OPTIONAL) атрибута, тип данных которою ARRAY, этот атрибут должен быть закодирован знаком доллара
(“S"). как определено в 10.2.2, и это не пустой список.
Пр имср 1—Определение объекта в EXPRESS:
X : ARRAY |1:5J OF ARRAY |100:!02| OF INTEGER:
Эго кодируется в следующем порядке:
((X (1, 1001, X 11. 101|. X |1, 102| ).
(X |2. 100|, X [2, 101), X |2. 102| ),
(X [3. 100|, X |3, 1011, X |3. 102) ),
(X |4. 1001, X |4. 1011. X |4. 1021 ).
(X |5, 1001, X |5, 1011, X |5. 1021 ))
Пр и мер 2 —Определение объекта в языке EXPRESS:
ENTI TYwidget;
attribute 1: ARRAY |-l : 31OF INTEGER;---------------------------------- > A
attributed : ARRAY |l : S| OF OPTIONAL INTEGER; -----------------> В
attributc3 : ARRAY (1 : 2] OF ARRAY |1 : 3|OF INTEGER:------------> C
END_ENT1TY;
Образец экземпляра объекта в секции данных:
«30 = WIDGET ((1. 2. 3, 4, 5). (I, 2. 3, S, 5), ((1. 2. 3), (4. 5. 6)));
ЛлЛ
АВС
А : attribute! содержит следующие значения:
attribute 1 (-11= 1
attribute I |0| ~ 2
attribute 1 111= 3
attribute 1 |2| = 4
attribute I (3) ■=5
В : attributc2 содержит следующие значения:
attributed |1| •" I
attribute’ 12) * 2
attributed |3| « 3
attributed 141= отсутсгвусг
attributed |5| ■=5
Пропуск значения в массиве предусмотрен в определении EXPRESS-схсмы.
С : attribute3 содержит следующие значения:
attribute3 11.11w 1
attributed |1.2) m2
atlribute3 jl,3j = 3
21