ГОСТ Р ИСО 10303-14—2015
Пример — Данный пример иллюстрирует использование вызова образа для определения взаимос
вязи между двумя типами данных образа. Синтаксический элемент
IDENTIFIED_BYв
разделе
person_
part
определяет одно выражение
— а.creator.
Поэтому вызовы образа
approver\personjpart
будут осуществляться с одним аргументов типа
STRING,
который является также атрибутом
creator
экземпляра объекта
approval.
SCHEMA_VIEW example;
REFERENCE FROM src_schema;
VIEW approver;
PARTITION person_part;
FROM a : approval; p : person;
WHERE a.creator a p.name;
IDENTIFIED_BY a.creator;
SELECT
approver_id : INTEGER := p.id;
PARTITION org_part;
FROM a : approval; о :organization;
WHERE a.creator * о.name;
IDENTIFIED_BY a.creator;
SELECT
approver_id : INTEGER :=•o.id;
END_VIEW;
VIEW design order;
FROM a : approval;
SELECT
id : STRING :■ a.id;
approved by : approver :=
approver\personjpart(a.creator);
END_VIEW;
END_SCHEMA_VIEW;
SCHEMA src_schema;
ENTITY approval;
id :STRING;
creator : STRING;
END_ENTITY;
ENTITY person;
name : STRING;
id : INTEGER;
END_ENTITY;
ENTITY organization;
id : INTEGER;
name : STRING;
END_ENTITY;
END_SCHEMA;
(* Исходный набор данных в формате ИСО 10303-21 - см. [2] *)
#1=АРPROVAL(’а_1’,’Jones’);
#2=APPROVAL( 1а_21, ’ Sm ith1);
#3«APPROVAL(’а_31,’Jones’);
#4=PERSON(*Jones’,123);
#5=PERSON(’Smith’,234);
(" Конечные экземпляры образа в формате KCQ 10303-21 М
#101=APPROVER(123);
#102=APPROVER(234);
#103=DESIGN_0RDER(’а_1’,#101);
#104=DESIGN_0RDER(’a_2’,#102);
#105»DESIGN_0RDER(’a_3’,#101);
33