ГОСТ Р ИСО 10303-11— 2009
TYPE domain2_approval = EXTENSIBLE ENUMERATION BASED_ON general_approval
WITH (pending):
END_TYPE;
TYPE specific_approval = ENUMERATION BASED_ON domain2_approval WITH
(rework):
ENDJTYPE;
TYPE domain3_approval = EXTENSIBLE ENUMERATION BASED_ON general_approval
WITH (cancelled);
END_TYPE;
— другие объявления, зависящие отданных типов
END_SCHEMA; — конец схемы artifact
Результирующая схема по ИСО 10303-11:1994 выглядит следующим образом:
SCHEMA longform:
TYPE general_approval = ENUMERATION OF
(approved, rejected, pending, cancelled, rework):
END_TYPE;
TYPE domain2_approval = general_approval;
WHERE
wr1 : SELF о cancelled;
ENDJTYPE;
TYPE specific_approval = domain2_approval;
ENDJTYPE;
TYPE domain3_approval = general_approval;
WHERE
wr1 : SELF о pending;
wr2 : SELF <> rework;
ENDJTYPE;
--другие объявления, зависящие от данных типов
END_SCHEMA; — конец схемы longform
Особое внимание следует уделить тому факту, что в перечисляемых типах данных по ИСО 10303-11:1994
учитывается порядок элементов перечисления. Данное понятие упорядочения не включено в ИСО 10303-11:2003.
G.5.3.2 Тип данных EXTENSIBLE SELECT
Тип данных EXTENSIBLE SELECT должен быть преобразован в соответствии с определенной выше проце
дурой в выбираемый тип данных, не являющийся наращиваемым. Имя исходной конструкции должно быть сохра
нено.
Выбираемый тип данных, основанный на наращиваемом выбираемом типе данных, должен быть преобра
зован в определенный тип данных, базисным типом которого является целевой выбираемый тип данных нара
щиваемого выбора, на котором он основан. Именем определенного типа данных в целевой модели должно быть
имя соответствующего выбираемого типа данных в исходной схеме. Из определенного типа данных необходимо
исключить элементы выбора, недопустимые в его контексте, но определенные в его базисном выборе, из реали
зации во внешней схеме посредством локальных правил. Для каждого исключаемого элемента выбора должно
быть создано одно локальное правило.
Примеры
1Промежуточная схема, сформированная в соответствии с G.4, выглядит следующим образом:
SCHEMA artifact;
TYPE attachment_method = EXTENSIBLE SELECT
(nail);
ENDJTYPE;
ENTITY nail;
END_ENTITY;
TYPE permanent_attachment = SELECT BASED_ON attachment_method WITH
(glue, weld):
ENDJTYPE;
TYPE simple_attachment = SELECT BASED_ON attachment_method WITH
(needle, tape);
ENDJTYPE;
— объявления объектов glue идругих
END_SCHEMA; — конец схемы artifact
172