ГОСТ Р ИСО/МЭК 8824-2-2001
12.2 Множество информационных объектов, которые должны быть класса, указанного «De-finedObjectClass», является множеством, определяемым конструкцией «ObjectSet»
ObjectSet : : = «{» ObjectSetSpec «}»
ObjectSetSpec : : =
RootElementSetSpec |
RootElementSetSpec «, » «. . .» |
«. . .» |
«. . .» «, » AddidionalElementSetSpec |
RootElementSetSpec «,» «. . .» «,» AdditionalElementSetSpec
Конструкции «RootElementSetSpec» и «AdditionalElementSetSpec» определены в ГОСТ P ИСО/МЭК 8824-1 и позволяют специфицировать множество информационных объектов в терминах информационных объектов или их множеств из управляющего класса. В множестве должен быть хотя бы один информационных объект, если в «ObjectSetSpec» не задается третья альтернатива («. . . »). В последнем случае многоточие указывает, что множество объектов первоначально пусто, но объекты будут динамически добавляться к нему прикладной программой.
Примечания
1 Элементы, на которые указывает «ObjectSetSpec», являются объединением элементов, указываемых «RootElementSetSpec» и «AdditionalElementSetSpec».
2 В отличие от расширяемых типов, таких как множество или последовательность, или ограничений расширяющих подтипов, которые являются статическими относительно множества «понятных» значений, устанавливаемых для каждой версии спецификации АСИ. 1, расширяемое множество объектов может динамически расти и сжиматься в пределах данной версии. Действительно, оно может расширяться и сжиматься с данным экземпляром использования прикладной программы по мере того, как программа динамически определяет и уничтожает объекты.
12.2.1 Результат арифметической установки, применяемой к множествам расширяемых объектов, определен в ГОСТ Р ИСО/МЭК 8824-1, раздел 46.
12.3 Если расширяемое множество объектов А указывается в определении другого множества объектов В, то его маркер расширения наследуется В.
12.4 Если конструкция «ValueSetFromObjects» (см. раздел 15) определена с использованием расширяемого множества объектов, то результирующее множество значений не наследует маркер расширения от множества объектов.
12.5 Если тип ограничен табличным ограничением (см. 10.3 ИСО/МЭК 8824-3) и множество объектов, указанных в табличном ограничении, является расширяемым, то тип не наследует маркер расширения от множества объектов. Если тип предназначается для того, чтобы быть расширяемым, то маркер расширения должен быть явно добавлен к его «ElementSetSpecs».
12.6 Нотация для «ObjectSetElements» следующая:
ObjectSetElements : : =
Object |
DefinedObjectSet |
ObjectSetFromObjects |
ParameterizedObjectSet
Элементы, специфицированные этой нотацией, определяются использованной альтернативой следующим образом:
а) если используется альтернатива «Object», то определяется только объект, который также обозначен. Этот объект должен быть объектом управляющего класса;
б) если используется любая из оставшихся альтернатив, то определяются все объекты множества, обозначенные так же. Объекты должны быть объектами управляющего класса. Если используется альтернатива «DefinedObjectSet», то множество объектов есть то, которое указано. Если используется альтернатива «ObjectSetFromObjects», то множество объектов такое, как определено в разделе 15. Если используется альтернатива «ParameterizedObjectSet», то множество объектов такое, как определено в ИСО/МЭК 8824-4, 9.2.
12.7 Пример
Множество информационных объектов, неформально описанное в примечании к 3.4.11, может быть специфицировано следующим образом:
14