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