ГОСТ Р ИСО/МЭК 8824-2-2001
14 Нотация для типа «поле класса объектов»
Тип, который указывается этой нотацией, зависит от категории имени поля. Для различных
категорий имен нолей в 14.2 — 14.5 специфицируется тип, который они указывают.
14.1 Нотацией для типа «поле класса объектов* (см. 3.4.15) должна быть «ObjectClassFieldType»;
ObjeciClassFieldType : : =
DefinedObjectClass
FieldName
где «FieldName*, определяется как в 9.14 относительно класса, идентифицированного «DefinedOb
jectClass».
14.2 Для поля типа нотация определяет открытый тип, то есть тот, множество значений
которого является полным множеством всех возможных значений, которые можно специфициро
вать, используя АСН. 1. Спецификация ограничений, использующая соответствующее множество
информационных объектов (см. ИСО/МЭК 8824-3). может ограничивать эгот тип конкретным
типом. Следующие ограничения на использование данной нотации применяются, когда «FieldName*
указывает поле типа.
а) Эта нотация не должна, прямо или косвенно, использоваться в определении типа поля
значения или множества значений класса информационных объектов.
б) Эта нотация имеет неопределенный тег и, таким образом, не может быть использована там.
где требуется, чтобы тег отличался от некоторых других типов.
Примечания
1 Эю ограничение обычно можно обойти (явным) тегированием типа.
2
Несмотря на утверждение вГОСТ Р ИСО/МЭК 8824-1,47.7.3, что концептуально добавляемый элемент
для маркера расширения имеет тег, отличный от тегов всех известных типов АСН. I, открытый тип не должен
использоваться, когда требуется, чтобы он имел тег. отличный от тега концептуально добавляемого элемента.
в) Эта нотация не должна быть неявно тегированной.
Примечание 3 —Причиной этого ограничения является то. что. когда данный открытый тип
ограничивается до конкретного типа, последний может оказаться выборочным типом.
г) Требуется, чтобы правила кодирования для значения, присвоенного определенному таким
образом компоненту, были такими, чтобы получатель мог успешно определить абстрактные значе
ния, соответствующие всем другим частям конструкции, в которую компонент вставлен, без
какого-любого знания о фактическом типе этого компонента.
Примечание 4 —Такая конструкция «Туре» обычно ограничивается использованием множества
информационных объектов и «AtNotation». какопределено вИСО/МЭК 8824-3. раздел К).Однако пользователи
АСН. 1должны учитывать, что применение этой нотации без ограничения может привести
кдвусмысленности в требованиях к реализации, и обычно се следует избегать.
14.3 Для поля значения фиксированного-тнпа или множества значений фиксированного-типа
нотация обозначает тип «Туре», который появляется в спецификации этого поля в определении
класса информационных объектов.
14.4 Ятя поля значения переменного-типа или множества значений перемениого-типа нотация
определяет открытый тип. Она используется при тех же ограничениях, оговоренных в 14.2.
14.5 Эта нотация недопустима, если поле является полем объекта или полем множества
объектов.
14.6 Нотацией для определения значения этого типа должно быть «ObjectClassFieldValue*:
ObjectClassFieldValue :: =
OpenTypeFieldVal |
FixedTypeFieldVal
OpenTypeFieldVal:: = Type *:» Value
FixedTypeFieldVal:: = BuiltinValue | Re fereneedValue
14.7 Ятя поля значения или множества значений фиксированного-типа, используемого в
«ObjeciClassFieldType», должна использоваться альтернатива «FixedTypeFieldVal» и должно быть
значение «Туре», указанное в определении класса информационных объектов.
14.8 Язя поля типа, поля значения или множества значений переменного-типа. использован
ного в «ObjeciClassFieldType», должна использоваться альтернатива «OpenTypeFieldVal*. Тип «Туре*
16