ГОСТ Р ИСО 10303-21-2002
5 Экземпляр объекта, показывающий внешнее отображение.
#1 =Х<1);
«2 - (А(я 1) В<9.0) D(«l) E(*l) F(#I) Н(4));------------> А
А: поскольку экземпляр объекта «2 является членом |а &b &d &с &f&h| к это определяемое множество
оиенки имеет более одной вершины (листа) (d и h). используется внешнее отображение. Не существуетединого
имени типа данных объекта, которое может быть связано с объектом, скорее объект должен иметь составное
имя a-b-d-c-f-h. Пробелы междузаписями объектов необязательны и добавлены в этом примере для того, чтобы
облегчить чтение.
10.2.6 Я иные а т р и б у т ы , п е р е о б ъ я вл е и н ые как D E R I V E
Если объект подтипа переобъявляет атрибут своего супертипа с помощью оператора DERIVE,
а исходный атрибут является явным, то значение исходного атрибута в супертипе должно кодиро
ваться звездочкой “4‘”.
Пример —Определение объекта в языке EXPRESS:
ENTITY point:
х : REAL:
у : REAL:
г : REAL;
END_ENT1TY;
ENTITY point_on_curvc SUBTYPE OF (point);
u : REAL:
c : curve;
DERIVE
SELF\point.x : real := fx(u, c);
SELF\point.y : real :==fy(u, c);
SELFNpoint.z : real := fz(u, c):
END.ENTITY;
ENTITY curve:
attr: STRING:
END_ENTITY:
Образен экземпляра объекта в секции данных:
РI " CURVE(‘curvc_attribute’);
*2 - POINT _ON_CURVE{*, *. *, 0.55. #1);------------> А
*3 - POINT(2.0, 3.0, 4.0);----------------------------------- > В
А: поскольку здесь используется подтип с вычисляемыми атрибутами, атрибуты дг, у и z заменены
звездочками.
В: поскольку POINT не является абстрактным супсртппом, в структуре обмена может присутствовать
экземпляр POINT. Атрибуты х, у и z появляются как нормальные атрибуты.
10.2.7 А т р и б у т ы , п е р е о б ъ я в л е н н ы е как I N V E R S E
Если объект подтипа переобъяпляет атрибут своего супертипа с помощью оператора INVERSE,
это не влияет на кодирование. Переобъявленный атрибут в любом случае не кодируют.
10.2.8 А т р и б у т ы , п е р е о б ъ я в л е н н ы е как явные атрибут ы
Если объект подтипа переобъявляет атрибут одного из своих супертипов как явный атрибут,
т.е. не с помощью оператора INVERSE или DERIVE, это не влияет на кодирование.
Значение атрибута должно быть закодировано как атрибут супертипа (см. 10.2.5) с применением
отображения, определенного в разделе 10для типа данных атрибута в супертипе. Переобъявленный
атрибут должен игнорироваться, т.е. он не должен применяться в качестве атрибута подтипа для
целей кодирования.
Пример —Определение объекта в языке EXPRESS:
ENTITY ада SUPERTYPE OF (ONEOF (bbb. ccc));
al : NUMBER:
a2 : curve;
INVERSE
a3 : SET OF mmm FOR ml;
END_ENTITY;
ENTITY bbb SUBTYPE OF (aaa);
SELF\aaa.al: INTEGER:
b: REAL;
34