ГОСТ Р ИСО 10303-11 — 2009
Способ идентификации исходных схем не определяется в настоящем стандарте и остается на усмотрение
разработчиков реализации.
G.4.2 Первичное содержимое
Создается новая промежуточная схема с именем artifact, в которую копируются все обьявления и помечен
ные комментарии из корневой и основной схем. Схема artifact не должна иметь идентификатор версии
schema_version_id. Любой конфликт имен между обьявлениями и помеченными комментариями в схеме artifact
должен быть разрешен и все представления строковых идентификаторов соответствующим образом
модифици рованы.
Удаляются все дубликаты в операторах USE и REFERENCE. Если какой-либо элемент появляется в обоих
операторах USE и REFERENCE, то данный элемент удаляется из оператора REFERENCE, поскольку специфика
ция интерфейса посредством оператора USE имеет приоритет по отношению к оператору REFERENCE (см.
11.3).
Оператор USE позволяет рассматривать элементы из другой схемы, как объявленные локально в данной
схеме (см. 11.1). Копируются все такие элементы и относящиеся к ним помеченные комментарии в схему artifact
при этом разрешаются все конфликты имен и модифицируются идентификаторы, представленные строками.
Если импортированным элемент должен быть переименован (см. 11.1 и 11.2). то он должен быть скопиро
ван под своим исходным именем, а ссылки на идентификатор должны быть изменены соответствующим обра
зом.
Затем из схемы artifact удаляются все операторы USE, поскольку все элементы, идентифицированные
посредством операторов USE. уже скопированы в данную схему.
П р и м е ч а н и е — Схема artifact теперь будет содержать все элементы, объявленные в исходных
корневой и основной схемах, плюс элементы, импортированные в исходные схемы посредством операторов
USE, плюс операторы (модифицированные) REFERENCE из исходных схем.
Примеры
1Данный пример иллюстрирует копированиепереименованных элементов.Дано:
SCHEMA sch;
USE FROM second (alfred AS atf);
REFERENCE FROM second (bert AS herbert);
ENTITYjoe;
attrl : aff;
attr2 : herbert;
END_ENTITY;
SCHEMA short;
USE sch;
END_SCHEMA:
тогда, если схема short была для алгоритма исходной корневой схемой, a alfred и bertявляются обьявле
ниями объектов, то схема artifact будет иметь следующий вид:
SCHEMA artifact;
ENTITYjoe;
attrl ; alfred;
attr2 : bert;
END_ENTITY;
ENTITY alfred...
ENTITY bert...
2Данный пример иллюстрирует изменение имен дляразрешения конфликтов имен. Исходная спе
цификация содержит три схемы:
SCHEMA 81;
ENTITY creature;
— атрибуты
END_ENTITY;
— другие объявления
END_SCHEMA: - - конец схемы s1
SCHEMA farming;
USE FROM s1 (creature);
ENTITY dog SUBTYPE OF creature;
— атрибуты
END_ENTITY;
159