ГОСТ Р ИСО 10303-14—2015
10.6 Выражение IF
Выражение IF обеспечивает условную оценку элементов языка e xp re ssio n на основе оценки
элемента j.o g ic a l e xp re ssio n из синтаксического правила 110. Если ни один из элементов lo g i c
a l e xp re ssio n не имеет значения TRUE и не задан элемент языка ELSE, то атрибуту отображения
или образа присваивается неопределенное значение.
Синтаксис:
110 if ехрг = IF logical expression THEN expression
[
ELSIF
Logical expression expression ) ( ELSE expression ] END IF .
10.7 Выражение CASE
Выражение CASE обеспечивает условную оценку элементов языка e xp re ssio n в соответствии
с шаблоном выполнения оператора CASE языка EXPRESS (см. подраздел 13.4 ИСО 10303-11). Если
ни один элемент языка OTHERWISE не задан и ни один из элементов case ехрг a c tio n не имеет
значения TRUE, то атрибуту отображения или образа присваивается неопределенное значение.
Синтаксис:
56 case ехрг = CASE selector OF f case ехрг action ) { OTHERWISE ,:’
expression ] END CASE .
57 case expr action = case label ( ,,’ case label ) ,:’expression ,;’ .
Правила и ограничения
Выражение
c
a
s
e
не должно использоваться в образах схем, относящихся к классу соответствия 1.
Пример
—
Данный пример иллюстрирует использование выражения
CASE:
SCHEMA source_schema;
ENTITY approval;
status : STRING;
END_ENTITY;
END_SCHEMA;
SCHEMA target_schema;
ENTITY ray_approval;
status :"""INTEGER;
END_ENTITY;
END_SCHEMA;
SCHEMA_MAP mapping_example;
REFERENCE FROM source_schema AS SOURCE;
REFERENCE FROM target_schema AS TARGET;
MAP approval_map AS ma :my_approval;
FROM a : approval;
SELECT
ma.status := CASE a.status OF
’approved’: 1;
’not yet approved’ : -1;
’d i sapproved’: 0;
OTHERWISE: 2;
END_CASE;
END_MAP;
END_SCHEMA_MAP;
10.8 Оператор прямого пути
Оператор прямого пути (::) создает агрегированную структуру экземпляров объектов, на которые
ссылается значение элемента
attribute ref
из синтаксического правила 88. Если необязательный
элемент
extent reference
из синтаксического правила 154 задан, то созданная агрегированная
40