ГОСТ Р ИСО/МЭК 8824-2-20019 Определение и присвоение класса информационных объектов
9.1 Конструкция «ObjectClassAssignment» используется для присвоения класса информационных объектов имени ссылки («objectclassreference»). Эта конструкция является одной из альтернатив для «Assignment» в ГОСТ Р ИСО/МЭК 8824-1, раздел 12 и определяется следующим образом:
ObjectClassAssignment : : = objectclassreference «.»
ObjectClass
9.2 Класс информационного объекта — тот, который определяется конструкцией «ObjectClass».
ObjectClass : : =
DefinedObjectClass |
ObjectClassDefn |
ParametrizedObjectClass если «ObjectClass» есть:
а) «DefinedObjectClass», то определение класса — то же самое, как определение указываемого класса;
б) «ObjectClasDefn», то класс определяется как описано в 9.3;
в) «ParameterizedObjectClass», то класс определяется как описано в ИСО/МЭК 8824-4, 9.2.
9.3 Каждый класс, в конечном счете, определяется «ObjectClassDefn»:
ObjectClassDefn : : =
CLASS
«{» FieldSpec «,» + «}»
WithSyntaxSpec?
WithSyntaxSpec : : = WITH SYNTAX SyntaxList
Эта нотация позволяет разработчику класса предоставить спецификации поименованных полей, каждая из которых является «FieldSpec», как определено в 9.4. Факультативно автор определения может предоставить синтаксис определения информационных объектов («SyntaxList»), как указано в 10.5. Автор определения класса может также специфицировать семантику, связанную с определением класса.
9.4 Каждая альтернатива «FieldSpec» специфицирует и называет одно из полей, которое будет или может быть связано с экземплярами класса.
FieldSpec : : =
TypeFieldSpec |
FixedTypeValueFieldSpec |
VariableTypeValueFieldSpec |
FixedTypeValueSetFieldSpec |
VariableTypeValueSetFieldSpec |
ObjectFieldSpec |
ObjectSetFieldSpec
Различные альтернативы для «FieldSpec» определяются в последующих пунктах.
9.5 Альтернатива «TypeFildSpec» определяет, что поле является полем типа (см. 3.4.17).
TypeFildSpec : : =
typefieldreference
TypeOptionalitySpec?
TypeOptionalitySpec : : = OPTIONAL | DEFAULT Type
Имя поля есть «typefieldreference». Если продукция «TypeOptionalitySpec» отсутствует, то все определения информационных объектов этого класса обязательно должны включать в себя спецификацию типа для этого поля. Если присутствует «OPTIONAL», то поле может быть оставлено неопределенным. Если присутствует «DEFAULT», то последующий «Type» обеспечивает установку умолчания для поля, если оно опущено в определении.
9.6 Продукция «FixedTypeValueFieldSpec» определяет, что поле является полем значения фиксированного-типа (см. 3.4.18).
FixedTypeValueFieldSpec : : = valuefieldreference Type
UNIQUE?
6