ГОСТ Р ИСО/МЭК 8824-2-2001
ValueOptionalitySpec?
ValueOptionalitySpec : : = OPTIONAL | DEFAULT Value
Имя поля есть «valuefieldreference#. Конструкция «Type# специфицирует тип значения, содержащегося в поле. Продукция «ValueOptionalitySpec#, если присутствует, специфицирует, что значение может быть опущено в определении информационного объекта или, в случае «DEFAULT#, это опускание порождает последующее значение «Value#, которое должно быть того же самого типа. Присутствие ключевого слова «UNIQUE# специфицирует, что это поле является полем идентификатора. Если присутствует ключевое слово, то продукция «ValueOptionalitySpec# не должна быть альтернативой «DEFAULT Value#.
9.7 Когда полю идентификатора присваивается значение, то требуется, чтобы это значение было недвусмысленным в определенном множестве информационных объектов.
9.8 Продукция «VariableTypeValueFieldSpec# определяет, что поле является полем значения переменного-типа (см. 3.4.18).
VariableTypeValueFieldSpec : : = valuefieldreference FieldName
ValueOptionalitySpec?
Имя поля есть «valuefieldreference». Продукция «FieldName» (см. 9.14), которая относится к определяемому классу, должна быть полем типа; поле типа, которое либо находится в том же информационном объекте как поле значения, либо связывается цепочкой полей объектов, ссылки на которые появляются в «FieldName#, должно содержать тип значения. (Все поля связи, ссылки на которые появляются в «FieldName#, должны быть полями объектов). Продукция «ValueOptionalitySpec#, если присутствует, специфицирует, что значение может быть опущено в определении информационного объекта или, в случае «DEFAULT#, это опускание порождает последующее значение «Value#. Продукция «ValueOptionalitySpec# должна быть такой, что:
а) если поле типа, обозначенное «FieldName#, имеет продукцию «TypeOptionalitySpec# «OP-TIONAL#, то «ValueOptionalitySpec# должна также быть «OPTIONAL#, и
б) если продукция «ValueOptionalitySpec# есть «DEFAULT Value#, то поле типа, обозначенное «FieldName#, должно иметь продукцию «TypeOptionalitySpec# «DEFAULT Type#, и значение «Value# должно быть значением этого типа.
9.9 Продукция «FixedTypeValueSetFieldSpec# определяет, что поле является полем множества значений фиксированного-типа (см. 3.4.19):
FixedTypeValueSetFieldSpec : : = valuesetfieldreference Type
ValueSetOptionalitySpec?
ValueSetOptionalitySpec : : = OPTIONAL | DEFAULT ValueSet
П римечание — Продукция «ValueSet» определяется в ГОСТ Р ИСО/МЭК 8824-1, 15.4, 15.5 и позволяет явно перечислять (в фигурных скобках) множество значений или использовать ссылку «typereference» для подтипа «Type».
Имя поля есть «valuesetfieldreference#. Конструкция «Type# специфицирует тип значений, содержащихся в поле. Продукция «ValueSetOptionalitySpec#, если присутствует, указывает, что поле в определении информационного объекта может быть неспецифицированным или, в случае «DE-FAULT#, это опускание порождает последующее множество значений «ValueSet#, которое должно быть подтипом этого типа.
9.10 Продукция «VariableTypeValueSetFieldSpec# определяет, что поле является полем множества значений переменного-типа (см. 3.4.19).
VariableTypeValueSetFieldSpec : : = valuesetfieldreference FieldName
ValueSetOptionalitySpec?
Имя поля есть «valuesetfieldreference#. Продукция «FieldName# (см. 9.14), которая относится к определяемому классу, должна быть полем типа; поле типа, которое либо находится в том же информационном объекте как поле множества значений, либо связывается цепочкой полей объектов, ссылки на которые появляются в «FeidlName#, должно содержать тип значений. (Все поля связи, ссылки на которые появляются в «FieldName#, должны быть полями объектов). Продукция «Value-SetOptionalitySpec#, если присутствует, специфицирует, что множество значений может быть опу-
7