ГОСТ Р ИСО 10303-11 — 2009
Результирующая схема по ИСО 10303-11:1994 выглядит следующим образом:
SCHEMA longform:
ENTITY р
SUPERTYPE OF (m AND a);
END_ENTITY;
ENTITY a ABSTRACT SUPERTYPE
SUBTYPE OF (p);
END_ENTITY;
ENTITY I SUBTYPE OF (a);
END_ENTITY;
ENTITY m SUBTYPE OF (p);
END_ENTITY;
END_SCHEMA; - - конец схемы longform
G.5.5 Преобразование абстрактных объектных и обобщенных типов данных
Объявления ABSTRACT ENTITY должны быть преобразованы в ограничения на объект ABSTRACT
SUPERTYPE в схеме по ИСО 10303-11:1994.
Формальные параметры и локальные переменные функций и процедур, объявленные с типом данных
GENERIC_ENTITY. должны быть преобразованы в тип данных GENERIC. Может потребоваться доработка алго
ритма функции или процедуры, чтобы обеспечить совместимость по типам данных с типом данных GENERIC.
Объект может иметь атрибут, объявленный обобщенным типом данных, например. AGGREGATE,
GENERIC_ENTITY, или типом данных SELECT, элементы списка выбора которого ограничены типом данных
GENERIC_ENTITY. Для таких атрибутов у типа данных ABSTRACT ENTITY, областью определения которых явля
ется обобщенный тип данных, применяются следующие правила преобразования:
- если все подтипы повторно объявляют тот же самый тип области определения атрибута, то присваивают
данный тип типу данных атрибута супергипа в схеме по ИСО 10303-11:1994;
- во всех остальных случаях в схеме по ИСО 10303-11:1994 создают тип данных SELECT и добавляют все
именованные типы данных, являющиеся типами данных атрибутов во всех повторных объявлениях в любом
подтипе или супертипе. Имя выбираемого типа данных должно представлять собой объединение имени объек
тного типа данных абстрактного супертипа с именем атрибута, имеющего выбираемый тип данных. Между двумя
именами должен быть помещен символ подчеркивания (_). К полученному имени должен бытьдобавлен термин
_select (см. binary_relationship_end_one_select в приведенном ниже примере). В подтипах данный новый атри
бут супертипа должен быть повторно объявлен с типом данных, соответствующим типу данных элементу списка
выбора, объявленному в исходной схеме.
Если типом данных повторно объявленного атрибута окажется неименованный тип данных, например,
агрегированный, то создаются определенные типы данных, поддерживающие тип данных атрибута, которые
используются в типе данных SELECT. Имена данным поддерживающим определенным типам данных присваи
вают по следующему правилу: к имени агрегированного типа данных добавляют термин _of_ и имя базисного типа
данных агрегированной структуры (данное правило может применяться рекурсивно).
Пример — В данном примере промежуточная схема, сформированная в соответствии с G.4, назва
на abstract_example.
SCHEMA abstract_example;
ENTITY person:
END_ENTITY;
ENTITY product;
END_ENTITY;
ENTITY organization:
END_ENTITY;
ENTITY nary_relationship ABSTRACT;
end_one :AGGREGATE OF GENERIC_ENTITY;
end_two:GENERIC_ENTITY;
END_ENTITY;
ENTITY product_of_organization
SUBTYPE OF (nary_relationship);
SELF\nary_relationship.end_one: SET OF product;
SELF\nary_relationship.end_two: organization;
END_ENTITY;
ENTITY person_in_organization
SUBTYPE OF (binary_relationship);
SELF\nary_relationship.end_one: SET OF person:
SELF\nary_relationship.end_two: organization;
END_ENTITY;
175