ГОСТ Р ИСО 10303-14—2015
Элемент
variable id.
расположенный после ключевого слова
INDEXING
(см. синтаксическое
правило 118), инициализируется значением 1 в начале первого итерационного цикла и наращивается
на 1 в начале каждого последующего цикла.
9.4.3.2 Управление с помощью числового приращения
Синтаксический элемент
repeat control
обеспечивает итерационный процесс для одного свя
зующего экземпляра с помощью оператора
REPEAT
языка EXPRESS (см. подраздел 13.9 ИСО 10303-11).
Пример
—
В данном примере показано использование синтаксического элемента
repeat_con-
trol в
целевой реализации на языке EXPRESS-X. Совокупность целевых экземпляров объекта
child
создается для каждого исходного объекта
parent.
Число созданных экземпляров определяет атри
бут
number_of_children
объекта
parent.
SCHEMA src;
ENTITY parent;
number_of_children: INTEGER;
END_ENTITY;
END SCHEMA;
SCHEMA tar;
ENTITY parent;
END_ENTITY;
ENTITY child;
parent :parent;
END_ENTITY;
END SCHEMA;
SCHEMA_MAP example;
REFERENCE FROM src AS SOURCE;
REFERENCE FROM tar AS TARGET;
MAP parent_map AS tp : tar.parent;
FROM sp : src.parent;
SELECT
END_MAP;
MAP children_map AS c :AGGREGATE OF child;
FROM p : src.parent;
FOR I := 1 TO p.number_of_children;
SELECT
c[i].parent := tp(p);
END_MAP;
END_SCHEMA_MAP;
9.4.3.3 Управление с помощью итераций на агрегированной структуре
При выполнении синтаксического элемента
instantiation toreach control
на каждом
шаге итерации следующий элемент указанной агрегированной структуры связывается с переменной и,
возможно, индекс, определяющий позицию данного элемента, связывается с переменной итератора.
Область действия данных привязок переменных включает элемент
map project clause.
Пример
—
В данном примере все версии одного объекта сгруппированы вместе
в
исходном множе
стве данных. В целевом множестве каждая версия объекта является экземпляром.
SCHEMA tar;
ENTITY item_version;
item_id: INTEGER;
version_id : INTEGER;
END_ENTITY ;
END_SCHEMA;
SCHEMA src;
ENTITY item_with_versions;
id : INTEGER;
id_of_versions : LIST OF INTEGER;
END_ENTITY;
END_SCHEMA;
SCHEMA_MAP mapping_schema;
REFERENCE FROM src AS SOURCE;
REFERENCE FROM tar AS TARGET;
MAP item_version_map AS
iv :AGGREGATE OF item version;
21