ГОСТ Р ИСО/МЭК 8824-2-2001
шено в определении информационного объекта или. вслучае «DEFAULT», это опускание порождает
последующее множество значений «ValueSet*. Продукция «ValueSetOptionalitySpec» должна быть
такой, что:
а) если поле типа, обозначенное «FieldName», имеет продукцию «TypeOptionalitySpec* «OP
TIONAL*. то продукция «ValueSetOptionalitySpec* должна также быть «OPTIONAL», и
б) если продукция «ValueSetOptionalitySpec* есть «DEFAULT ValueSet*. то пате типа, обозна
ченное «FieldName*, должно иметь продукцию «TypeOptionalitySpec* «DEFAULT Туре*, а множество
значений *ValueSet* должно быть значением этою типа.
9.11 Продукция «ObjectFieldSpeo определяет, что поле является полем информационного
объекта (см. 3.4.10).
ObjectFieldSpec : : =
object fieIdreference
DefinedObjectClass
ObjectOptionalitySpec?
ObjectOptionalitySpec :: = OPTIONAL | DEFAULT Object
Имя поля есть «objectfieldreference*. Продукция «DefinedObjectClass» указывает класс объекта,
содержащегося в поле (который может быть классом «ObjectCIass*. определяемым в настоящее
время). Продукция «ObjectOptionalitySpec*. если присутствует, устанавливает, что поле в определе нии
информационного объекта может быть неслецифицированным или, в случае «DEFAULT», это
опускание порождает последующий объект «Object* (см. 11.2), который должен быть «DefinedOb
jectClass*.
9.12 Продукция «ObjectSetFieldSpec* определяет, что поле является полем множеств;» инфор
мационных объектов (см. 3.4.12).
ObjectSetFieldSpec : : =
objectsetfieldreference
DefinedObjectClass
ObjectSetOptionalitySpec?
ObjectSetOptionalitySpec : : = OPTIONAL | DEFAULT ObjectSet
Имя поля есть «objectsetfieldreference*. Продукция «DefinedObjectClass* указывает класс объек
тов, содержащихся в поле. Продукция «ObjectSetOptionalitySpec*, если присутствует, устанавливает,
что поле в определении информационного объекта может быть неспецифицированным или, в случае
«DEFAULT*, это опускание порождает последующее множество объектов «ObjectSet* (см. 12.2), все
объекты которого должны быть «DefinedObjectClass*.
9.13 Конструкция «PrimitiveFieldName* используется для идентификации поля относительно
класса, содержащего его спецификацию:
PrimitiveFieldName :: =
typefieldreference |
valuefieldreference |
valuesetfieldreference |
objectfieldreference |
objectsetfieldreference
Имена всех полей, специфицированых в определении класса, должны быть рахтичными.
9.14 Конструкция «FieldName* используется для идентификации поля относительно некото
рого класса, который либо непосредственно содержит спецификацию поля, либо имеет цепочку
полей связи к содержащему классу. Цепочка указывается списком имен «PrimitiveFieldName*,
разделенных точками.
FieldName :: = PrimitiveFieldName «.» +
9.15 Если имеется любая цепочка (одна или более) спецификаций полей связи (см. 3.4.14)
такая, что:
а) первое поле находится в том классе, который определяется, и
б) каждое последующее является полем класса, использованного при определении предыду
щего. и
в) последнее поле определяют, используя класс, который определяется, то, по крайней мере,
одна из спецификаций полей должна иметь «ObjectOptionalitySpec* или «ObjectSetOptionalitySpec*.
Примечание —Эго условие должно предотвратить рекурсивные определения классов ннформаиион-
ных объектов без конечною представления для информационных объектов этого рекурсивного класса.
S