ГОСТ Р ИСО 10303-21-2002
Каждое частное значение сложного объекта, обозначаемое именем типа данных объекта в
элементе определяемого множества, должно быть отображено в SIMPLE RECORD (единичная
запись) внутри SUBSUPER RECORD. Порядок SIMPLE RECORD внутри SUBSUPER.RECORD
должен быть возрастающей последовательностью имен типов данных объекта с использованием
схемы упорядочения, приведенной в 5.2.
Каждая S1MPLE_REC0RD должна кодировать одно частное значение сложного объекта.
KEYWORD в каждой SIMPLE_RECORD должно кодировать соответствующее имя типа данных
объекта, как определено в 10.2.11, a PARAMETER LIST должен кодировать значения явных атри
бутов, если таковые появляются в соответствующем объявлении объекта. Порядок PARAMETER
в структуре обмена должен быть тем же, что и порядок соответствующих атрибутов в EXPRESS-объ-
явлении объекта. Если EXPRESS-объявление объекта не содержит явных атрибутов, PARAME
TER LIST должен быть пустым. Форма каждого PARAMETER должна зависеть от типа данных
соответствующего атрибута согласно требованиям 10.1.
Г1р имс чин ия
1 Последовательность частных значений объекта (S1.V1PLE_REC0RD)определяется именем тина данных
объекта (гак называемым “длинным именем"), а не “сокращенным именем” (если таковое есть), которое может
использоваться лля кодирования.
2 Каждое частное значение объекта в определяемом множестве должно быть предстаатсно, включая
супсртипы, нс имеющие явных атрибутов.
Пр и мер 1—Отображение подтипов, связанных посредством ANDOR.
Определение объекта в языке EXPRESS:
ENTITY base SUPERTYPE OF (bb AN DOR cc);
-------------
> A
attrib.a : STRING;
END_ENT1TY:
ENTITY bb SUBTYPE OF (aa);----------------------------------------- > В
aitrib_b : INTEGER;
END_ENTITY:
ENTITY cc SUBTYPE OF (aa);------------------------------------------> C
attrib_c : REAL;
END_ENTITY:
ENTITY dd; -----------------------------------------------------------------> D
attrib_d : aa;
END_ENT1TY;
Образец экземпляра объекта в секции данных:
#1 *» BB(’sampIc string’. 15); -----------------------> А
»2 - CC(’S’. 3.0);-------------------------------------> В
#3 - (AA(’ASTR1D’)BB(17)СС(4.0»; ------------> С
я4 =• DD<#1); ------------------------------------------> D
#5 - DD<#2); ------------------------------------------> D
«6 - DD#3:---------------------------------------------> D
Я7 = AA(’ABC’):----------------------------------------> E
A: *1 является экземпляром комбинации aa и bb.
В: #2 является экземпляром комбинации аа и сс.
С: яЗ является экземпляром комбинации aa. bb и сс.
D: объект dd ссылается на объект аа как на атрибут. Следовательно, экземпляр объекта dd может иметь
разрешенные ссылки на любой из экземпляров «I. Я2 или ЯЗ.
Е: аа нс является абстрактным супсрпшом и может быть представлен экземплярами, для которых
применяется внутреннее отображение, поскольку в этом случае определяемое множество состоит только из
одного элемента.
Пример 2 —Отображение более сложного графа подтип/супсртип. Определение объекта в языке
EXPRESS:
ENTITY х;
attrib_x : INTEGER:
END_ENTITY:
ENTITY a ABSTRACT SUPERTYPE OF (ONEOF(b, c));------------> A
attrib_a : x;------------------------------------------------------------------ > В
END_ENTITY:
ENTITY b SUPERTYPE OF (d ANDOR e);
32