ГОСТ Р ИСО/МЭК 8824-4-2003
добавить) аутентификатор. Этого можно достичь, сделав BIT STRING факультативной, но более изящное решение (меньшее количество битов в строке) состоит в том, чтобы определить другой параметризованный тип:
OPTIONALLY-SIGNED {ToBeSigned} : : = CHOICE {
usigned-data [0] ToBeSigned, signed-data [1] SIGNED {ToBeSigned}
Примечание — Тегирование в CHOICE не является необходимым, если разработчик гарантирует, что ни одно из использований параметризованного типа не порождает фактический параметр, который является BIT STRING (тип SIGNED), но полезен для предотвращения ошибок в других частях спецификации.
А.2 Пример использования параметризованных определений вместе с классом информационных объектов
Используют классы информационных объектов для сбора всех параметров абстрактного синтаксиса. Таким образом, число параметров абстрактного синтаксиса может быть сокращено до одного, который является экземпляром совокупности классов. Продукция “InformationFromObject” может быть использована для извлечения информации от параметра объекта.
Пример
- - Экземпляр этого класса содержит все параметры для
- - абстрактного синтаксиса Message-PDU.
MESSAGE-PARAMETERS : : = CLASS {
&maximum-priority-level INTEGER,
&maximum-message-buffer-size INTEGER,
&maximum-reference-buffer-size INTEGER
}
WITH SYNTAX {
THE MAXIMUM PRIORITY LEVEL 1S &maximum-priority-level
THE MAXIMUM MESSAGE BUFFER SIZE 1S &maximum-message-buffer-size THE MAXIMUM REFERENCE BUFFER SIZE 1S &maximum-reference-buffer-size
- - Продукция “ValueFromObject” используется для извлечения
- - значения от абстрактного параметра синтаксиса, “param”.
- - Значения могут быть использованы только в ограничениях.
- - Кроме того, параметр передается посредством другого
- - параметризованного типа.
Message-PDU {MESSAGE-PARAMETERS:param} : : = SEQUENCE { priority-level INTEGER (0..param.&maximum-priority-level),
message BMPString (SIZE (0..param.&maximum-message-buffer-size)),
reference Reference {param}
Reference {MESSAGE-PARAMETERS:param}: : =
SEQUENCE OF
IA5String (SIZE (0..param.&maximum-reference-buffer-size))
- - Определение информационного объекта параметризованным
- - абстрактным синтаксисом.
- - Параметр абстрактного синтаксиса используется только в ограничениях.
message-Abstract- Sintax {MES SAGE-PARAMETERS:param} ABSTRACT-SINTAX : : =
{
Message-PDU {param}
IDENTIFIED BY {joint-iso-coitt asnl(l) examples (123) 0}
Класс MESSAGE-PARAMETERS и объект параметризованного абстрактного синтаксиса message-Abstract-Syntax используются следующим образом:
- - Этот экземпляр MESSAGE-PARAMETERS определяет значения
- - параметров абстрактного синтаксиса.
10