ГОСТ Р И С 0 10303-11 — 2009
b
) Имя повторно объявленного атрибутадолжно быть задано с использованием синтаксиса элемента
qualified_attribute.
c) Если тип данных, использованный при определении исходного атрибута, был ограничен правилом
WHERE, то тип данных, используемый для определения повторно объявленного атрибута, должен быть
ограничен так. чтобы область определения повторно объявленного атрибута являлась подмножеством об
ласти определения исходного атрибута.
d) Элемент group_qualifier в синтаксисе элемента qualified_attribute должен идентифицировать
объектный типданных, вкотором данный атрибут был первоначально объявлен, либо объектный типдан
ных. который повторно объявляет атрибут из другого супертипа.
e) Если атрибут супертипа повторно объявлен вдвух не взаимоисключающих подтипах, то экземп
ляр. содержащий оба подтипа, должен иметь единственное значениедля атрибута, являющегося допусти
мым для обоих повторных объявлений.
0 Если атрибуту присвоен новый идентификатор, то данный идентификатор не должен совпадать
с идентификатором любого атрибута влюбом супертипеданного объектного типа данных.
П р и м е ч а н и е — Правило WHERE, заданное для исходного атрибута, остается в силе и для повторных
объявлений данного атрибута (см. 9.2.3.5).
Примеры
1В некоторых геометрических системах используются координаты с плавающей точкой,
в то время как другие системы работают в целочисленном координатном пространстве.
Понятия GENERIC_ENTITY и RENAMED обеспечивают спецификации общей применимости и конкрети
зации для специфической области применения.
ENTITY point;
х : NUMBER;
у : NUMBER;
END_ENT!TY:
ENTITY integer_point
SUBTYPE OF (point);
SELRpoint.x RENAMED integer_x : INTEGER;
SELRpoint.y RENAMED integer_y : INTEGER;
END_ENTTTY;
ENTrTYlineABSTRACT;
start ; GENERIC_ENTTTY;
end : GENER1C_ENTTTY;
END_ENTITY;
ENTITY integer_point_line;
SUBTYPE OF (line);
INTEGER_point;
INTEGER_point;
SELFMine.start RENAMED integer_start :
SELFUine.end RENAMED integer_end :
END_ENTITY;
2 Данный пример демонстрирует изменение элементов агрегированного типа данных на
уникальные, уменьшение числа элементов агрегированного типа данных и изменение необязатель
ного атрибута на обязательный.
ENTITY super;
things: LIST [3: ?] OF thing:
items: BAG [0; ?) OF widget;
may_be : OPTIONAL stuff;
END_ENTITY;
ENTITY sub
SUBTYPE OF (super);
SELF\super.things
SELF\super.items
: LIST [3: ?] OF UNIQUEthing;
: SET [1 :10] OF widget;
SELF\super.may_be ; stuff;
END_ENTITY;
3 В данном примере круг задан центром, осью и радиусом. Вариант круга задан центром и
двумя точками, через которые он проходит. Эти три точки представляют данные, посредством
которых задан данный вариант круга. В дополнение к этим данным необходимо учесть и другие
важные параметры — радиус и ось. Это осуществляется посредством их повторного объявления
как вычисляемых атрибутов с заданием их значений выражениями.
38