ГОСТ Р ИСО 10303-21—2022
attr: STRING;
END_ENTITY;
Образец экземпляра объекта в секции данных:
#1 = CURVE(’curve_attribute’);
#2 = POINT_ON_CURVE( *, *, *, 0.55, #1);
----------
>А
#3 = POINT(2.0, 3.0, 4.0); ---------------------------------->В
А: поскольку здесь используется подтип с вычисляемыми атрибутами, атрибуты х, у и z заменены звездоч
ками;
В: поскольку POINT не является абстрактным супертипом, в структуре обмена может присутствовать экзем
пляр POINT. Атрибуты х, у и z появляются как нормальные атрибуты.
12.2.7 Атрибуты, переобъявленные как INVERSE
Если объект подтипа переобъявляет атрибут своего супертипа с помощью оператора INVERSE,
то это не влияет на кодирование. Переобъявленный атрибут в любом случае не кодируют.
12.2.8 Атрибуты, переобъявленные как явные атрибуты
Если объект подтипа переобъявляет атрибут одного из своих супертипов как явный атрибут, т.е. не
с помощью оператора INVERSE или DERIVE, то это не влияет на кодирование.
Значение атрибута должно быть закодировано как атрибут супертипа (см. 12.2.5) с применением
отображения, определенного в разделе 12 для типа данных атрибута в супертипе. Переобъявленный
атрибут должен игнорироваться, т.е. он не должен применяться в качестве атрибута подтипа для целей
кодирования.
Пример
—
Определение объекта вязыке EXPRESS.
ENTITY ааа SUPERTYPE OF (ONEOF (bbb, ccc));
a1: NUMBER;
a2: curve;
INVERSE
a3: SET OF mmm FOR ml;
END_ENTITY;
ENTITY bbb SUBTYPE OF (aaa);
SELF\aaa.a1 : INTEGER;
b: REAL;
END_ENTITY;
ENTITY ccc SUBTYPE OF (aaa);
SELF\aaa.a2 : line;
INVERSE
SELF\aaa.a3 : SET [1:2] OF mmm FOR m l;
END_ENTITY;
ENTITY curve;
END_ENTITY;
ENTITY line SUBTYPE OF (curve);
END_ENTITY;
ENTITY mmm;
ml: aaa;
END_ENTITY;
Образцы экземпляров в секции данных:
#1 = LINE(...);
#2 = CURVE(...);
#3 = ВВВ(1.0, #2,0.5);
#4 = ССС(1.5, #1);
Для экземпляров #3 и #4 кодирование такое же, как если бы не было переобъявляемых атрибутов в объектах
bbb и ссс.
51