ГОСТ Р И С 0 10303-11 — 2009
Внешние объявления, введенные посредством интерфейса REFERENCE, не считаются локальными
объявлениями и поэтому не могут быть реализованы независимо, но могут быть реализованы для выполне
ния роли, предписанной атрибутом объекта вданной схеме.
11.3 Взаимодействие интерфейсов USE и REFERENCE
Если объектный или определенный тип данных вданной схеме одновременно указан в спецификаци
ях интерфейсов USE и REFERENCE, то спецификация интерфейса USE имеет приоритет.
Пример — В следующем фрагменте а1 трактуется как локальное объявление:
USE FROM s1 (а1):
REFERENCE FROM s1 (a1);
Если именованный типданных импортирован вданную схему посредством интерфейса USE. тодан
ный именованный тип данных может быть импортирован другой схемой изданной схемы посредством
интерфейсов USE или REFERENCE (это означает, что спецификации интерфейсов USE могут связывать
схемы в цепочки).
Пример— Пусть заданы следующие объявления двух схем:
SCHEMA si;
ENTITY el;
ENDENTITY;
END SCHEMA;
SCHEMA s2;
USE FROM s1 (e1 AS e2);
END_SCHEMA;
тогда следующие спецификации эквивалентны:
SCHEMA s3;
USE FROM s1 (e1 AS e2);
END_SCHEMA:
SCHEMA s3;
USE FROM s2 (e2);
END_SCHEMA:
Поскольку элементы языка EXPRESS, импортированные посредством интерфейса REFERENCE,
не трактуются как локально объявленные элементы, то связывание схем в цепочки посредством
интерфейсов REFERENCE невозможно.
11.4 Импорт объектов посредством неявных интерфейсов
Внешнее объявление может ссылаться на идентификаторы, которые не являются видимыми в
данной схеме. Такие элементы языка EXPRESS, на которыеданы неявные ссылки, требуются для полного
понимания данной схемы, но они не видимы для элементов языка EXPRESS, объявленных в данной
схеме. Каждый импортированный неявно элемент может в свою очередь ссылаться на другие элементы
языка EXPRESS, которые не являются видимыми в данной схеме; такие элементы языка EXPRESS
также требуются для полного понимания данной схемы.
Пример— Неявно импортированные элементы и связывание неявных интерфейсов в цепочки.
SCHEMA si;
TYPE t1 = REAL;
ENOTYPE;
ENTITY el;
a:t1;
ENDENTITY;
ENTITY e2;
a1 ;e1;
ENDENTTTY;
ENDSCHEMA;
SCHEMA s2;
REFERENCE FROM s1 (e2);
ENTITY e3;
аЗ:e2;
E№3_ENTITY;
END_SCHEMA;
Объект e2 используется как тип данных атрибута аЗ. Поскольку в определении объекта е2
требуется е1. то объект в^ неявно импортируется схемой s2. Однако посколькуе1 не был импортиро
ван в схему s2 в явной форме, то е1 не может использоваться в схеме s2. Аналогично, в определении
объекта е1 требуется И; поэтому t1 неявно импортируется схемой s2.
66