БЗ 7- 91/794
государственный стандарт
СОЮЗА ССР
ИНФОРМАЦИОННАЯ ТЕХНОЛОГИЯ
ВЗАИМОСВЯЗЬ ОТКРЫТЫХ СИСТЕМ.
СПЕЦИФИКАЦИЯ
АБСТРАКТНО-СИНТАКСИЧЕСКОЙ
НОТАЦИИ ВЕРСИИ I (АСН.1)'
ГОСТ 34.973-91
(ИСО 8824-87)
Издание официальное
КОМИТЕТ СТАНДАРТИЗАЦИИ И МЕТРОЛОГИИ СССР
Москва
УДК 641.224:621.391 : 006.354 Группа 1185
ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР
Информационная технология
ВЗАИМОСВЯЗЬ ОТКРЫТЫХ СИСТЕМ. СПЕЦИФИКАЦИЯ АБСТРАКТНО- ГОСТ
СИНТАКСИЧЕСКОЙ НОТАЦИИ ВЕРСИИ I (ACH I) 34.973—91
Information technology. (ИСО 8824—87)
Open systans interconnection. Specification of abstract syntax notation one (ASN.l)
ОКСТУ <X>34
Дата введения 01.07 92
Настоящий государственный стандарт распространяется на синтаксис передачи данных в прикладном уровне базовой эталонной модели взаимосвязи открытых систем и устанавливает спецификацию абстрактно-синтаксической нотации версии 1 (АСН.1), описывающую значения типов данных пользователя без указания конкретного способа представления этих значений при их передаче.
Требования настоящего стандарта являются обязательными.
Настоящий государственный стандарт эквивалентен стандарту Международной организации по стандартизации, за исключением;
а) упорядоченного использования аббревиатур;
б) в разд. 7.1 в примечание 2 введена новая табл. 3, содержащая знаки «кириллицы» с введением новой формулировки текста примечания 2;
в) введено дополнительно приложение 8. содержащее примеры использования идентификаторов объектов в виде графов компонентов идентификаторов объектов.
0. ВВЕДЕНИЕ
На нижних уровнях базовой эталонной модели (ГОСТ 28906) каждый параметр данных пользователя, задаваемый в сервисном примитиве, определяется как двоичное значение некоторой последовательности октетов.
На уровне представления характер параметров данных пользователя становится иным. Стандарты по прикладному уровню
Издание официальное
© Издательство стандартов, 1991 Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен без разрешения Госстандарта СССР
С. 2 ГОСТ 34.973-91
требуют, чтобы данные пользователя услуг представления могли принимать значения весьма сложных типов, возможно, включающих строки знаков из различных знаковых наборов. Эти стандарты требуют наличия определенной нотации, которая определяла бы передаваемое значение, не задавая конкретный способ представления этого значения. Способ представления определяется заданием одного или нескольких алгоритмов, называемых правилами кодирования. Правила кодирования определяют конкретный вид октетов на сеансовом уровне, с помощью которых передаются значения данных прикладного уровня (синтаксис передачи). Протокол уровня представления позволяет взаимодействующим объектам договариваться о том, какие синтаксисы передачи будут ими использоваться.
Цель задания значения состоит в том, чтобы отличить его от всех возможных других значений. Объединение некоторого значения с другими значениями, отличными от данного, называется типом, каждый конкретный элемент этой совокупности является значением этого типа. С более общих позиций значение или тип часто могут рассматриваться как образования, состоящие из более простых значений или типов, между которыми установлены взаимосвязи. В качестве синонима термина «тип» часто используется термин «тип данных».
Для правильной интерпретации конкретного представления значения (например с помощью пометок на бумаге или битов, передаваемых по линии связи) необходимо знать тип передаваемых данных (обычно определяемый из контекста). Таким образом, указание типов является одним из важных вопросов, рассматриваемых в настоящем стандарте.
Одним из общих методов определения сложных типов является определение небольшого количества «простых типов» путем задания всех возможных значений этих типов и последующего образования различных комбинаций из этих простых типов. Некоторые из способов определения новых типов перечислены ниже:
а) имея (упорядоченный) список существующих типов, можно сформировать новое значение как последовательность, в которую входит по одному значению из каждого типа, входящего в список; совокупность всех возможных значений, получаемых таким образом, образует новый тип (если все уже определенные типы, входящие в список, являются различными, то можно расширить этот способ, допуская пропуск некоторых значений из списка);
б) имея список существующих типов можно сформировать новое значение как (неупорядоченное) множество значений, в которое входит по одному значению из каждого типа, входящего в список; совокупность всех значений, получаемых таким обра-
ГОСТ 34.473-91 С з
зом образует новый тин (этот способ можно также расширить, допуская пропуск некоторых значений);
в) имея один существующий тип, можно сформировать новое значение как (упорядоченную) последовательность млн (неупорядоченное) множество, состоящее из пустого множества значений, ■одного или более значений исходного типа; (неограниченная) совокупность всех возможных значений, полученных таким образом, образует новый тип;
г) имея список различных существующих типов, можно выбрать какое-либо значение из одного из этих типов; множество всех возможных значений, получаемых таким образом, образует новый тип;
д) имея некоторый тип, можно сформировать новый тип как •подмножество исходного типа, используя некоторую структурную или порядковую взаимосвязь между элементами исходного множества.
Типы, определенные с помощью описанных выше методов, называются структурированными типами.
Каждому типу, определенному посредством нотации, описываемой настоящим стандартом, назначается тег. Тег либо определен в самом стандарте, либо определяется пользователем описываемой здесь нотации
Часто один и тот же тег назначается нескольким разным типам, при этом конкретный тип идентифицируется контекстом, о котором используется тег.
Пользователь настоящей нотации может присвоить новый тег какому-либо существующему типу, создавая тем самым новый тип. отличный от первоначального. Это может потребоваться в тех случаях, когда необходимо определить, какой выбор был сделан в ситуации типа, описанной выше.
Настоящей нотацией определяется четыре класса тегов.
Первый класс называется универсальным классом. Использование тегов универсального класса определяется спецификациями настоящего стандарта, причем каждый тег либо:
а) присвоен какому-то одному типу, либо
б) присвоен некоторому способу построения типов.
Второй класс тегов называется прикладным классом. Теги прикладного класса присваиваются типам данных в других стандартах. В рамках одного стандарта тег прикладного класса присвоен только какому-то одному типу.
Третий класс тегов называется пользовательским классом. Теги пользовательского класса не присваиваются в международных стандартах. Порядок их использования может быть различным в различных организациях.
С 4 ГОСТ 34.973-91
Четвертый класс тегов называется контекстно-зависимым классом. Теги этого класса могут свободно назначаться при любом использовании настоящей нотации и интерпретируются в соответствии с контекстом, в котором они используются.
Теги ориентированы главным образом на обработку данных в машине и нс несут существенной информации при использовании нотации человеком. Однако в тех случаях, когда необходимо потребовать, чтобы все типы были различными, это выражается требованием различия тегов, присвоенных вышеупомянутым типам. Таким образом, присвоение тегов является важным аспектом использования настоящей нотации.
Примечания:
I. Все типы, которые могут быть определены с использованием йотаций, описываемой настоящим стандартом, имеют теги Пользователь настоящей нотации может определим, новый тип, присваивая новый тег ранее определенному типу.
2. Правила кодирования гарантируют явное или неявное задание типа тега вместе со значением данного типа при любом представлении этого значения. Ограничения, нахладихдемие на нспилыоиаиие настоящей нотации, обеспечиваю! достаточность тега для идентификации типа при условии доступности определений соответствующих типов.
Настоящий стандарт определяет нотацию, которая является как средством определения сложных типов данных, так и средством задания конкретных значений этих типов. Это осуществляется без указания конкретного способа представления (в виде последовательности октетов) значений данного типа при их передаче Нотация, обладающая этим свойством, называется нотацией для определения абстрактного синтаксиса.
Назначение настоящего стандарта состоит в описании нотации для определения абстрактного синтаксиса, называемой абстрактно-синтаксической нотацией версии I (АСН.1). Абстрактно-синтаксическая нотация версии I является полуформальным средством, используемым при определении протоколов. Использование настоящей нотации само но себе не исключает неоднозначность соответствующих спецификаций. Обеспечение однозначности спецификаций должно осуществляться пользователем нотации.
Настоящий стандарт должен применяться вместе с другими стандартами, определяющими правила кодирования. Применение правил кодирования к значениям некоторго типа, установленным в ACH.I, полностью определяет представление этих значений при передаче, т. е. синтаксис передачи.
С технической точки зрения настоящий стандарт согласуется с соответствующими частями рекомендации МККТТ X. 409 (1984).
Разд. 1 настоящего стандарта содержит определения простых типов, используемых в ACH.I, и определяет обозначения, которые
ГОСТ 34.973- 91 С. 5
следует использовать для ссылок на простые типы и для описания структурированных типов. В главе 1 также описываются обозначения, которые следует использовать при задании значений типов, определенных с помощью АСН.1.
В разд. 2 настоящего стандарта определяются дополнительные типы (типы «строка знаков»), которые применением правил кодирования могут быть приравнены к типу «строка октетов».
В разд. 3 настоящего стандарта определяются некоторые структурированные типы, которые являются общеупотребительными н в то же время не требуют введения новых правил кодирования, отличных от правил кодирования ранее определенных типов.
Приложение 1 определяет нотацию, расширяющую базовую нотацию АСН.1. Эти расширения называются макросредствамн.
Приложение 2 содержит определение логического дерева идентификаторов объекта для источников идентификации.
Приложение 3 содержит определение логического дерева идентификаторов объектов для источников идентификации.
Приложение 4 содержит определение логического дерева идентификаторов объектов для совместного использования ИСО и мкктт.
Приложение 5 содержит примеры и рекомендации по использованию нотации АСН.1.
Приложение 6 содержи! сводку синтаксиса нотации АСН.1, использующую правила описания синтаксиса, описанные в разд 5.
В приложении 7 приводится алфавитный указатель ключевых слов, типов и основных терминов.
Приложение 8 содержит графы компонентов идентификаторов объектов (введено дополнительно для иллюстрации примеров использования идентификаторов объектов).
Приложение 9 содержит ссылочные нормативно-технические документы
Текст настоящего стандарта (в особенное!и это относится к приложениям 2—4) является результатом договоренности между ИСО и мкктт.
1. НАЗНАЧЕНИЕ И ОБЛАСТЬ ПРИМЕНЕНИЯ
Настоящий стандарт описывает нотацию для определения абстрактного синтаксиса, называемую абстрактно-синтаксической нотацией версии 1 (АСН.1).
Настоящий стандарт определяет ряд простых типов, вместе с присвоенными им тегами, и обозначения, которые следует использовать для ссылок на эти типы, а также для задания значении этих типов.
2 Злг. 1720
С. 6 ГОСТ 34.973-91
Настоящий стандарт определяет методы построения новых типов из более простых типов и обозначения, которые следует использовать при определении такого рода структурированных типов и присвоении нм тегов, а также при задании значений этих типов.
Настоящий стандарт определяет знаковые наборы, используемые в АСН.1 (с помощью ссылок на другие стандарты).
Нотация АСН.1 может применяться во всех случаях, где требуется определить абстрактный синтаксис информации. Одной из сфер ее применения (но не единственной) являются стандарты но протоколам прикладного уровня
Ссылки на нотацию АСН.1 содержатся в других стандартах по уровню представления, в которых определяются правила кодирования для простых типов, структурированных типов, различных типов «строка знаков» и общеупотребительных типов, определенных в нотации АСН.1.
2. ССЫЛКИ
ИСО 8601 (ГОСТ 24520) «Цифровое обозначение дат») «Элементы данных и форматы обмена. Обмен информацией. Представление дат и времени».
ИСО 3166 «Коды для представления названий стран».
(ГОСТ 28906) «Системы обработки информации. Взаимосвязь открытых систем. Базовая эталонная модель» (см. также Рекомендацию МККТТ Х.200).
ИСО 8825 (ГОСТ 34.974) «Системы обработки информации. Взаимосвязь открытых систем. Описание базовых правил кодирования для абстрактно-синтаксической нотации версии 1 (АСН.1)».
МККТТ Х.409 «Системы обработки сообщений. Синтаксис и нотация представления информации при передаче».
3. ОПРЕДЕЛЕНИЯ
Термины, используемые в настоящем стандарте, и их определения — по ГОСТ 28906 со следующими дополнениями.
3.1. Значение —отличный от других элемент множества значений.
3.2, Тип — множество значений, которому присвоено имя.
3.3. Простой тип —тип, определяемый прямым заданием множества составляющих его значений.
3.4. Структурированный тип—тип, при определении которого используются ссылки на другие типы.
I OCT 34.973-91 c. 7
3.5. Тип-компонент —одни из типов, используемых при определении структурированного типа.
3.6. Тег —обозначение типа, присваиваемое каждому типу в АСН.1.
3.7, Тегирование — изменение существующего тега (возможно, заданного по умолчанию) некоторого типа новым тегом.
3.8. Набор знаков АСН.1 — набор знаков, определенный в разд. 7, который используется в обозначениях нотации АСН.1.
3.9. Элементы — поименованные последовательности знаков из набора знаков АСН.1, определенные в разд. 8, используемые для формирования обозначений нотации АСН.1.
3.10. Ссылка на тип (или значение) — имя, однозначно идентифицирующее тип (или значение) в рамках некоторого контекста.
При и снами,с. Ссылочные имена присваиваются типам, определяемым в настоящем стандарте; эти имена могут применяться при любом использовании АСН.1. Другие ссылочные имена определены в других стандартах, они применимы только н контексте соответствующих стандартов
3.11. Правила кодирования АСН.1 — правила, определяющие конкретное представление (при передаче) значений любых типов, определенных в АСН.1; правила кодирования АСН.1 позволяют получателю распознать переданную информацию как конкретное значение конкретного тина, определенного в АСН.1.
3 12. Тин «строка знаков» — тип, значения которого являются строками знаков из некоторого набора знаков.
3.13. Булевский тип —простой тип с двумя различными значениями.
3 14. Истина — одно из двух различных значений булевского типа.
3.15. Ложь —другое значение булевского типа.
316. Целочисленный тип —простой тип с различными значениями, ямляющимися положительными или отрицательными целыми числами, включая нуль (рассматриваемый как одно значение).
Примечание. Конкретные правила кодирования ограничивают диапазон, в котором могут находиться числа, однако рамки этих ограничений выбраны достаточно широкими для того, чтобы быть практически Мошугкмымн для любого из пользователей АСН.1. Тем не менее, конкретный пользователь АСН.1 может указать с помощью комментария, что используется более ограниченный диапазон чисел
3.17. Тип «строка знаков» — простой тип, различными значениями которого являются упорядоченные последовательности из пустого множества битов, одного или более битов.
Примечание. Правила кодировании не ограничивают число битов в строке битов. Тем не менее, конкретный пользователь может указать с помощью комментария, что используются строки, содержащие количеств:) бигав, находя-
С. 8 ГОСТ 34.873-91
щ«ся о диапазоне между некоторыми мннпмалным и максимальным значениями
3.18. Тип «строка октетов# — простой тип, различные значения которого являются упорядоченными последовательностями из пустого множества октетов, одного или более октетов, где октет — это упорядоченная последовательность из восьми битов.
Примечание Правила кодирования не ограничивают число октетов в строке октетов. Тем не менее, конкретный пользователь может укатать с помощью комментария, что используются строки, содержащие количество октетов, находящееся а диапазоне между некоторыми минимальным и максимальным значениями.
3.19. Вырожденный тип (тин NULL) — простой тип. состоящий из единственного значения, также называемого вырожденным значением («NULL»).
Примечание. Вырожденное значение обычно используется в тех случаях, когда возможно несколько различных вариантов, но ин один из них не имеет места
3.20. Тип «последовательность» —структурированный тип, определяемый ссылкой на фиксированный упорядоченный список типов (некоторые из которых могут быть объявлены необязательными); каждое значение нового типа является упорядоченной по-следопагелькостью значений типов-компонентов, ио одному из каждого из них.
Примечание Если тип-компонент объявлен необязательным, то значение нового типа может не включать в себя значение этого типа-компонент»
3.21. Тип «последовательность из» — структурированный тип, определяемый ссылкой на одни из существующих типов; каждое значение нового типа является упорядоченной последовательностью из пустого множества значений, одного или более значений существующего типа.
Примечание Правила кодирования не ограничивают число значений-компонентов в значении «последовательность из» Тем не менее, конкретный пользователь ACH.I может указать с помощью комментарии минимальное и максимальнее количество значений.
3.22. Тип «множество»—структурированный тип, определяемый ссылкой на фиксированный неупорядоченный список различных типов (некоторые из которых могут быть объявлены необязательными); каждое значение нового типа является неупорядоченным списком значений, по одному из каждого типа-компонента.
Примечание. Если тип-компонент объявлен необязательным, тп новый тип необязательно содержит значение «тон» типа-компонента.
3.23. Тип «множество из» — структурированный тип, определяемый ссылкой на единственный существующий тип; каждое зна-
ГОСТ 34-973-91 С. 9
чение нового типа является неупорядоченным списком из нуля, одного или нескольких значений существующего типа.
Примечание. Правила кодирования не Ограничивают число значений-компонентов и значении «множество из». Тем не менее, полыивателц ЛСН I может указать с помощью комментария минимальное и максимальное количество значений, а также потребовать, чтобы все значения были различными.
3.24. Тегированный тип —тип, определяемый указанием одного из существующих типов и тега; новый тип является изоморфным существующему типу, но отличен от него.
3.25. Выборочный тип — структурированный тип, определяемый указанием фиксированного неупорядоченного списка различных типов; каждое значение нового типа является значением одного нз типов-компонентов.
3.26. Селективный тип —структурированный тип. определяемый указанием одного из типов-компонентов выборочного типа.
3.27. Произвольный тип выборочный тип, тины-компоненты которого не заданы, но ограничены множеством типов, которые могут быть определены с помощью ЛСН.1.
3.28. Внешний тнп—тип, различные значения которого не могут быть установлены только лишь по той информации, что они являются значениями внешнего типа, однако значения этого типа могут быть установлены по их кодовому представлению; эти значения могут быть (но это необязательно)описаны с помощью АСН 1. и, соответственно, их кодовое представление может (но необязательно) соответствовать правилам кодирования для АСН.1.
3.29. Информационный объект — некоторая точно определенная совокупность информации, определение нлн спецификация, использование которой в конкретном взаимодействии идентифицируется соответствующим именем.
3.30. Идентификатор объекта — значение (отличающееся от других подобных значений), которое связывается с информационным объектом.
3.31. Тнп «идентификатор объекта» тнп. различные значения которого составляют множество всех идентификаторов объектов, присвоенных в соответствии с правилами настоящего стандарта.
Примечание. Правила настоящего стандарта предоставляют возможность целому ряду организаций — источников идентификации — независимо друг от друга связывать идентификаторы объектов с информационными объектами
3.32, Тип «описатель объекта» — тип, различные значения которого имеют нид текста, ориентированного на восприятие человеком и дающего краткое описание информационного объекта.
Примечание. Обычно (но не всегда) описатель объекта связывается с каким то одним информационным объектом Информационный объект полностью идентифицируется только с помощью идентификатора объекта,
G. 10 ГОСТ 34 973-91
3.33. Рекурсивные определения — множество таких определений, допускающихся в нотации АСН.1, которые не могут быть переупорядочены таким образом, чтобы все типы, использующиеся в соответствующих конструкциях этих определений, были определены до использования этих конструкций.
Примечание. Рекурсивные определения разрешены в ЛСН.1; пользователь згой нотации должен позаботиться о том, чтобы используемые значения получаемы* в результате т ипов имели конечное представление
3.34. Модуль — одно или несколько выражений нотации АСН.1 для определения типов и значений, оформленных как единое целое в соответствии с обозначениями определения модулей (см. разд. 9).
3,35. Продукция — часть формальной системы обозначений, используемой при спецификации АСН.1, в которой допустимым последовательностям элементов присваивается имя, которое может быть использовано для последующих ссылок на эти последовательности при определении новых допустимых последовательностей.
3.36. Всемирное согласованное время (UTC) — временной эталон, поддерживаемый Международным бюро времени и служащий основой для согласованного распространения частот н сигналов времени.
Примечания:
I Источником этого определения является рекомендация 460—2 Международной консультативной комиссии по радио (CCIR). Акронам UTC для всемирного согласованного времени также был введен CCIR.
2. IJТС также называют средним гринвичским временем; соответствующие временные сигналы регулярно транслируются
3.37. Пользователь (нотации АСН.1) — частное лицо или организация, определяющие абстрактный синтаксис некоторой информации. используя АСН.1.
4. СОКРАЩЕНИЯ
АСН.1 — абстрактно-синтаксическая нотация версии 1.
UTC — всемирное согласованное время.
ICD — международный кодовый определитель.
5. СИСТЕМА ОБОЗНАЧЕНИЙ, ИСПОЛЬЗУЕМАЯ В НАСТОЯЩЕМ СТАНДАРТЕ
Нотация АСН.1 строится из последовательностей знаков знакового набора ЛСН.1, определенного в разд. 7.
Каждый конкретный случай использования нотации ЛСН.1 содержит знаки из знакового набора АСН.1, сгруппированные в эле-
ГОСТ 34.973-91 С. 11
менты. В разд. 8 определяются все последовательности знаков, образующие элементы нотации АСН.1, и каждому элементу присваивается имя.
Нотация АСН.1 определяется в разд. 9 (и последующих разделах) путем описания совокупности последовательностей элементов. которые образуют правильные варианты использования нотации АСН.1, и определения семантики каждой такой последовательности.
Для того, чтобы описать эту совокупность последовательностей, в настоящем стандарте используется формальная система обозначений. определяемая в последующих подразделах.
5.1. Продукция
Продукция — это правило образования новой (более сложной) совокупности последовательностей.
С помощью продукции, используя имена совокупностей последовательностей, определенных в настоящем стандарте, строят новую совокупность последовательностей двумя способами:
а) образованием новой совокупности из последовательностей, содержащихся в любой из исходных совокупностей, либо
б) образованием новой совокупности из всех последовательностей, которые могут быть получены путем выбора одной последовательности из каждой исходной совокупности и соединения вы бранных последовательностей в заданном порядке.
Каждая продукция включает части, образующие одну или несколько строк, в следующем порядке:
а) имя новой совокупности последовательностей;
б) знаки:
в) одна или несколько совокупностей-вариантов последовательностей. определенных по правилам, описанным в подразделе 5.2 и разделенных знаком:
I.
Последовательность присутствует в новой совокупности, если •она присутствует в одной или нескольких совокупностях-вариантах. Ссылки на новую совокупность в настоящем стандарте осуществляются путем задания имени перечисления а).
Примечание Если одна и та же последовательность присутствует в яескодькпх сонохуиностях-вариантмл. to любая семантическая неоднозначность полученного обозначения снимается с помощью других частей полиол последовательности, определяемой данной продукцией.
5.2. Совокупност ив ар и анты
Каждая из совокупностей-вариантов, упомянутых в перечислении в) п. 5.1, задается с помощью списка имен. Каждое из этих имен является либо именем элемента, либо именем совокупности
С. 12 ГОСТ 34.973-91
последовательностей, определенных с помощью продукция в настоящем стандарте.
Совокупность-вариант состоит из всех последовательностей, получаемых выбором произвольной последовательности (или элемента) из совокупности, определяемой первым именем, за которой помещается произвольная последовательность (или элемент) из совокупности, определяемой вторым именем, за которой в свою очередь помешается произвольная последовательность (или элемент) из совокупности, определяемой третьим именем, и так далее, вплоть до последнего имени, заданного для данного варианта.
53. Пример продукции
Значенне-СтрокаБитов : : = b-строка 1 h-строка I {Список-Идентификаторов)
Приведенная выше запись является примером продукции, которая связывает имя Значенне-СтрокаБитов со следующими последовательностями:
а) произвольным элементом «Ь-строка»;
б) произвольным элементом «h-строка»;
в) произвольной последовательностью из совокупности с именем «Список Идентификаторов», перед которой следует знак «{» и за которой следует знак «)».
Примечание. Зваки «(» и <)» являются именами элементов, состоящими из одного знака, соответственно «(* и *)*.
«Список-Идентификаторов» в данном примере должен быть определен другой продукцией, которая может быть приведена как до. так и после продукции «Значенне-СтрокаБитов».
5.4. Расположение текста
Каждая продукция, используемая в настоящем стандарте, предваряется пустой строкой; за продукцией также следует пустая строка. Внутри продукции пустые строки отсутствуют. Продукция может либо состоять из одной строки, либо быть разбитой на несколько строк. Расположению текста продукции не придается какого-либо значения.
5.5. Рекурсия
Продукции, используемые в настоящем стандарте, часто являются рекурсивными. Рекурсивные продукции применяются неограниченное число раз до тех пор, пока не будут исчерпаны все порождаемые ими последовательности.
Примечание. Во многих случаях такое повторное применение продукции приводит к неограниченной совокупности разрешенных яоследомтельностей. некоторые из которых сами могут быть неограниченными. Это не является ошибкой
ГОСТ 34.973-91 С. 13
Таблица I
Присвоение теки универсального класс*
UNIVERSAL 1 Булевский тип
UNIVERSAL 2 Целочисленный тип
UNIVERSAL 3 Гии «стрела битое»
UNIVERSAL 4 Тип «строка октетов»
UNIVERSAL 5 Вырожденный тип
UNIVERSAL б Тип «адемтифихатор объекта»
UNIVERSAL 7 Тип описатель объекта»
UNIVERSAL 8 Внешний тип
UNIVERSAL $—16 Зарезервированы для дополнений к настояще
му стандарту
UNIVERSAL 16 Типы «последовательность» и «последователь'
«ость на»
UNIVERSAL 17 Типы «множество» и «множество из»
UNIVERSAL 13—22. Типы «строка знаков»
25-27
UNIVERSAL 23-24 Типы «время»
UNIVERSAL 28— . Зарезервированы для дополнений к нестояще-
му стандарту
5.6. Ссылки на совокупность последовательностей
В настоящем стандарте ссылки на совокупность последователь' ногтей (часть нотации АСН.1) осуществляются указанием первого имени в продукции (перед знаками «: :’—»); если ссылка на имя не является частью продукции, то нмя обрамляется знаками «кавычки», с тем чтобы отличить его от остального текста на естественном языке.
5.7. Ссылки на элемент
В настоящем стандарте ссылки на элемент осуществляются указанном имени элемента; если нмя нс является частью продукции, го оно обрамляется знаками «кавычки», с тем чтобы отличить его от остального текста на естественном языке.
5.8. Теги
Тег задается указанием его класса и номера в классе. Определены следующие классы тегов:
универсальный (univesal);
прикладной (application);
пользовательский (private);
контекстно-зависимый (context-spesific).
Номер задается в виде неотрицательного целого числа в десятичной системе счисления.
Ограничения на теги, присваиваемые пользователем АСН.1, определены в разд. 24.
Теги универсального класса назначаются таким образом, чтобы для структурированных типов по тегу .можно было определить
7 Зак 172-и
С. 14 ГОСТ 34.973 -91
структуру верхнего уровня, а для простых типов тег полностью определял тип. В табл. I перечисляются теги универсального класса.
Примечание Для дополнений к настоящему стандарту резервируется дополнительное множество тегов.
6. ИСПОЛЬЗОВАНИЕ НОТАЦИИ ACH.I
6.1. Обозначения нотации ACH.i для определения типа определяются продукцией «Тип» (п. 12.1).
6.2. Обозначения нотации АСН.1 для определения значения типа определяются продукцией «Значение» (п. 12.6).
Примечание. Невозможно интерпретировать значение, не зная типа, к которому оно относится
6.3. Обозначения нотации АСН.1 для присвоения типа ссылке на тип определяется продукцией «Присвоение Типа* (п. 11.1).
6.4. Обозначения нотации АСН.1 для присвоения значения ссылочному имени значения определяются продукцией «Присвоение Значения» (п. 11.2).
6.5. Обозначения вида «ПрисвоснаеТкпа» к «ПрисвоенмеЗиа-чения» должны использоваться только внутри обозначения вида «ОпределениеМодулят (п. 9.1).
7. НАБОР ЗНАКОВ НОТАЦИИ АСН.1
7.1. Каждый элемент АСН.1 состоит из последовательности знаков, перечисленных в табл, 2, за исключением случаев, описанных в пл. 7.2 и 7.3.
Т аблица 2
Набор знаков АСН.1
От А до Z от а до г От 0 до 9 : = .{}<• I__ОН-’»
Примечания:
1. Дополнительно к знакам, перечисленным п табл. 2, а макрснотанни ис-пользуютси знаки «I» и «>»
2. Настоящим стандартом допускается присутствие знаков, перечисленных о табл. 3, в следующих ’ элементах (пять последних элементов определяются в приложении 1):
СсылкаНаТип (п 82.1);
Идентификатор (п. 8 3);
СсылкаНвЗначемие (п. к.4);
СсылкаНаМодуль (п. 8.5);
ГОСТ 34.973-91 С. 16
Макроссьыка (п. 1.2.1);
СсылкзНаПродукиню (п 1.2 2);
ЛокальпаяСсылкаНзТип (п. 1.2.3);
Локальная ссылка на Значение (п 1.2.4); a-строка (Я. 1.27).
Таблица 3
Дополнительный набор знаков АСН.1
От А до Я От а до я
7.2. При использовании нотации для определения значения типа «строка знаков» в обозначение нотации АСН.1 могут входить все знаки заданного знакового набора, обрамленные знаками «кавычки» (п. 8.11).
7.3. Дополнительные символы (не включенные в табл. 2) могут входить в состав элемента «комментарий» (п. 8.6),
7.4. Не следует придавать ни какого-либо значения типографскому стилю, размеру, цвету, яркости и другим характеристикам знаков нотации, связанным со способом их отображения.
7.5. Строчные и прописные буквы следует рассматривать как различные знаки.
8 ЭЛЕМЕНТЫ АСН.1
8.1. Общие правила
8.1.1. В следующих подразделах определяется, с помощью каких знаков образуются элементы АСН.1. В каждом случае дается имя элемента и определение знаковых последовательностей, из которых может состоять элемент.
Примечание. В приложения 1 определяю!» дшимнигздоные элементы, использующие» в макрожлэцни.
8.1.2. Каждый из элементов, определяемых в последующих подразделах, должен располагаться в пределах одной строки и (за исключением элемента «комментарий») не должен содержать пробелов
8.1.3, Длина строки не ограничивается.
8.1.4. Элементы в последовательностях, определяемых настоящим стандартом (в обозначениях нотации АСН.1), могут располагаться на одной или на нескольких строках и могут разделяться одним или несколькими пробелами или пустыми строками.
8.1.5. Всякий элемент должен отделяться от следующего за ним элемента пробелом или помещением его на следующую строку, если начальный знак (или знаки) следующего элемента являются разрешенными для включения в конец последовательности
з*
С. 16 ГОСТ 34.973-91
знаков предыдущего элемента.
8.2. Ссылки на тип
Имя элемента — СсылкаНаТип.
8.2.!. Элемент «СсылкаНаТип» должен состоять из произвольного количества (большего или равного единице) букв, цифр и дефисов. Начальный знак должен быть прописной буквой. Последний знак не должен быть дефисом. Два дефиса не должны следовать друг за другом.
Примечание. Правша, относящиеся к использованию дефисз, вводятся для избежания пеодпозначиости. которая могла бы быть вызнала наличием комментария, следующего за элементом.
8.2.2. Элемент «СсылкаНаТип» не должен совпадать с одной из зарезервированных знаковых последовательностей, перечисленных в табл. 4.
8.3. Идентификаторы
Наименование элемента — Идентификатор.
Элемент «Идентификатор» должен состоять из произвольного количества (большего или равного единице) букв, цифр и дефисов. Начальный знак должен быть строчной буквой. Последний знак не должен быть дефисом. Два дефиса не должны следовать друг за другом.
Примечание- Правила, относящиеся к рсирль^оианвю дефиса, вводятся для избежания неоднозначности, которая могла бы быть вызвана наличием комментария, следующего за элементом
Табл н ца 4
Зарезервированные последовательности знаков
| BOOLEAN INTEGER BIT
I STRING
I OCTET
I NULL SEQUENCE OF SET IMPLICIT CHOICE ANY EXTERNAL OBJECT IDENTIFIER OPTIONAL DEFAULT COMPONENTS TRUE FALSE BEGIN END
ГОСТ 31.973-91 С. 17
Примечание. В приложении [ (п. 1.2.9) определены другие последова-тельнисти злаков, зарезервированные при ислольз,ванни в тексте макроопре-делений.
8.4. Ссылки на значение
Имя элемента — СсылкаНазначение.
Элемент «СсылкаНаЗнауение» должен состоять нз последовательности знаков, удовлетворяющей определению элемента «Идентификатор» в п. 6.3. Отличие элемента «СсылкаНаЗначение» от элемента «Идентификатор» при анализе конкретного использования настоящей нотации достигается различием контекстов, в которых появляются эти элементы.
8.5. Ссылка на модуль
Имя элемента — СсылкаНаМодуль.
Элемент «СсылкаНаМодуль» должен состоять из последовательности знаков, удовлетворяющей определению элемента «Ссыл-каНаТип» в п 8.2. Отличие элемента «СсылкаНаМодуль» от элемента «СсылкаНаТип» при анализе конкретного использования настоящей нотации обеспечивается различием контекстов, в Которых появляются эти элементы.
8.6. Комментарий
Имя элемента — Комментарий.
8.6.1 Ссылки на «Комментарий» не используются в рамках определения нотации АСН.1. «Комментарий», тем не менее, может присутствовать в любом месте между другими элементами нотации АСН.1, формально не имея никакого значения.
8.6.2. «Комментарий» начинается с пары следующих друг за другом дефисов и заканчивается другой парой следующих друг за другом дефисов, либо концом текущей строки, в зависимости от того, что последует раньше. Комментарий не может содержать в себе пару следующих друг за другом дефисов, кроме той, с которой он начинается и. если она имеется, той, которая его завершает. Комментарий может содержать знаки, не являющиеся элементами знакового набора, определенного в п. 7.1 (п. 7.3).
8.7. П у с т о й элемент
Имя элемента — Пусто.
Элемент «Пусто» не содержит никаких знаков. Он используется при задании совохупкостей-вариантов в тех случаях, когда требуется указать, что возможно отсутствие всех приведенных альтернатив.
8.8. Элемент «число»
Имя элемента — Число.
Элемент «Число» состоит из одной или более цифр. Первая цифра не может быть нулем, за исключением случая, когда «Число» состоит нз одной цифры.
С. 18 ГОСТ 34.973-91
8.9. Элемент «двоичная строка»
Имя элемента — Ь-строка.
Элемент «двоичная строка» состоит из произвольного количества (от нуля и более) нулей и единиц, перед которыми следует знак «'» и за которыми следует пара знаков;
'В
Пример. '01101100'В.
8.10. Элемент «шестнадцатеричная строка»
Имя элемента—h-строка.
8.10.1. Элемент «шестнадцатеричная строка» состоит из произвольного количества (от нуля и более) знаков:
ABCDEF0I2345678 9,
перед которыми следует знак «'» и за которыми следует пара знаков:
'Н
Пример. 'АВ0186'Н
8.10.2. Каждый знак используется для обозначения значения полуоктета в шестнадцатеричном представлении.
8.11. Э л е м е н т «строка знаков»
Имя элемента — с-строка.
Элемент «с-строка» состоит из произвольного количества (or нули и более) знаков из набора знаков, который определяется типом рассматриваемой строки знаков, перед которыми и вслед за которыми следует знак ("). Если набор знаков содержит знак ("), то он представляется в элементе «с-строка» парой знаков ("). Набор знаков, о котором идет речь, совсем необязательно ограничивается знаками, перечисленными в табл. 2, он определяется типом рассматриваемого элемента «с-строка» (типом, для которого «СтрокаЗнаков» является значением) (см. п. 7.2).
Пример. " "
8.12. Элемент «присвоение»
Имя элемента — « : : — »
Этот элемент состоит из последовательности знаков: : : =
Примечание, Эта последовательность не содержит пробелов (см. п. 8.1.2).
8.13. Элементы, состоящие нз одного знака
Имена элементов — {
I
<
ГОСТ 34-973-9 J С. 19
- (дефис)
Элемент имеющий имя, входящее в приведенный выше перечень состоит из одного символа, образующего это имя.
8.14. Элементы —ключевые слова
Имена элементов:
BOOLEAN
INTEGER
BIT
STRING
OCTET
NULL
SEQUENCE
OF
SET
IMPLICIT
CHOICE
ANY
EXTERNAL
OBJECT
IDENTIFIER
OPTIONAL
DEFAULT
COMPONENTS
UNIVERSAL
APPLICATION
PRIVATE
TRUE
FALSE
BEGIN
END
DEFINITIONS
Элементы с именем, входящим в приведенный выше перечень, состоят из последовательности знаков, составляющей это имя.
Примечания:
1. В приведенных выше последовательностях знаков отсутствуют пробелы.
2. Последовательности из этого перечня, нс являющиеся зарезервированными (перечисленными в п. S2.2), могут быть отличны от других элементов, содержащих такие же знаки, с помощью контекста, в котором они присутствуют.
9. ОПРЕДЕЛЕНИЕ МОДУЛЯ
9.1. <ОпределениеМодуля» задается следующими продукциями)
Определен иеМодул я : : — СсылкаНаМодуль
С. 20 ГОСТ 34.973-91
DEFINITIONS
«::«■»
BEGIN
ТелоМодуля
END
ТелоМодуля : : = СпнсокПрнсвоеиий I
Пусто
СписокПрисвоекий : : = Присвоение I
СписокПрисвоений Присвоение Присвоение : : = ПрисвоениеТипа I
ПрисвоекиеЗначения
Примечания
1. В приложении I определяются последовательности вида «Макроопределение», которые также могут присутствовать в последовательности вида «Список Присвоений». Выражения, определяемые с помощью макроопределений, могут быть приведены как до, так и после самого макроопределения, в рамках того же модуля.
2. В отдельных (исключительных) случаях для использования в качестве примеров, а также для определения типов с тегами универсального класса по-следовательвость вида «Тело Модуля» может использоваться самостоятельно, а нс как часть последовательности «Определение Модуля».
3. Продукции «ИрнсвоениеТипа» и «ПрнсвоеннеЗначения» определяются в разд. II.
•1. Объединение типов данных, описываемых с помощью нотации АСН.1. и модули пеибилельно определяет способ формирования из значений представляемых данных поименованных абстрактных синтаксисов в целях определения контекста представления.
9.2. «Ссылка НаМодуль», присутствующая в продукции «Опре-делениеМодуля», называется именем модуля. Имена модулей выбираются таким образом, чтобы обеспечить полноту и согласованность всех последовательностей вида «Присвоением присутствующих в составных частях «ТелоМодуля» всех последовательностей вила «ОпределениеМодуля», в которых используется данное имя модуля. Множество последовательностей вида «Присвоение» считается полным и согласованным, если каждой содержащейся в ней последовательности вида «СсылкаНаТип» или «СсылкаНа Значение» соответствует в точности одна последовательность вида «ПрисвоениеТипа» пли «ПрисвоениеЗпаченпя» соответственно, которые устанавливают связь между именем и соответственно типом пли значением.
9.3. Имена модулей должны использоваться только один раз в сфере применения определения модуля, за исключением случаев, определенных в п. 9 4
Примечание. Рекомендуется следующая форма имен модулей, определенных п стандартах:
ГОСТ 34.973-91 С 21
JSOxxxx^yyyy,
где хххх — номер стандарта, а уууу — аббревиатура для названия этого стандарта (например JTM. ЕТАМ или CCR). Аналогичное соглашение может применяться в других стандартах.
9.4. Для обращения к элементам «СсылкаНаТип» и «Ссылка-Назначение* в модулях, отличных от тех, где вышеупомянутые элементы были определены, используются последовательности вида «ВнешняяСсылкаНаТип» и «ВнешняяСсылкаНаЗначение», определяемые следующими продукциями:
ВнешняяСсылкаНаТип : : =- СсылкаНаМодуль
СсылкаНаТип
ВнешняяСсылкаНаЗначение : : ~ СсылкаНаМодуль
СсылкаНаЗначснпе
10. ССЫЛКИ НА ОПРЕДЕЛЕНИЯ ТИПОВ И ЗНАЧЕНИЙ
10.1. Для задания ссылок на определения типов и значений используются последовательности, определяемые следующими продукциями:
ОпределснныйТнп : : — ВнешняяСсылкаНаТип |
СсылкаНаТип
ОпределениосЗначение : : •= ВнешняяСсылкаНаЗначение |
СсылкаНаЗначсние
10 2. Варианты «СсылкаНаТип» и «СсылкаНазначение» н приведенных выше продукциях должны использоваться только в тех же модулях, в которых данной ссылке на тип или значение соответственно был присвоен некоторый тип или некоторое значение (пп. Il l и 11.2).
10.3. «ВнешняяСсылкаНаТип» и «ВнешняяСсылкаНаЗначение» должны использоваться только в тех случаях, когда в модуле, определяемом элементом «СсылкаНаМодуль» данной ссылке на тип или значение был присвоен соответственно некоторый тип или некоторое значение (пп. 11.1 и 11.2).
11. ПРИСВОЕНИЕ ТИПОВ И ЗНАЧЕНИЙ
11.1. Присвоение ссылке на тип некоторого типа описывается продукцией «ПрнсвоениеТнпа»:
ПрисвоенисТнпа : : " СсылкаНаТип
С 22 ГОСТ 34.973- 91
Тип
Элемент «СсылкаНаТип» не должен совпадать с каким-либо именем, используемым для ссылки на один из типов «строка знаков», определенных в разд. 2, а также не должен совпадать с каким-либо именем, используемым для ссылки на типы, определенные в разд. 3.
11.2. Присвоение ссылке на значение некоторого значения описывается продукцией «ПрисвоениеЗначения»:
ПрисвоениеЗначения : : = СсылкаНаЗначение Тип «: : ~» Значение
Последовательность «Значение», присваиваемая ссылке на значение, должна быть допустимым выражением (п. 12.6), описи-наютем некоторое значение, имеющее тип, определяемый последовательностью «Тип».
12. ОПРЕДЕЛЕНИЕ ТИПОВ И ЗНАЧЕНИЙ
12.1. Тип определяется одной из последовательностей вида «Тип»:
Тип : : = ВстроенныйТил : ОпределенныйТяп (п. 10.1)
ВстроенкыйТнп : : = БулевскийТнп
ЦелочисленныйТип Тип Строка Бигов Тнп -Строк аОктетов Вы рожден ныйТип Тип-Последовательность Тип-Последова тельностьИз Тип-Множество Тип-МножествоИз ВыборочныйТип СелективныйТил ТегнрованныйТип Произвольны йТип Тип-ИдентификаторОбъекта Тип-СтрокаЗнаков ОбщеупотребитсльнийТип
Примечания:
I. В качестве последовательности вила «Тип» также может использоваться обозначение типа, определенное с помощью макроногацив.
2. В дополнениях к настоящему стандарту могут быть определены другие встроенные типы.
« ОСТ 34-973-91 с. 23
12.2. Обозначение «ВстроекныйТип» определяется в последующих разделах.
12.3. Тип, на который осуществляется ссылка, либо определен обозначением «ВстроекныйТип», либо присвоен ссылке «Опреде-ленныйТнп».
12.4. В некоторых обозначениях нотации, в которых имеется ссылка на какой-либо тип, этот тип может быть поименован. В этих случаях настоящий стандарт предписывает использование обозначения вида «ПоименованныйТнп»:
ПоименованныйТнп : : — Идентификатор Тип
Тип |
СелективныйТип
Обозначения вида «СелективныйТип» и обозначения для записи значений селективного типа определены в разд. 23.
Примечание. Обозначение вида «СелективныйТип» содержит «Идентификатор». Если в качестве «ПонмешланногоТила* используется «Селективный-Тип» (и. 23.1), то этот идентификатор может быть частью обозначения для записи значения.
12.5. «Идентификатор» не является составной частью типа и никак не влияет на тип. Тип, на который дается ссылка последовательностью «ПоименованныйТнп», является тем же самым, что и тнп, на который дается ссылка последовательностью «Тип», вложенной в последовательность «ПоименованныйТнп».
12.6. Значение какого-либо типа должно определяться одной из последовательностей вида «Значение»:
Значение : : = ВстроенноеЗначение [ ОпределенноеЗначение ВстроснноеЗначснке : ; — БулевскоеЗначение
ЦелочисленноеЗначеннс
Значекие-СгрокаБитов Значеиие-СтрокаОктетов ВырожденноеЗначенне
Значение-Последовательность Значение- ПоследовательностьИз Значение-Множество
Значение МножествоИз I
Выбором ноеЗначение СелективиоеЗначснис ТегированноеЗначение ПроизвольноеЗначение Значение-ИдснгификаторОбъекта | Значение-СтрокаЗнаков
Примечание. В качестве последовательности вида «Значение» также может использоваться обозначение значения, определеннее с помощью мак-ронотаинн (приложение 1).
С. 24 ГОСТ 34 973 -91
12.7. Если тип определяется с использованием одного из обозначений, приведенных слева в приведенном ниже перечне, то значение должно задаваться с использованием обозначения, приведен
ного справа.
Обозначение типа БулсвскийТил Целочисленны йТип
Тип-Ст рока Битов
Тип-СтрокаОктетов ВырожденныйТип Тип-Последовательность Тип-ПослсдовательностьИз
Тип-Множество Тип-МножествоИз ВыборочныйТнп ТегированныйТип ПроизвольныйТил Тип-ИдентификаторОбъ-екта
Тип-СтрокаЗнаков
Обозначение значения БулевскоеЗначение ЦелочислениоеЗначенне Значение-СтрокаБитов Значение-СтрокаОктетов Вырожден нос-Значение Значение-Последовательность Зи а чей ие • Послед он а тел ь-ностьИз
Значение-Множество Значенпе-Множес гвоИз ВыборочноеЗиачение ТегнрованносЗначеине ПроизвольноеЗначенне Значенис-Идентификэтор-
Объекта Зиачсние-СтрокаЗнаков
Примечание. В дополнениях к настоящему стандарту могут быть оп-редыены л«кмнитслиы« облачения для записи значений.
В тех случаях, когда тип является «ОпрелеленнымТилом», обозначения, используемые для записи значения, должны соответствовать обозначениям, используемым для типа, породившего «Определин н ы й Ти п ».
12.8. Обозначения для записи значений типов, определяемых обозначением «ОбшеупотребительныйТип», приведены в разд. 30, 31. 32. 33.
12.9. Обозначение «ВстроснноеЗначение» определяется в последующих пунктах.
12.10. Значение типа, ссылка на который задается обозначением вида «ПонмсиованныйТип», определяется обозначением вида «ПоименованноеЗпачсние»:
ПонмемованноеЗначение : : = Идентификатор Значение: Значение,
где «Идентификатор» (если он задан) — тот же самый идентификатор, который использовался в обозначении «Понмснованный-Тип». В п. 23.2 указаны дополнительные ограничения на «Пойме-новакносЗпачение» для случая, когда «ПонмсиованныйТип* является «Селективным Типом».
Примечание. «Идентификатор» является составной частью обозначения, но ис является составной частью значения.
ГОСТ 34.973-91 С 25
12.11. «Идентификатор» является составной частью последовательности «ПоименованноеЗначение* только в том случае, когда он является составной частью последовательности «Поимено-ваиныйТнп».
Примечание. В том случае, когда используется вариант «Сслектив-ныйТал», «Идентификатор» всегда включается в запись значения.
13. ОБОЗНАЧЕНИЯ БУЛЕВСКОГО ТИПА
13.1. Для ссылки на булевский тип (п. 3.13) должно использоваться обозначение «БулевскийТип»:
БулевскийТип : : — BOOLEAN
13.2. Тины, определенные с помощью этого обозначения, имеют тег универсального класса с номером I.
13.3. Значение булевского типа (пн. 3.14 и 3.15) должно определяться обозначением «БулевскоеЗкачение»:
БулевскоеЗначЁние: : •— TRUE | FALSE
14. ОБОЗНАЧЕНИЯ ЦЕЛОЧИСЛЕННОГО ТИПА
14.1. Для ссылки иа целочисленный тип (п. 3.16) должно использоваться обозначение «ЦелочисленныйТип»:
ЦелочисленныйТип : : = INTEGER |
1МТЕОЕЕ{СлисокПоименованных-Чисел)
СписокПоименованныхЧисел : : -
ПоименовакноеЧисло I
СписокПоименованныхЧисел, ПонменоваиноеЧисло
ПоименованноеЧнсло : : -
Идентификатор (ЧислоСоЗка-
ком) |
Идентификатор (Определенное-Значение)
ЧислоСоЗнаком : : — Число | —Число
14.2. Вариант «—Число» нс должен использоваться, если «Число» является нулем.
14.3. «СписокПоименованныхЧисел» не является существенной составной частью определения типа. Эта последовательность ис-нользуепя только в обозначениях для записи значений, описанных в л. 14.9.
14.4. «ОлрСДелснноеЗначение» является ссылкой на значение целочисленного типа или тегированного типа, производного от целочисленного типа.
14.5. Значения каждой из последовательностей «ЧислоСоЗна-
С 26 ГОСТ 34.973-91
ком» н «ОпределенносЗначенке» входящих в «СписокПоиме-нованныхЧисел», должны быть попарно различными и выделенными значениями целочисленного типа.
14 6 Элементы «Идентификатор», входящие в «СписокПои-менованныхЧисел». должны быть различными.
14.7. Порядок следования последовательностей «Поименован* ноеЧнсло» в последовательности «СлисокПоимснованныхЧисел» несуществен.
14.8. Типы, определенные с помощью этого обозначения, имеют тег универсального класса с номером 2.
14.9. Значение целочисленного типа должно определяться обозначением вида «ЦелочисленноеЗначение»:
ЦелочисленноеЗначение: : = ЧислоСоЗнааком | Идентификатор
14.10. «Идентификатор» в продукции «ЦелочисленноеЗначе-ние» должен совпадать с одной из последовательностей «Идентификатор», входящих в состав последовательности «Целочислен-иыйТип», которая определяет тип данного значения; «Целочис-лснноеЗначенне» в этом случае определяется числом, соответствующим заданному идентификатору в описании целочисленного типа.
Примечание. При определении целочисленного значения, для которого был задан «Идентификатор» в определении типа, заданно «Целочисленного-Значения» в форме «Идентификатор» является предпочтительным.
15. ОБОЗНАЧЕНИЯ ДЛЯ «СТРОКА БИТОВ»
15.1. Для ссылки на тип «строка битов* должно использоваться обозначение «Тип-СтрокаБнтов»:
Тнп-СтрокаБиуов ; : “
BIT STRING |
BIT $ТК1ЫС{СпнсокПоименованныхБнтов)
СписокПонменованныхБитов : : =
Поименованный Бит |
СяшсокПоимековаиныхБнтов, Поименован* ныйБит
ПонменованныйБкт : : « Идентификатор (Число) |
Идентификатор (ОпределенноеЗна-ченис)
15.2. «СписокПонменованныхБитов» ис является существенной составной частью определения типа. Эта последовательность используется только в обозначениях для записи значений, определенных в п. 15.8.
15.3. Первый бит в строке битов имеет нулевой номер. Замыкающим битом называется бит, который заканчивает строку битов.
ГОСТ 3W3-91 С. 27
Примечание. Термины «первый бит» и «замыкающий бит» используются как при описании обозначений для задания значений, так и при описании правил кодирования
15.4. «ОпределениоеЗначенме» должно представлять собой ссылку на некоторое неотрицательное значение целочисленного типа или помеченного типа, производного от целочисленного типа.
15.5. Значения последовательностей «Число» и «Опрсделен-ноеЗначение», входящих в состав последовательности «СписокПо-именованныхБитов», должны быть попарно различными; каждое из этих значений используется в качестве номера выделенного бита при задании значения строки битов.
15.6. Все элементы «Идентификатор», входящие в «Спнсок-ИоимснованныхБитов», должны быть различными.
Примечание. Порядок следования последовательностей «Поименован-кыйБит> в последовательности «СпмсокПоимеиовалнылБнтов» несуществен.
15.7. Этот тип имеет тег универсального класса с номером 3.
15.8. Значение типа «строка битов» задается нижеследующим обозначением «Значепие-СтрокаБнтов»:
Значение-СтрокаБитон : = Ь-строка
h-строка 1
{СписокИдснтификаторов) | { }
СписокИдвнткфи каюров: : =
Идентификатор [
СлисокИдентификаторов. Идентификатор
15.9. Каждый элемент «Идентификатор», входящий в последовательность «Зиаченне-СтрокаБитов», должен совпадать с некоторым элементом «Идентификатор» в составе последовательности «Тнп-СгрокаБитов». определяющей тнп. к которому относится данное значение.
15.10. Пользователь нотации определяет (и может указать это в комментарии), является ли существенным наличие или отсутствие последних нулевых битов.
Примечание. Правилами кодирования обеспечивается передача строк битов произвольной длины и с произвольным чередованием битов в строке.
15.11. Обозначения вида «{СписокИдснтификаторов)» и «{)» для последовательности «Значение-СтрокаБигов» могут использоваться только в том случае, когда присутствие или отсутствие замыкающих нулевых битов несущественно. Этот вариант обозначения задает строку битов с единицами в битовых позициях с номерами, задаваемыми последовательностями «Идентификатор», и со всеми остальными битами, равными нулю.
Примечание. Последовательность «( }» используется для обозначения значения строки битов, не содержащей нк одного бита, равного единице.
С .28 ГОСТ 34.973-91
15.12. При описании правил кодирования для строк бигов при ссылках на соответствующие биты используются термины «верный бит» в «замыкающий бит», определенные выше.
15.13. При использовании обозначения «b-строка» первый бит записывается слева, а замыкающий бит — справа.
15.14. При использовании обозначения вида «h-строка» старший бит каждой шестнадцатеричной цифры соответствует начальному (первому слева) биту в представляющей ее строке битов.
Примечание. Описание обозначения не ограничивают способа размещения строки битов по октетам для передачи, который реализуется правилами кодирования.
15.15. Обозначение «h-строка» может использоваться только в следующих случаях:
а) если значение строки битов состоит из количества битов, кратного четырем, или
б) присутствие или отсутствие последних нулевых битов несущественно.
Пример
'Л98Л'Н и '1010100110001010'В являются эквивалентными обозначениями одного и того же значения битовой строки.
16. ОБОЗНАЧЕНИЯ ГНИЛ «СТРОКА ОКТЕТОВ»
16.1. Для ссылки на тип «строка октетов» должно использоваться обозначение «Тип-СтрокаОктетов»:
Тип-СтрокаОктетов : : - OCTET STRING
16.2. Этот тип имеет тег универсального класса с номером 4.
16.3. Значение типа «строка октетов» должно определяться обозначением вида «Значение-СтрокаОктетов»:
Значение-СтрокаОктетов : : — b-строка | h-строка
16.4. При описании правил кодирования для строк октетов на соответствующие октеты используются термины «первый октет» и «замыкающий октет», а для ссылок на соответствующие биты внутри октета используются термины «старший бит» и «младший бит».
16.5. При использовании обозначения вида «b-строка» самый левый бит является старшим битом первого октета. Если «Ь-стро-ка» состоит из некоторого количества битов, не кратного восьми, она должна интерпретироваться таким образом, как если бы она содержала такое наименьшее количество дополнительных замыкающих нулевых битов, которое требуется для обеспечения кратности восьми.
16.6. При использовании обозначения вида «h-строка» крайняя
ГОСТ 31.973 -91 С 29
левая шестнадцатеричная цифра является старшим полуоктетом первого октета Если «h-строка» состоит из нечетного числа шестнадцатеричных цифр, то она должна интерпретироваться таким образом. как если бы она содержала еще одну дополнительную замыкающую нулевую шестнадцатеричную цифру.
17. ОБОЗНАЧЕНИЯ ВЫРОЖДЕННОГО ТИПА
17.]. Для ссылки на вырожденный тип (п. 3.19) следует использовать обозначение «ВыродяйнныйТип»:
ВырожденныйТип : : г NULL
17.2. Этот тип имеет тег универсальнЬю класса с номером 5.
17.3. Для ссылок на значение вырожденного типа должно нс-полькшаться обозначение «ВырожденноеЗначение»:
ВырожденноеЗначенис : : = NULL
18. ОБОЗНАЧЕНИЯ ТИПОВ «ПОСЛЕДОВАТЕЛЬНОЕ! Ь»
I&J. Для построения типа «последовательность» (п. 3.20) из лр.мнх типов используется определяемое ниже обозначение «Тип-11 о\. шдовя тел ьнос т ь »:
Гпп Последовйтельность : : =
SEQ U ENCE(CuhcokTh нов-Компонентов} |
SEQUENCE { }
СиисокТи иов-Ком нонетов : : = *
Тип-Компонент |
Список Типов-Компонентов. Тип-Компонент [чп-Комионент : : <•
Поименованный Гни
ПоименованныйТип OPTIONAL
ПонменованнымТип DEFAULT Значение COMPONENT OF Тип
1к2 «Тин» в четвертом варианте продукции «Тип-компонент» должен быть типом «последовательность». Использование вари-анi.i «COMPONENTS OF Тип» определяет включение в этом месте и «СписокТипов-Комнонснгов» всех последовательностей «Тип-Компонент», имеющихся в rime, заданном обозначением «Тип».
И г и ч <• ч а и и е. Это Вреебриюв&ине считается логически завершенным до }Д1Л1.11 ;м рения требований, описанных в последующих пунктах.
18 3. Варианты с использованием ключевых слов «OPTIONAL» и rDl FWLT» допускаются только в тех случаях, когда вес типы в последовательности «СвисикТипов-Компонентов» имеют разные 1еги (pall 24).
ч Зак 1720
С 30 ГОСТ М.973—91
18.4. Если используются ключевые слова «OPTIONAL» или «DEFAULT», то при формировании значения нового типа, а также при формировании, в соответствии с правилами кодирования, информации для передачи значение соответствующего типа-компонента может быть опущено.
Примечания:
I. Если элементы «Идентификатор» присутствуют не в каждой последовательности «ПоименоеанныйТил», то обозначение значения для нового типа может оказаться неоднозначным.
2. Правилами кодирования гарантируется, что кодирование значения-последовательности. в котором был опущен элемент, заданный с использованием ключевых слов «DEFAULT» или «OPTIONAL», будет совпадать с кодированием такого зиачския-последоватсльности, дли которого соответствующий тип-компонент был спущен при описании типа. Это может оказаться полезным при определении подмножеств.
18.5. Пропуск значения типа, заданного как «DEFAULT», в точности эквивалентен включению значения, определенного последовательностью «Значение», которая должна быть допустимой последовательностью для обозначения значения типа, определенного последовательностью «Тип» в последовательности «По-именованныйТип».
18.fi Элементы «Идентификатор» (если они заданы) должны быть различными во всех последовательностях вида «Понменован-нийТип», входящих в последовательность «СписокТипов-Компо-невтов».
18.7. Все типы «последовательность» имеют тег универсального класса с номером 16.
Примечание. Типы «последовательность из» имеют тот же самый тег.
18.8. Обозначения для определения значения типа «последовательность» должны иметь вид «Значение-Последовательность»:
Значение-Последовательность : : =
{Список.Значгний-Компаненнж} '
{ }
СписокЗначсний-Компонентов : : —
ПоименованноеЗначение |
СпнсокЗначений Компонентов. ПоименованноеЗначение
18.9. Обозначение «{ )» используется лишь в следующих случаях:
а) все последовательности вида «Тип-Компонент» в последовательности «Тип-Последовательность» отмечены как «DEFAULT» или «OPTIONAL», и все значения опущены, или
б) обозначение типа имело вид «SEQUENCE! )».
18 10 Для каждой последовательности «ПоименованныйТип», входящей в «Тип-Последовательность», которая не отмечена как «DEFAULT» или «OPTIONAL», в записи значения типа «последе-
ГОСТ 34.973-91 С. 31
вательность» должно быть включено некоторое значение этого поименованного типа в порядке следования последовательностей «ПонменованныйТил».
Примечание. Использование последовательностей «Понмскованный-Тип», не содержащих идентификатор, не запрещается, но в случае использования «DEFAULT» или «OPTIONAL» может привести к неоднозначным обозначениям.
19. ОБОЗНАЧЕНИЯ ТИПОВ «ПОСЛЕДОВАТЕЛЬНОСТЬ ИЗ»
19.1. Обозначения для построения типа «последовательность из» (п. 3.21) из другого типа должны иметь вид «Тип Последова-тельностьИз»:
Тни-ПоследовательносгьИз : : — SEQUENCE OF Тил | SEQUENCE
19.2. Обозначение «SEQUENCE» эквивалентно обозначению «SEQUENCE OF ANY» (разд. 25).
19.3. Все типы «последовательность из* имеют тег универсального класса с номером 16.
Примечание. Типы «последовательность» имеют тог же самый тег (п. 18.7».
19.4. Для задания значения типа «последовательность из» используется определяемое ниже обозначение «Значение-Последо-вательностьИэ»:
Значенне-ПоследователыюстьИз : : =
(СписокЗначений) | { }
СписокЗначений : : = Значение |
СписокЗначений, Значение
Обозначение «{ }» используется в тех случаях, когда в значении типа «последовательность из» нет ни одного значения-компонента.
19.5. Каждая последовательность «Значение» входящая в «СписокЗначений», должна бить обозначением некоторого значения того «Типа», который задан определением типа «последовательность из».
Примечание. Порядку следования этих значений может соответствовать некоторый семантический смысл.
20. ОБОЗНАЧЕНИЯ ТИПА «МНОЖЕСТВО»
20.1. Обозначения для определения типа «множество» на основе других типов должны иметь вид «Тип-Множество»:
Тип-Множество : : = 5ЕТ{СписокТипов-Компоиентов):
SET { )
С 32 ГОСТ 34 «73-91
«СиисокТнлов-Компонентов* определен в и. 18.1
20.2. «Тип» в четвергом варианте продукции «Тип. Компонент» (л. 18.1) должен быть типом «множество» Использование вари-аша «COMPONENTS OF Тил» определяет включение в «Слисок-Типов-Компонентов» всех последовательное гей «Тил-Компонент», имеющихся в типе «множество»
Примечание. Эти преобразование считается жиячссь» лавершениым до удов^гворення требований, описанных а последующих иунктих
20.3. Все «Типы-компоненты* в типе «множество» должны иметь разные теги (разд. 24).
20.4. Для типов «множество» применимы формулировки ЛП 18 4, 18.5 и 18.G.
20.5. Все типы «множество» имеют тег универсального класса с номером 17.
Примечание. Тапы «множество из» имеют Ни же самый Тег (и. 213).
20 6 Порядку следования значений-компонентов в тиле «множество» не придается никакого семантического значения.
'. 20 7. Обозначения для определения значения типа «множество» должны иметь вид «Значение-Множество»:
Значение Множество : : = (СписокЗиаченнй-Компонентов) |
Последовательность <СиисокЗначеинй Компонентов» определен в и. 18.8.
20.8. Вариант *{ |» в продукции «Значение-множество» может быть применен только в следующих случаях:
а) все последовательности «Тин-Компонент» в продукции «Тип-Множество* заданы как «DEFAULT» или «OPTIONAL», н все значения-компоненты опущены, или
.6) тип был задан последовательностью «SET( }»
20.9, Для каждого «ПоименованногоТипа» в «Типе-Множестве*, который не был задан как «OPTIONAL» или «DEFAULT», в запрей значения должна присутствовать соответствующая последовательность «Поименован ноеЗначение».
Примечания:
J «ПсимениаанныеЭкачеиив» моту г с-млов-и в мршыщыыкж порядке.
2. Использование поелелоеателмосгсА «П^меноиааныЛТнн». в которых оку.стоуст идентификатор, нс запрещаете», ио может принести к неолм<>.«нач-вести.
21. ОБОЗНАЧЕНИЯ ТИПОВ «МНОЖЕСТВО ИЗ»
2LI. Обозначения для определения типа «множество из» <см. р. 3.23) на основе другого типа должны иметь вид «Гии-Мио-жествоИз»
ГОСТ 34.473 Cl С 33
Тип ЛЪюжествоИз = SET OF Тип |
SET
21 2 Обпнмчрнпс ^ВЕТ» эквивалентно обозначению «SE7 OF ANU (рви 25)
21 3 Все 1ИНЫ «множество из» имеют тег универсального класса г номером 17
Пр и ч i ч а и ис Типы «множество# жмеют тот же самый тег (си п 20б).
21 I Обозначения для определения значения типа «множество из» должны иметь вид «Значснпе-МножествоИз»:
Зиачнснпе МножествоИз • » (СписокЗначеннй) | { )
Пос тстовагсльность «СпнсокЗначеннй» определена в п. 19 4
Обсмнячслие «{ }» используется в том случае, когда значения-ком пои i шм в «качении-множестве отсутствуют.
215 Клжюс «Значение» в «СпискеЗначений» должно быть обозначением некоторого значения «Типа», который используется в пос ледова телыюстп «Гип МножествоИз»
П р к м, ч । я п я
I Порядок следившим значений-ком пежектои ив имеет никакого семантического знатскиц
2 К кр^яитэм кодирования не предъявляются тревожима сохранения поря ил стеловшпя этих значений
22. ОБОЗНАЧЕНИЯ ВЫБОРОЧНЫХ ТИПОВ
22 1 Обо «качения тля определения выборочного тина (п. 3.25), исходя ш имеющихся других тиков, должны иметь вид «Выборочный Гип»
ВыборочннйТип = СН01СЕ(Спйсок-Типов-Вариантов)
СпигпкI инов Вариантов ' : ”
ПопыекозаиныйТип ’ |
СписочТппов-Вариантов. ПонмсиованныйТип
Примечания
I Правила кодирования обеспечивают идентичность способа кодирования выбряпип|и лмччлш ы«15ороч1нхо типа способу иолировании такого же значения типп-вяриаигл
2 Кодирование значений «ВыборочногоТяпа» с единственным типом-вариантом «ПоимснонанныйТнлж * «СвмсхеТипов-Вармаигоч» Невозможно отличить от кодирования спотжетстнукицсх значений в случае прямого задания «Типа», входящего в чослсдоязтсльио<:ть «ПониеиовапиыАТип»
22 2 Вес типы, входящие в «СписокТипов Вариантов», должны иметь различные теги (разд 24).
22.3 Тег выборочного типа следует считать переменной При выборе конкретного значения выборочною типа его тег становнт-
С 34 ГОСТ 34.973-91
ся равным тегу того типа-варианта, к которому относится значение.
22.4. Если выборочный тип используется в таких конструкциях, где требованием настоящего стандарта является использование типов с различными тегами (пп. 18.3, 20.3 и 22.2), то теги всех типов, определенных н «СпискеТипов Вариантов» должны отличаться от тегов других типов (разд 24). Приведенные ниже примеры иллюстрируют это требование. Примеры I и 2 являются примерами правильного использования нотации. Пример 3 является примером неправильного использования нотации, поскольку теги типов d и f, а также с и £ совпадают.
Примеры:
1. А : : = CHOICE
(b В
с NULL)
В ; : = CHOICE
{d [0] NULL,
e (i] NULL)
A : : = CHOICE
{b. B,
* C)
В : : -CHOICE
(d (01 NULL
e |1| NULL)
C : : = CHOICE
{f (21 NULL.
g [3] NULL)
J. Пример неправильного описания
Л : : = CHOICE
{b, В,
с С)
В : : = CHOICE
{(1 [01 NULL
е [1| NULL)
С : : = CHOICE
{I [0] NULL,
К [1] NULL)
22.5. Все «Идентификаторы» (если они заданы) в последовательностях «ПоименованныйТип», входящих в «СписокТипов-Ва-риантов», должны быть различными.
22 6. Если выборочный тип используется в таких конструкциях, где требованием настоящего стандарта является использование «ПонменованныхТипов» с различными «Идентификаторами», то «Идентификаторы» если они заданы, всех «Поименованных-
ГОСТ 3W3-B1 С 35
Типов» в «СпискеТипов Вариантов» должны отличаться от всех «Идентификаторов» других «ПоименованныхТипов» (входящих в конструкцию).
22.7. Обозначения, используемые для определения значения выборочного типа, определяются продукцией «Выборочное.Зчаче-нне>:
ВыборочноеЗначение: : “ ПоимекованноеЗмачение
22.8. Если «ПоименованноеЗиачение» содержит «Идентификатор», то оно должно быть записью значения того типа в «Спис-кеЗначений-Вариантов», который имеет тот же «Идентификатор». Если «ПонменованноеЗначение» не содержит «Идентификатора», то оно должно быть записью значения одного из тех типов в «Слио кеЗначений-Вариантов», которые нс имеют «Идентификатора».
Примечание Пропуск идентификатора п «ПоименованномТипе» может привести к неоднозначности
23. ОБОЗНАЧЕНИЯ СЕЛЕКТИВНЫХ ТИПОВ
23.1. Поименованный тип в «СпискеТипов Вариантов» «Выбо-рочногоТипа» может быть задан с помощью обозначения «Селе к-тивныйТип»:
Селективный Тип : : = Идентификатор <Тнп»
где «Тип* является обозначением, задающим «ВыборочныйТип», а «Идентификатор» является одним из «Идентификаторов» «Пои-меновакныхТипов» (входящих в «ВыборочныйТип»)-
Примечание. «СелекткяныЯТнп, может использоваться как в качестве «ПонменовэнносоТяпа», и в этом случае «Идентификатор* используется щм записи значения, так и в качестве «Типа, в «ПонмевованномТипе». и в этом случае его «Идентификатор» при записи значения не используется.
23.2. Обозначения для записи значения селективного типа определяются продукцией «СелективноеЗначение»:
СелективноеЗначсние : : ^ ПоименованносЗначенне
При этом в «ПоимснованноеЗначение» входит идентификатор, присутствующий в соответствующей последовательности «Селек-тивныйТип», только в том случае, когда «СелективныйТип» используется как «ПоимеиованныйТип».
21. ОБОЗНАЧЕНИЯ ТЕГИРОВАННЫХ ТИПОВ
Тегированный тип (л. 3.24) является новым типом, изоморфным исходному типу, но имеющим другой тег. При всех способах кодирования обеспечивается отличие значения нового типа от значения исходного типа. Тегированный тин используется главный образом в тех случаях, когда требованием настоящею стандарта
С. 36 ГОК 31.973-91
является псиолыование типов с различными тегами (пп. 18 3, 20.3, 22 2, 22 -I и 25 2)
Примечание Различные теги могут понадобиться дня правильного де-кодирования значения получателей в тел случаях, когда протокол допускает передачу значений различных типов данных в произвольный момент времени
24 i. Обозначения для тегированного типа должны иметь вид (ТешрованкыйПш»:
ТегированныйТип : : “ Тег Тип |
Ter IMPLICIT Тин
Тег: : “ (Класс НомерВКлассе|
МомерВ Классе : : - Число | ОпрсделенноеЗначои^
Класс : : - UNIVERSAL
APPLICATION
PRIVATE пусто
24 2. «ОпределениоеЗначение» должно быть ссылкой на неотрицательное значение целочисленного типа или производного or целочисленного помеченного типа.
21.3. Новый тип изоморфен исходному типу, ио имеет тег с классом, заданным последовательностью «Класс», и номер, заданный последовательностью «НомерВ Классе», если для последовательности «Класс» быт выбран вариант, отличный от «пусто»; если же был выбран вариант «пусто», то тег относится к кон-текстно-завнснмому классу и имеет номер, заданный последовательностью «НомерВ Классе».
24.4. Для типов, определяемых вне рамок настоящего стандарта, «Класс» не должен быть универсальным классом («UNIVERSAL»).
Примечание ИсСользоваине тегов универсального класса периодически согласовывается между ЙСО и МККТТ.
24.5. Если «Класс» теги является прикладным («APPLICATION»), го тот же самый «Тег» tie может быть использован повторно в том же самом модуле.
24.6. Если «Класе» тега ввля1ПС» пользовательским («PRIVATE»), то тег доступен для использования по правилам, устанавливаемым организациями-пользователями.
24.7. Если «Классом» тега является «пусто», то на использование «Тега» не закладывается никаких ограничений, кроме тех, которые вызваны требованиями различия тегов, сформулированными □ пп. 18.3, 20 3 и 22.2.
24.8. Вариант «IMPLICIT» является оолиачением того, что для тех правил кодирования, которые обеспечивают эту возможность, явное указание тега, который имел исходный «Тип», не требуется при передаче данных.
ГОСТ 34.973-HI c 37
Примечание Сохранение старого тем может оказаться полезным, если он вносится х универсальному класс/, и поэтому однозначно ялентнфиинрует неходный тш. при отсутствии информации об определении, с помощью АСК I нового Тмил Откльо с помощью варианта «IMPLICIT» oOecwiiwaeu-H мнии мамное количество очгегоа при передаче Прямей кодкроввния для использовании верный < «IMPLICIT» паи о ИСО 88'25 |ГОС1
24 9 Вариант «IMPLICIT» не должен использоваться, если тип, определенный последовательностью «Тнп»,. является выборочным («CHOICE») или произвольным типом («ANY»)
24 10 Обозначения для определения значения тегированного типа должны иметь вид «ТегировянноеЗначеяне»:
ГепфованиоеЗначеине = Значение,
где «Значение» является обол ачением значения тою тина, которым был задан последовательностью «Тип» в продукции «Тегиро* ваиныйТип»
Примечание Отметим, чти и этом обозначении отсутствует «Тег».
25 ОБОЗНАЧЕНИЯ ПРОИЗВОЛЬНОГО ТИНА
25 1 Обозначение для произвольного типа определяется продукцией «ПроиэвольныйТт»
Произвольны ЙТип = /\NY
Примечание «АМУ» используется и тех случаях, когда требуется до полнюельная стиидартмамцм При исполиавамап «ANY* до того, как станет возможных обмен информацией, требуется дополнительное описание типов данных н нх семантики, соответствующее описание тина должно быть подставлено вмести «АМ» Использование произвольного тина («ANY») в стандартах ИСО или РекомсНдлинях МККТТ сопровождаете», как правило, комментарием, указывающим источник дополнительных описаний
252 Произвольный тип имеет неопределенный тег, он не должен использоваться в тех случаях, где требованием настоящего стандарта является использование типов с различными тегами (пп 18 3, 20 3,22.2 н 22 4).
25 3 Запись значения произвольного типа должна осуществляться по правилам АСН I и определяется следующей продукцией «ПроизвольноеЗначеине».
ПронзнольноеЗиаченис : * ~ Тип Значение, где «Тип» — обозначение некоторого типа, а «Значение» — обозначение дли заинек значения этого типа.
26. ОБОЗНАЧЕНИЯ ТИЛА «ИДЕНТИФИКАТОР ОБЪЕКТА»
26 1. Ссылка на тнп «идентификатор объекта» (п. 3.31) должна иметь вид «Тип-ИдентификаторОбъскта»:
Тяп-ИдентнфикаторОВъекта : : - OBJECT IDENTIFIER
С 38 IOCJ 34X73-91
26.2, Этот тип имеет тег универсального класса с номером б.
26.3. Обозначения для записи идентификатора объекта должны иметь вид «Значение-ИдентификаторОбъекта»:
Значение-ИдентификаторОбъекта : : = (СписокКомпонентовИдОбъекта} | {ОпределенноеЗначенис СписокКомпонентовИдОбъекта)
■СписокКомпонентовИдОбъекта : : =
КомпонентИдОбъекта :
Компонент ИдОбъекта Список КомпонеитовИдОбъект а
КомпонентИдОбъекта : : - ИменнаяФорма : ЧисловаяФорма : СмешаннаяФорма
Именная форма : : = Идентификатор
Числовая форма : • Число : ОпределениоеЗлачение
Смешанная форма : : ■ Идентификатор(ЧисловаяФорма)
26.4. Определенное значение в продукции «ЧисловаяФорма» должно быть ссылкой на значение целочисленного типа или тегированного типа, производного от целочисленного.
26.5. Определенное значение в продукции «Значенис-Идектифи-каторОбъекта» должно быть значением целочисленного типа или тегированного типа, производного от целочисленного.
26.6. «ИмеинаяФорма» используется только для тех компонентов идентификатора объекта, численные значения которых определены в приложениях 2—4 настоящего стандарта, и должна совпадать с одним из идентификаторов, определенных в этих приложениях.
26.7 «Число» в продукции «ЧисловаяФорма* должна быть числовым значением, присвоенным компоненту идентификатора объекта.
26.8. «Идентификатор» в продукции «СмешаннаяФорма» задается в тех случаях, когда данному компоненту идентификатора объекта присвоено целочисленное значение.
26.9. Семантическое значение идентификаторов задается {деревом идентификаторов объектов}. Дерево идентификаторов объектов является графом вида «дерево с корнем», причем корень дерева соответствует настоящему стандарту, вершины соответствуют службам — источникам идентификации, осуществляющим выделение ребер, исходящих из данной вершины. Каждому ребру дерева ставится в соответствие компонент идентификатора объекта, являющийся целочисленным значением. Каждому информационному объекту, подлежащему идентификации, соответствует в точности одна вершина (обычно —висяшая вершина) и отсутствуют другие информационные объекты, которым назначена та же вершина. Таким образом, информационный объект однознач-
ГОСТ 34.973-91 С. »
но и непротиворечиво идентифицируется последовательностью числовых значений (компонентов идентификаторов объектов), которые соответствуют ребрам в пути от корня графа до вершины, соответствующей данному информационному объекту.
Примечание. Значения вида «идентификатор объекта» состоят, по крайней мере, из двух компонентов, как определяете и в приложениях 2—4.
26.10. Значение вида «идентификатор объекта» представляет из себя упорядоченный список значений вида «компонент идентификатора объекта». Начиная с корня дерева идентификаторов объектов, каждое значение вида «компонент идентификатора объекта» соответствует ребру этого дерева. Последнее из этих значений, идентифицирует ребро, ведущее к вершине, соответствующей информационному объекту. Это тот самый информационный объект, который идентифицируется данным значением вида «идентификатор объекта». Существенной частью значения видь «компонент идентификатора объекта» является «именная форма» или «числовая форма», к которой сводится «именная форма». «Числовая форма» («NumberForm») представляет собой численное значение компонента идентификатора объекта
Примечание. Как правило, информационный объект представляет собой класс информации (например формат файла), а не конкретный предста-цитель этого класса (например конкретный файл). Таким образом, каждая вершина дерева задает некоторый информационный класс (определяемый некоторым описанием, на которое дается ссылка), а не какой-то объем информации, относящейся х этому классу.
26 11. В тех случаях, когда «Значение ИдеитификаторОбъек-та» включает «ОпределенноеЗначение», список компонентов идентификатора объекта, задаваемый этим «ОпрелеленнымЗначени-ем», ставится непосредственно перед компонентами, явно присутствующими в значении.
Примечание. Если в каком-либо стандарте, рекомендации МККТТ или другом документе содержится присвоение значений чипа «идентификатор объекта» {«OBJECT IDENTIFIER»), то рекомендуется снабжать этот документ приложенном или дополнением, содержащим перечень всех содержащихся в нем присвоений Желательно также, чтобы службы, присваивающие значения типа «идентификатор объекта» («OBJECT IDENTIFIER*) информационный объектам, присваивали им также значения типа «описатель объекта».
27. ОБОЗНАЧЕНИЯ ТИПОВ «СТРОКА ЗНАКОВ»
27.1 Обозначения для задания ссылки на тип «строка знак (л. 3.12 н глав. 2) должны иметь вил:
Тнп-СтрокаЗмаков : : — СсылкаНаТип,
где «СсылкаНаТип» — одно из имен типов «строка знаков», перечисленных в разд 29.
С. 40 ГОСТ 31.973-91
27 2 Теги всех типов «строка знаков» определены п разд 29.
27.3. Обозначения для записи значения «строка знаков» должны иметь влд:
Значепие-СгрокаЗнаков : = с-строка
Знаки, которые могут присутствовать в «строке знаков» («с-строке»), определяются типом, к которому относится строка.
28. ОБОЗНАЧЕНИЯ ТИПОВ рБЩАЯ ФОРМА ЗАПИСИ ВРЕМЕНИ.
ВСЕМИРНОЕ ВРЕМЯ. ВНЕШНИЙ ТИП. ОПИСАТЕЛЬ ОЬЬЬКГА
28 I Обозначения Для задания ссылки на один и< типов, при веденных в разд. 30, 31, 32. 33, должны быть следующими
ОбщеулотребмтелилыйТип : . — СсылкаНаТип,
где «СсылкаНаТип» — одна из ссылок на г ил. определенных в глазе 3 с помощью нотации АСИ I.
28 2, Теги для каждого кэ общеупотребительных типов определены в разд 30, 31, 32, 33
28 3 Обозначения для Записи значения общеупо; рибнюльного типа приведены в разд 30. 31. 32, 33
29. ОПРЕДЕЛЕНИЕ ТИПОВ «СТРОКА ЗНАКОВ»
В этом разделе определяются типы, значения которых являются последовательностями, состоящими из пустого -.тожества, одного или более знаков некоторого набора знаков
291 Для определения типа «(строка знаков*) щ ХА-гк-мо задать следующее:
а) 1ег, присвоенный типу;
6} ими, с помощью которого осуществляется семь: на опреде некие типа,
в) набор знаков, использующихся и данном nine, .Моор знаков задается либо с помощью ссылки на таблицу, содержащую изображения знаков этого набора, либо ссылкой ни pci нс •рационный номер в Международном регистре наборов кодеру с чых диакон, используемый в Esc-последовательностях (последовательностях смены набора знаков)
Имя из перечисления б) может i>cnoni. шваил-1 и «Ссылка НаТяп» при задании тина с помощью порции AC! I ^ . р-ъд. 27).
29.2. В табл. 6 приведены имена, с помошь*.* •. । ь’ ‘Join осуществляться ссылки на определении типов, пом-.ь т. -в ели (ареального класса, присвоенных типам, н регнстр.щлоцКр* ьи-.с «а.или номера приведенных- ниже таблиц (определяющие -.абор знаков) В случае необходимости строка таблицы сопровождается
ГОСТ 34 973-91 С. 1!
примечанием. В тех случаях, когда для типа определено имя-синоним, оно иринодигся в скобках.
Примечание. Тег, л и тленный типу «Строка знаков», однозначно идентифицирует этот тин Отмстим, однако, что в тех случаях, когда с помощью АСМ | определяются новые типы, исходя из имеющегося типа «строка знаков» (к особенности, с использованием ключевого слова «IMPLICIT»), может оказаться невозможным распознавание этих типов без знания их определений
29.3 В табл. Б перечислены знаки, которые могут присутствовать в значении типа, имеющего нмя NumericString (числовая строка).
29.4 В табл, б перечислены знаки, которые могут присутствовать в значении типа, имеющего нмя PrintableString .(печатная строка).
29.5 Обозначения для всех значений типов «строка знаков» должны иметь вид «с-строка». Список типов «строка знаков» при-воден в табл. 7.
Примечание. Эту обозначение может быть использовано только в том случае, когда используются средства отображения, допускающие изображение знаков, составляющих данное значение. Обозначения для записи значения в других случаях не определит.
29.6. Во всех случаях набор допустимых знаков может ограничиваться с помощью комментария, но не может быть расширен.
Таблица 5
Тип NumerlcStrlng (числовой строжа)
Наимло-мгло | Иаэбрамспие |
0.1. 9 (пробел) |
Таблица 6
Тип PrlntabkStrinf (печатнаястроке)
tlamiuiu* i-<vi | Иаоарйчеик» |
Прописные буквы Строчные буквы Цифры Пробел Апостроф Левая скобка Правая скобка Знак плюс Запятая Дефис Точка | А, В2 а, Ь, , х 0.19 (пробел) ( + |
С. 42 ГОСТ 34.973-91
Продолжение табл. 6
HawpWMW | Изображение |
Косая черта Двоеточие Знак равенства Вопросительный знак | / |
Таблица 7
Список типоп «строка знаков»
Имя дат щыл>н на тип | Н^ер тег» уинп* p aiiJia-П> ШХ1 | hinopaiHoiruc соисра иж пт:ср таблицы, опрвдс.«|«ке1| набор 1на«1» | Прометшие |
NumericSiring | 18 | Табл. 5 | (1) |
PrinlcblcSlrinK | IS | Табл fi | 10 |
TeletexString (T6lString) | 20 | 87. 102. 103. 106. 107 4-ПРОБЕЛ 4-ЗАБОЙ 1. 72. 73, 102. 108. 128. 129 4-ПРОБЕЛ 4-ЗАБОЙ | (3) |
VideotexString | 21 | 13) | |
Visibk-sume (1$О646$1ппе) | 26 | 2+ПРОБЕЛ | |
1A5Siring | 22 | 1. 24-ПРОБЕЛ 4-ЗАБОИ | |
GraphicSIring | 25 | Все наборы G 4-ПРОБЕЛ | |
Gene-aiString | 27 | Все наборы G и С 4-ПРОБЕЛ4-ЗАБОЙ |
Примечания:
I Для данного типа такие характеристики, как шрифт, размер, цвет, яркость л т. п.. несущественны.
2. Для случаев, соответствующих этим регистрационным номерам, правила использования определяются рекомендацией МККТТ Т.61.
3. Для случаев, соответствующих этим регистрационным номерам, обеспечиваются функциональные возможности, определяемые рекомендациями МККТТ Т.100 и Т 101.
30. ОБЩАЯ ФОРМА ЗАПИСИ ВРЕМЕНИ
Примечание. Предполагается, что эта часть настоящего стандарта будет впоследствии расширена с тем. чтобы упорядочить использование других широко распространенных типов данных, таких как относящиеся к диагностике, идентификации отправителя, а также учетная информация, параметры зашиты информации и т д
ГОСТ 34.973-91 С. 43
Обозначения для записи значений каждого из этих типов и их семантика могут быть выведены из соответствующих определений типа, приведенных в нотации АСН I. Допускаются ссылки на эти определения в стандартах, определяющих правила кодирования, с тем. чтобы определить кодовые представления значений этих типов.
30.1. Для ссылок на этот тип должно использоваться имя GeneralizedTime.
30.2. Этот тип состоит из значений, содержащих:
а) календарную дату в форме, определенной ИСО 8601 (ГОСТ 24520);
б) время суток с любой точностью, предусмотренной в ИСО 8601 (ГОСТ 24520);
в) сдвиг местного времени относительно всемирного времени в виде, описанном в ИСО 8601 (ГОСТ 24520).
30.3. Описываемый тип может быть определен с помощью нотации АСН.1 следующим образом:
GeneralizedTime : : =
(UNIVERSAL 24] IMPLICIT
VisiblcSlring ,
где значения «отображаемой строки» («VisiblcSlring») ограничиваются строками знаков, удовлетворяющих одному из следующих условий:
а) «отображаемая строка» («VisibleSIring») является строкой, представляющей календарную лату в соответствии с правилами, определенными в ИСО 8601 (ГОСТ 24 520), с четырехзначной записью года, двузначной записью месяца н двузначной записью числа без разделителей, за которой следует строка, представляющая время суток, как предписано ИСО 8601 (ГОСТ 24520), не содержащая других разделителей, кроме десятичной точки или десятичной запятой, без оконечного знака Z (как предусмотрено в ИСО 8601 (ГОСТ 24520);
б) «отображаемая строка» является строкой знаков, определенной в перечислении а), за которой следует прописная буква Z;
в) «отображаемая строка» является строкой знаков, определенной в перечислении а), за которой следует строка, определяющая сдвиг местного времени относительно' всемирного времени, соответствующая требованиям стандарта ИСО 8601 (ГОСТ 24520) без разделителей.
В случае перечисления а) запись времени обозначает местное время. В случае перечисления б) запись времени представляет всемирное время (UTC), В случае перечисления в) часть строки, описанная в перечислении а) представляет местное время (tl). а сдвиг местного времени относительно всемирного времени (t2)
С. 44 ГОСТ Н»П-«1
позволяет вычислить несмирное время (UTC) по следующей формуле
время UTC равно 11—«2
Примеры:
Случай а). Значение
19851106210627 3
задает местное время 9 вечера 6 мин. 27,3 с. 6 ноября 1985 г.
Случай б). Значение
19851106210627.3Z
Задаст всемирное время (UTC), в остальном заданное как в перечислении а).
Случай в). Значение
19851106210627 3—0500 залает местное время как в перечислении а) с указанием сдвига местного времени относительно всемирного времени (местное время отстает из 5 ч).
30.4. Тег этого типа должен соответствовать определению типа в л. 30 3.
30.5. Обозначения для записи значения должны быть обозначениями для записи значения типа «отображаемая строка», определенного в и. 30 3.
31. ВСЕМИРНОЕ ВРЕМЯ
31 I. Для ссылки на этот тип должно использоваться имя UTCTinie.
31.2. Этот тин сое юнг из значений, содержащих:
а) календарную дату;
б) время с точностью ли одной минуты пли одной секунды:
в) (в качестве необязательной возможности) сдвиг местного времени относительно всемирного времени
31 3. Этот тип может быть определен с помощью нотации ЛС11.1 следующим образом,
UTCT.nie : : = |UNIVERSAL 23| IMPLICIT
VisibleSlring , где значения «отображаемой строки» (VisibleStriii^ ) ограничены строками знаков, состоящими из частей, следующих друг за другом:
а) шести цифр YVMMDD, где YY -- две последние цифры Номера года по грегорианскому календарю, ММ — номер месяца (январь — 01) н DD — число данного месяца (от 01 до 31);
б) одна из двух возможностей:
I) четырех цифр hhinm. где hh - обозначение часа (от 0! до 23) н mm — обозначение минут (от 00 до 59),
2) шести цифр hhmmas, где hli и min - как в mpv .тлении 1), а ев — обозначение секунд:
в) одна нз двух возможностей:
ГОСТ 34.973-Й I С. 4?
1) знака Z,
2) одного нз знаков <+» или «—», за которым следует последовательность hhmm. где hh — часы, a mm — минуты.
Разные варианты в перечислении б) обеспечивают разную точность при задании времени.
В варианте в)1) задается всемирное время. В варианте в)2) задается местное время (И) (часть обозначения, определяемая в перечислении а) и б) и сдвиг местного времени относительно всемирного времени (12) (часть обозначения, определяемая в перечислении в)2), при этом всемирное время (UTC) может быть вычислено следующим образом:
время UTC равно tl—12. ~
Пример. Пусть местное время — 6ч после полудня 2 января 1982 г., а всемирное время 12 (полдень) 2 января, тогда время может быть записано в виде:
UTCTime «820I02I200Z» или
UTCTime «8201020700- 0500*.
31.4. Тег этого типа должен соответствовать определению типа в п. 31.3.
31.5. Обозначения для записи значения этого шла должны быть отображениями для записи типа «отображаемая строка»,, определенного в п. 31.3.
32. ВНЕШНИЙ ТИП
32 1. Обозначение внешнего типа (см. я. 3.28) должно иметь* вид «ВиешнийТип»:
ВнешнииТип : : - EXTERNAL
322. Этот тип состоит нз значений, включающих следующие составные части:
а) кодовое представление какого то одного значения данных, которое может быть (ио необязательно должно быть) значением какого-то одною определенного в АСН I типа данных;
б) идентифицирующую информацию, устанавливающую семантику значения и правили кодирования;
в) (в качестве необязательной информации) описатель объекта, содержащий описание данного информационного объекта.
Необязательный описатель объекта может задаваться только в том случае, если это явно разрешается в комментарии, описывающем iicmi it шнание обозначения EXTERNAL.
32.3 Тип EXIERNAL допускает включение в него любых значений данных m иски।Н|-iivi идентифицируемого множества, значений.
€. 46 ГОСТ 34.973-91
Примечании:
1. Определение этого множества значений данных, их семантики, присвоение идентификаторов объектов к описателей объектов, а также доведение этой жи-формации до всех обменивающихся информацией сторон называется регистрацией абстрактного синтаксиса. Эта совокупность действий может быть выполнена любой службой, которая имеет право присваивать значения идентификаторов объектов’ (OBJECT IDENTIFIER), как описано в приложениях 2 1
2. Множество значений данных, зарегистрированных в качестве абстрактного синтаксиса (вместе с соответствующими правилами кодирования), считается правильно сформированным только в том случае, если кодовое представление каждого значения данных обладает свойством самондеитифинирусмости в рамках множества кодовых представлений значений данных. Если для определения абстрактного синтаксиса используется нотация АСН 1, то для обеспечения са-мондснтнфицнрусмссти кодового представления используется присвоение тегов. В тех случаях, когда абстрактный синтаксис не является правильно сформированным. использование коммуникационного канала либо контекстно зависимо, либо ведет к неоднозначности.
32.4. Внешний тип (EXTERNAL) может быть определен с помощью нотации АСН.1 следующим образом:
EXTERNAL : : - (UNIVERSAL 81 IMPLICIT SEQUENCE {direct-reference OBJECT IDENTIFIER OPTIONAL, indirect-reference INTEGER OPTIONAL, data-value-descriptor Object Descriptor OPTIONAL.
encoding CHOICE
(single A SNI-type (01 ANY.
octet-aligned [11 IMPLICIT OCTET STRING, arbitrary (2) IMPLICIT BIT STRING}}
32.5. Когда для данного значения внешнего типа («EXTERNAL*) не используется диалог по установлению правил кодирования на уровне представления, а используется предварительная договоренность относительно синтаксиса передачи, то в значении должен присутствовать идентификатор объекта для прямой ссылки («direct-reference OBJECT IDENTIFIER»). В этом случае идентификация множества значений осуществляется посредством идентификатора объекта (являющегося прямой ссылкой на абстрактный синтаксис) и подставляемого в поле «идентификатора объекта для прямой ссылки» («direct reference OBJECT IDENTIFIER»). В этом случае правила кодирования также определяются с использованием осуществленной ранее регистрации абстрактного синтаксиса и целочисленная косвенная ссылка (indirect-reference INTEGER») нс используется.
32.6 Когда используется диалог по установлению правил кодирования на уровне представления для данного значения внешнего типа («EXTERNAL»), то должна быть задана «целочисленная косвенная ссылка» («indirect-reference INTEGER»). В этом случае идентификатором множества значений данных является целое число, являющееся ссылкой на конкретное использование абстракт-
ГОСТ 34.973-91 с 47
яого синтаксиса. Это число называется идентификатором контекста представления и подставляется в поле «целочисленная косвенная ссылка» (indirect-reference INTEGER»). Если диалог по установлению правил кодирования на уровне представления завершен, то идентификатор контекста представления также идентифицирует правила кодирования (синтаксис передачи), применяемые к данному значению данных, при этом «идентификатор объекта для прямой ссылки» («direct reference OBJECT IDENTIFIER») не задается. Если диалог по установлению правил кодирования на уровне представления не завершен, то значение идентификатора объекта также необходимо для идентификации используемых в данный момент правил кодирования (синтаксиса передачи). При использовании диалога по установлению правил кодирования допустимость (или необходимость) элемента «идентификатор объекта для прямой ссылки» («direct reference OBJECT IDENTIFIER») должна быть указана в комментарии, описывающем использование обозначения «EXTERNAL»), если же соответствующее указание отсутствует, то этот идентификатор не должен использоваться.
Примечания:
I. Следствием из пп. 32.5 и 32 6 является требование обязательного присутствия по крайней кере одного из вариантов «прямая ссылка» или «косвенная ссылка»
2. Если диалог по усыновлению параметров на уровне представления нс-пользуется. но не заверии-u, го используются обе ссылки.
32.7. Если рассматриваемое значение данных является значением какого-либо одного типа данных, определенного с помощью АСН I. и если правила кодирования для этого значения данных те же. что п для всего внешнего типа («EXTERNAL»), го в конкретной реализации на стороне отправителя может быть использован любой из вариантов элемента «кодовое представление» («encoding»):
single-ASN Нуре
octet-aligned arbitrary
32.8. Если кодовое представление данных, использующее правила кодирования, установленные в результате предварительной договоренности или в результате диалога по установлению параметров, имеет целое число октетов, то в конкретной реализации на стороне отправителя может быть использован любой из следующих вариантов элемента «кодовое представление» («encoding»):
octet-aligned
arbitrary
С. 43 ГОСТ 34.973-91
Примечание. Если значение данных является последомтелмизстью значений, относящихся к различным типам АСН I. и правила кодирования чред пжывают простую постановку друг эя другом строк октетоя, полученных применением базоиых правил кодирования к каждому нз значений разных типов, то такое значение относится к категории, описываемой в данном пункте, а не к категории, описанной ■ п 32 7
32.9. Если кодовое представление значения данных. использующее правила кодирования, установленные в резулылтс пред-верительной договоренности или в результате диалога по уста новлению параметров, содержит не целое число актетов, то должен исполмоваться следующий вариант элемента «кодовое представление («encoding»)'
arbitrary
32.10. Если для элемента «кодовое представление» («encoding») выбран вариант «единственный тип АСН 1» (c$inglc-ASNI-type»), то вместо «ANY» должен быть подставлен тип значение, подлежащего кодированию.
При меч в и не. Множество значений. которые мотуг встретиться в этом случае определяются осуществленной ранее регистрацией значения вида «идентификатор объекта», задаваемого «прямой ссылкой» («direct tefciciKo), в/нли целочисленного значения, заливаемого «косвенной ссылкой» («indirect reference»)
32.1». Если для элемента «кодовое представление» («encoding») выбран вариант «октетно выравненное» («octel aligned*), то значение данных должно быть закодировано в гооттствик с синтаксисом передачи, установленным в результате предварительной договоренности или и результате диалога по усыновлению параметров, it полученные в результате октеты должны составлять значение — строку актетов.
32.12. Если для элемента «кодовое представление» («encoding») был выбран вариант «произвольное» («arbitrary»), го значение данных должно быть закодировано в соответствии с енн-таксиоом передачи, установленным в результате предварительной договоренности или в результате диалога пл установлению правил ю'дировяння. а результат должен быть значением — строкой би-тов.
32.13. Тег этого типа должен соответствовать определению типа в и. 32.4.
32.14. Обозначения для записи значения должны быть обозначениями для записи значения типа, определенного н п. 32.4.
33. ТИП «ОПИСАТЕЛЬ ОБЪЕКТА»
33.1. Ссылка на этот тип осуществляется с помощью имени ObjectDcscriptor.
33.2. Этот тип составляют тексты, ориентированные ни воспряв
ГОСТ 34.973-91 С 49
тис человеком и предназначенные для описания информационных объектов. Текст, являющийся значением данного типа, необязательно должен идентифицировать информационный объект, ко предполагается, что использование одного и того же текста для описания разных информационных объектов маловероятно.
Примечание Желательно, чтобы значения типа «описатель объекта» (♦ObjectDescriptor») присваивалась информационным объектам теми же службами. которые присваивали информационным объектам значения типа «адсать-фикатор объекта» («OBJECT IDENTIFIER»)
33.3. Этот тнп может быть определен с помощью нотации АСН.1 следующим образом:
Object Descriptor ;: Si
[UNIVERSAL 7] IMPLICIT
GraphicSIring
«Графическая строка* («GraphicString») содержит текст, опи-сывающий информационный объект
33.4. Тег этого типа должен соответствовать определению типа л п. 33.3.
33.5. Обозначения для записи значения должны быть обозначениями для записи значения типа, определенного в л. 33.3.
С. 50 ГОСТ 34.973-9!
ПРИЛОЖЕНИЕ /
Обязательное
МАКРОНОТАЦИЯ
1.1. Введение
В АСН I предусмотрен способ, с помощью испорото пользователь АСН.1 может определить новую систему обозначений, с помощью которой он может строить тс же типы данных, что и о АСН.1, и ссылаться на них, а также задавать значения этил типов. Эта новая система обозначений определяется с помощью обозначения нотации АСН.1 «Макроопределение». «Макроопределение» одновременно определяет как обозначения для построения типов и осуществления ссылок на них, так и обозначения дли записи значений (и 6.3. содержащий пример использования макронотации),
С помощью «Макроопределения» пользователь АСН I определяет новые обозначения с помощью некоторого множества продукций аналогично тому, как ио делается в настоящем стандарте. Составитель макроопределения должен:
а) полностью определить синтаксис, который предполагается использовать для определения всех типов, обеспечиваемых данным макроопределением (это описание синтаксиса вызывается для синтаксического анализа каждый раз при появлении в обозначении типа АСН I имени макроопределения);
6) полностью определить синтаксис, который предполагается использовать для определения значений этих типов (это описание синтаксиса вызывается для синтаксического анализа каждый раз. когда ожидается значение типа, ппи-санною с помощью макроопределения);
в) определить в виде значений стандартных типов АСН.1 (произвольною уровня сложности) получающиеся в результате типы и значения для всех случаен использования макрообозначений для записи значений.
Конкретное использование синтаксиса, определенного с помощью макроопределения, может содержать обозначения типов и значений , заданных в обычной нотации АСИ I Эти типы или значения (присутствующие в конкретном использовании махроабозначенпй) могут быть присвоены на время выполнения синтаксического анализа локальным ссылкам на тип или локальным ссылкам на значение с помощью соответствующих конструкций в макроопределении Возможно также включение в макроопределение присвоение ссылкам обычных определений типов АСН ! Описанные выпи- присвоения активизируются. когда соответствующая синтаксическая категория макроопределения со-поставляется с элементом (или элементами), входящими в использование новой нотации Время их действия ограничено временем выполнения синтаксического анализа.
При синтаксическом анализе значения, заданного с помощью макронотацни, присвоения выполненные при синтаксическом анализе типа, продолжают быть доступными. Синтаксический анализ обозначения типа считается логически предшествующим анализу соответствующих значений
Каждое «Макроопределение» определяет систему обозначений (синтаксис) для определения типа и систему обозначений (синтаксис) для определения значений. Тип данных АСН I. определенный с помощью макрообозначсния типа, может зависеть (но необязательно зависит) от макрообозначения конкретного значении, к которому относится макрообозначснис типа. В этом отношения использование макронотации типа сходно с использованием выборочного типа («СНО1СН») — тег типа в данном случае не определен. Поэтому в случаях зависимости типа от значения макроиотация не может быть использована там.
ГОСТ 34.873-91 С. 51
где требуется наличие известного тега; в этих случаях не может также применяться неявное задание тега.
Тип и значение, полученные в результате использования макронотации, определяются тем. какое значение (и каков его тип) присваивается (в результате последовательной обработки макроопределения типа, а затем макроопределения значения) локальной ссылке на значение, отмеченное в макроопределении ключевым словом VALUE.
1.2. Дополнение к набору знаков и множеству элементов ЛСН. 1
В макроногацни используются знаки < • и «>».
Также используются элементы, описанные в последующих пунктах.
1,2.1. Макроесылка
Имя элемента — макроссылка
«Макроссылка» должна состоять из последовательности знаков, удовлетворяющей требованиям, установленным для «Ссылки — НаТмп» в п. 8.2, с тем отличием, что все буквы должны быть прописными. Внутри одного модули одна и та же последовательность знаков не должка использоваться одновременно. как ссылка на тип и хак макроссылка,
1.2.2 Ссылка на продукцию
Имя элемента — СсылкаНзПродукцию
«СсылкаНаИродукцию» должна состоять из последовательности знаков, удовлетворяющих требованиям, установленным для «СсылкиНаТип» в п. 8 2.
1.2.3. Локальная ссылка на тип
Имя элемента — ЛокалькаяСсылкаНаТип
«ЛокальиаяСсылкаНаТнп» должна представлять собой последовательность знаков вида «СсылкаНаТип», определенного в п. 8.2 «Локальна«СсылкаНаТип» используете» в качестве идентификатора для типов, распознаваемых во время синтаксического анализа макрообозвачсния типа или значения.
1.2.4. Локальная ссылка на акачекие
Имя элемента — ЛокальнаяСсылка Назначение
хЛокальнаяСсылкаНаЗначекис» должна представлять собой последовательность знаков вида «СсылкаНаТип.», определенного п п. 82 «ЛокальнаяСсылка НаТип» используется и качестве идентификатора для значений, распознаваемых во время синтаксического анализа макрообозначепня типа или значения.
Примечание. «ЛокальнаяСсылкаНаТип» должна начинаться с прописной буквы.
145. Элемент разграниченья нирийктав
Имя элемента — I.
Этот элемент состоит из единственного знака «I».
1 2.6. Элемент, обозначающий конец определения
Имя элемента — >
Этот элемент состоит из единственного знака «>».
Примечание. Элемент «<», обозначающий начало определений, приведен о п. 8.13.
1.2.7. Синтаксический терминальный элемент
Имя элемента — а-строка
Элемент «a-строка» («строка в кавычках») должен состоять из произвольного (возможно, равного нулю) количества знаков нз знакового набора АСН.1 (см разд. 7), выделенных кавычками (»). Зизк (>) представляется в «строке в кавычках» в виде пары знаков (*).
Примечание. Использование «строки в кавычках» («a-строки») в мак-рообозначеннн задает появление в соответствующем месте анализируемого евн-гаксиса знаков, заключенных между кавычками (»).
Q 52 ГОСТ «4.973-91
12 8. Элементы — ключевые слова с шпаке инее silx категорий
Имен» члене'» год — «string»
«identifier»
«number» ’empty»
Элементы г приведенными выше именами должны состоять (F макроопределении) из •г«‘едс1ваг<Л.ноетей знаков, совпадающих с их именами, исключая новички (♦). Э’г элементы используются в макроопределении для задания вхождения и иенпльзоиаинн новей нотации последов а гсльн<х:)еГ< знаков определенного пидв. Вид последовательностей знаков, соответствующих каждому нз элементов., определяется в табл В посредством ссылки на раздел настоящего ста ।парта
Примечание В макронотаипи нс поддерживается ралтичис между идентификаторами я ссылками, отличающимися только тем. является ли их персам буква строчной или заглавной Эю вызвано требованием соимеспоскти с рекомяидяиией МККТ Г л 409.
Таблица 8
Классы последовательностей, задаваемые элементами
Им» »м«апа | Пв-дс ’. «wp. ащн.| опр’ас iwc |
««trine» «identifier» «number* «три» | Произвольная последовательность знаков КЗ - Идентификаторы Ь 8 - Число 6? — П ус ГОЙ ЧЛГМГНГ |
1.2.9 Дааолниилчные жп’лгмты — хлючеьш' c.fpiki
Имела элементов - - MACRO
П ПН
NOTATION
VALUE value ’И*
Элементы с приведенными выше именами должны состоять I» последова-Телгихтей знаков, совпадающих с их именами
Элементы, определяемые в on. 1.22—1.2.4 приложения I включительно, не должны совпадать с какой-либо поиюдооатсяымиыо знаков и» п. 1.2.9 пряло женин I, за исключением случаев, оговоренных ниже.
Ключевое слово «MACRO» должно использоваться дли юти. чтобы обозначить начало макроопределении. Ключевое слово «TYPE NOTATION» должно использоваться в качестве имели продукции, определяющей новые обозначения тина. Ключевое слово «VALUE NOTATION» должно использоваться в качества имени продукции, определяющей новые обозначения значении Ключевое слово «VALUE* должно использоваться и качестве «ЛокальпоЯСсылкнНаЭиачейис», которой присваивается получаемое в результате значение. Ключевое слово «value» должно использоваться для указания того, что и каждом применении новых обозначений в этом мосте должно содержаться значение (записанное в обозначениях АСН.1) некоторого типа (задаваемого макроопределением). Ключевое слово «type» должно использоваться для указания того, что п каждом
ГОСТ 31.975- Bl С. 53
применении наем» обозначений и лом месте должно содержаться обозначение вила «Тип» (а обозначениях АСИ I)
13 Обозначения для записи макроопределений
J3J Макросредство должно быть определено с использованием обозначений вида «Макроопределение*
Макроопределение ■= накроссылка
♦, — >
BEGIN
ТелоМавро
END
Те юМанр» -» ПроАуникиТина
ПроаукннчЭначения
Вспомога селысиеПродукипе
НродукиияТнна
TYPE NOTATION
* »о»
Список ВарвянюаМакро
ЛродуиимвЭна-нкна —
VALUE NOTATION < ■=•»
Сш1сокВарваитоаАШро
ВсломосателыгысПродуиши* ; ■»
СккокПродукинй 1
empty
СлнсокПродукциИ • —
Продукция I
СппеокПродукцнЙ Продукция
Продукция = СсылкапаПродуниию
* . •«»
СпиеокВариаитовМакро
! 3.2 Каждая «Ссылка ЦаПрслукиию». присутствующая в «ОяределепннСпи-волп» In.) 36 приложения 1). должна.присугствояап» сдии раз в качестве первого мечете некоторой «Продукции»
135 Каждый случай использования макрообозиачекия шла должен начн-натиск с йое.1?дивД1<м1ыкмтк знаков «Макроссилка». аз кт о pt ft следует одна . из последовательностей знаков, удоалетворякиднх продукции «TYPE NOTATION» после применения всех продукций, заданных в макроопределении.
134 Каждый случай использоэвиал макронотацян для записи значение должен бит. некоторой последовательностью знаков из множества, описанного при ivBUiiefl «VALUE NOTATION» после применении всех продукций, заданных U UdhpOOQMflMtHlM.
1з 5. Мяожеетйо оослвдомтвлылетей знании, описываемое продукцией «TYPE NOTATION» или «VALUE NOTATION», определяется соответствующим «СинскомВаикактобМавро», имеющим пм
СписокВагиэвтозМакро : • =
ВзриаатМакро I
Список ВарнаиюпЛик|>и
«I»
ВарнангМахри
Ммижсьтц-; последовательниц!ей так-» •«,..• t t ।... продукцией «Список-^врипятовМакро», состоит из множеств пос.. ..г . . гчяостей знаков, описываемых продукциями «ВардамтМаиро*, ехохищик» о ‘СлисокВарнаптовМахро».
13.6 Обозначения для завися последовательное! .• «ВариблтыМакро» в нам-риопределеяня определяются следующим образ-.м-
С 54 ГОСТ 34.973-91
ВарнантМакро — СпнсокСнмволов
СпнсокСнмволов =
Символьный Элемент I
СпнсокСнмволов Символьный Элемент
Символьный Элемент —
ОпределенисСимвола I
Вложен и «Определение
МакроТнп = ЛокалънаяСсылкэНаТип 1
Тип
ОлределениеСямвола =
—а строка» 1
СсылхаНа Продукцию 1
«siring» I
«idetihher» I
«number»
«empty» I
type 1
type (ЛокальиаяСсылкаНаТно) I
value (МакроТнп) I
xalue (ЛокальнаяСсылкаНаЗначенне МакроТнп) (
value (VALUE МакроТнп)
Примечание В макроопределении выражение «МакроТнп». определен, мде и этом же макроопределении, может присутствовать в любом месте, где в соответствии с правилами нотации ДСП I требуется выражение «Тип»
Множество последовательностей знаков, описываемое продукцией «Вариант-Макро». образуется последовательным соединением любой из строк знаков, описываемой перкой последовательностью «ОпредеденнеСимеола». с любой из строк знаков, описываемой второй последовательностью «ОпределеннсСимвола», и так далее, вплоть до последнего «ОпределснииСимвола» из «СлискаСимводой»
Примечание «ВложсянысОпредслснпя», если они присутствуют, не играют явной роли при определении множества допустимых строк
137 Элемент («а строка») описывает последовательности знаков, состав. лающие «а строку», без обрамляющей лары кавычек (»)
138 Элемент «СсмлкаНвПродукивю» описывает произвольную последов»* тельноегь знаков, задаваемых «Продукцией», идентифицируемой данной ссылкой
139 Последовательности знаков, описываемые следующими четырьмя на-риавтамн продукции «ОпределениеСнмвола», задаются табл 8
Примечание Последовательности знаков, описываемые вариантом «siring», должны заканчиваться в использовании макрообозначения появлением последовательности, описываемой очередным выражением «ОпределеннсСимвола» в «СвискеСимволов»
I 3 10 Вариант «1уре» описывает последовательности зиакои, образующие обозначение вида «Тип», соответствующее определению в п 12 1
Примечание Выражение «ОпределенныйТип» в определении из п (21 может и данном случае содержать «ЛокальнуюСсылкуНаТил», служащую для обозначения типа, определенного с помощью макроопределения
1311 Вариант «type (ЛохальнаяСсыльаНаТип)» описывает последователь* пости знаков, образующие выражение «Тип», соответствующее определению из п J2 1, и. кроме того, присваивает этот тип «ЛокальнойСсылкеНаТип»
1 312 Вариант «value (МакроТнп)» описывает последовательности знаков.
ГОСТ 31.973-91 С 55
образующие выражение «Значение*, соответствующее определению из п. 126, того типа, который задан выражением «Макротип»
1.3.13. Выражение «value (ЛокальнаяСсылкаНаЗначенне МакроТип)» описывает последовательности знаков, образующих выражение «Значение», соответствующее Определению из п. 12.6, того типа, который задан выражением «МакроТип». и. кроме того, присваивает этот тип «ЛокэлькойСсыдкеНаТип». Впоследствии той же «ЛокальнойСсыдкеКаТип» может быть присвоен другой тип,
1.3.14, Вариант «value (VALUE МакроТип)» описывает последовательности знаков, образующих выражение «Значение» (соответствующее определению из п >2.6), того типа, который задан выражением «МакроТип», но. кроме, того, возвращает данное значение в качестве значения, заданного данным использованием макрообозиаченнй. Тип возвращаемого значения задается выражением «МакроТип»
1.3.15 При синтаксическом анализе любого правильного использования мак-рообОЗКачениЙ должно осуществиться в точности одно присвоение значения выражению «VALUE* (описанному в пп 1.3.11 или 13 16 приложения 1).
1.3.16, Выражение «ВложеинысОлрелсленин» определяется следующими продукциями:
ВложенноеОпределеиие : —
< С п исок Вложе и н ы х О п редел ен и Я >
СписокВложеннылОпределений . —
ВложеиноеОпределение
СпксокВложенныхОвределеннА I
ВложенноеОлределение
ВложенносОпределсинс : : =
ЛокалькосПрнсвоениеТнпд I
ЛокальноеПрисвоениеЗиачеяня
ЛокалъноеПрисооениеТипа —
ЛокальнаяСсылхаНаТиа
« ; * ■*;»
МакроТип
ЛокальноеПрксвоеннеЗначеиня : : =
ЛокальнаяСсылкаНаЗначенне
МакроТип « : : —» МакроЗначсянс МакроЗначекне : : — Значение I
ЛокальнаяСсылкаНаЗначенне
Присвоение «МакроТнпа» «ЛокэльнойСсылкеНаТип». а также «МакроЗиа-пения» «ЛокальвойСсылкеНаЗначеиие» во «ВложенныхОпределениях» осуществляется при синтаксическом анализе использования макрообозначения при обработке «ВложенныхОпределений* и сохраняется до переопределения «Локаль-нойСсылкиНаТип» или «ЛокальнойСсылкнНаЗначенне».
Г 56 ГОСТ M.973-BI
Примечания:
I. Использование связанной «.:1пк5.,ы1(1йС<'Ы.адиНгТип» или «ЛокальноЙСсып-инНаЗначенне» в другом место того же варианта возможно только при определенных предположениях относительно алгоритма -синтаксического разбора Эти предположения должны быть описаны в комментарии. Например использование «ЛокальноДСсыляиНаТипт. текстуально следующей за «ВложеннымнОирсле ю ниями». возможно только при синтаксическом разборе слева направо
2. «ЛокалыюйСсылксНаТно». заданной как «VALUE» может быть присвоено значение как с помощью конструкции «value (VALUE МакроТиа)», так и с помощью вложенного определения В обоих случаях присвоенное значение является возвращаемым значением п соответствии с п. (.3 14 приложения 1.
1.4 Использование новой нотации
Использование обозначения типа или значения, определенного с помощью макроопределения в том же модуле, допускается во всех случаях, тле требуется обозначение вида «Тип» или «Значение».
Примечания.
I Описываемое а этом приложении расширение нотации ACM I не используется в основном тексте настоящего стандарта.
2. Возможно построение модулей, содержащих последсиатслытести приссое-ния типа н макроопределения, приводящих к сколь угодно сложному ситаксй-ческому разбору значений, заданных с использованием ь.1ючевпго слова DEFAULT
ГОСТ 31.073 91 С. 57
Ш'И.Ю#ЫИ£ 2 Обязательное
ЗНАЧЕНИЯ КОМПОНЕНТОВ OBJECT IDENTIFIER, ОПРЕДЕЛЯЕМЫЕ ИСО
2 I Из корневой вершимы дерем идентификаторов объектов выходят три реорз Нрнсниелпие им значения н идентификаторы, а также службы ответ -пенные за присвоение значений следующих компонентом, таковы
Значение
Идентификатор
О I
«ill iso juilH isu cent
Служба, отвечающая за присвоение следующих компонентов
МККП ИСО См. приложет не »
Примечание В остальной част мою приложения рассматривается присвоение значений, осуществляемое К-СО.
2 2. Каждый из идентификаторов «edit», «iso» и «jolnt-iso edit». определен них выше может использоваться в качестве выражении «ИмемианФирма»
2 1 Из вершимы, проидемтифмиироваипой «iso», выходят четыре ребра. Прис военные им значении м идентификаторы таковы:
Чппчспис
Идентификатор
2
3
Standard regbtralion authority nicsnbcr-budy tdenlilivd or«anwaiian
Служба, отмечающая за присвоение следующих кямпомптто»
см. п. Hi -1 см и. 112 5 см. п. fl2.u СМ. о. 112 7
.т.н идемгифнааюиры метут iKUO^wouarbcu в качество выражения «Имей ■тан Ферми»
2 I Каждому из ребер, выходящих из аершини «стандарт» («standard»), должно быть присвоено значенье, равное номеру шкотпрого стандарта Если стандарт состоит пз нескольких частей, то из соотастчт кукиш й ему вершины должны imxoauu, ребра, система вуюише тюнерам честей, если в тексте статр дирза инио не указано иначе. Последующим ребрам должны быть присвоены »u3~ciliiK. i вргделжммс в «том стандарте
Пр и меч а «нс Если и иекь.ором стандарте, состоящем из одной части, были .фигиосны значении вторым идентификаторам объектов, после Чети станл-пт был преобразован и стал состоять из нескольких частей, то после .tpiudn^ioaBfuia присвоение амачеинЛ идентификатор ов объекты» должно про-■» «ж. hi. I*. как если бы стандарт состоял из одной части.
' «‘«-бра выходящие я» вершины «рст иег|»»«и..пла . ^ ту.wi’j» («regiatiation
••■ । । .крккруютеи для последующего опрс и.-.-п-я н пополнении к на’ . лидар > у, kurvp<>« будет рззрабшыям сч ..«.рал. елыю с «зДралсЛе-ха,Р дня идентификации различных n-.xitpiuuoriHHC служб азапм v
■ '..-ы-ы* систем.
, HiC-ish. выходящим из вершины, о которую ведет ре^. «корпит -■4. .. : .ч, ^“’Hi'bor-body»). должны быть присвоены ш-. :™-1 феона-шато *... | ••• I- i-iua страны, *тет код илеит кфиш'рт лт кап ь-uv. -А комитет —
С 58 ГОСТ 34.973 -91
член ИСО (см. примечание). «ИмеинаяФорма» этого компонента идентификатора объекта нс допускается. Ребра, следующие за «колом страны», нс определяются в настоящем стандарте
Ирин сча и к я
!. Наличие кода страны необязательно означает, что действительно существует комитет — член ИСО. представляющий эту страну, или что в сферу деятельности этого комитета входит схема выделения компонентен идентификаторов объектов.
2 СССР имеет трехэначный код 810. Белорусская ССР — 112 и Украинская ССР — 804. Организация, ведающая присвоением компонентов идентификаторов объектив в рамках СССР, пока еше не сформирована.
2 7. Ребрам, выходящим из вершины, в которую ведет ребро «зарегистрированная организация» («ideniilied-organizatkin»), должны быть присвоены значения международного кодового определителя (International Code Designator — ICD), которые назначаются регистрационной службой. ICD идентифицирует организацию — источник кодов, зарегистрированную вышеупомянутой регистрационной службой в качестве источника компонентов идентификаторов объектов (примечания I и 2). Ребрам, непосредственно следующим за ICD, должны быть присвоены значения вида «код организации», которые выделяются организацией — источником кодов. Ребра, следующие за «кодом организации», в настоящем стандарте не определяются.
Примечания
I. Гарантия того, чти коды организаций, используемые как цифровые значения идентификаторов объектов и назначенные организациями, присваиаакши-ми коды, будут соответствовать требованиям настоящего стандарта, обеспечивается требованием регистрации этих организаций регистрационной службой
2. Упоминание того, что коды, назначенные организациям, используются в качестве компонентов идентификаторов объекта, не исключает возможности их использования также для других целей.
3. Предполагается, что организации, идентифицируемые с помощью «кода организации», будут определять следующие ребра таким образом, чтобы гарантировать неяовторяемость соответствующих значений
4. Следствием п. 2.7 приложения 2 является то, что любая организация может получить код от соответствующей организации, присваивающей коды, и после этого присваивать значения вида «идентификатор объекта» (OBJECT IDENTIFIER) для своих собственных целей, причем гарантируется, что эти значения не будут повторять значения, назначенные другими организациями Таким образом, некоторая фирма может присвоить значение типа «идентификатор объекта (OBJECT IDENTIFIER)» своим собственным информационным форматам.
ГОСТ 31.973-91 с 59-
ПРИЛОЖЕНИЕ 3
Обязательное
ЗНАЧЕНИЯ КОМПОНЕНТОВ OBJECT IDENTITIES, ОПРЕДЕЛЯЕМОЕ МККТТ
3 1 Из корневой вершины дерева идентификаторов объектов выходят три ребра. Присвоенные им значения и идентификаторы, а также службы, ответственные за присвоение значений следующих компонентов, таковы*
Значение
Идентификатор
О cent
I iso
2 jointisoccilt
Служба, отвечающая за присвоение следующих компонентов
МККТТ ИСО См. приложение 4
Примечание. В остальной части этого приложения рассматривается присвоение значений, осуществляемое МККТТ.
32 Каждый из идентификатором «ccitl». «iso» и «joint iso ccitt», определенных выше, может использоваться и качестве выражения «ИмеянаяФорма».
3.3. Из вершины, лроидентифнцириванной «ccitl», выходят четыре ребра. Присвоенные им значения и идентификаторы таковы
Значение
Идентификатор
О recommend* lion
1 question
2 administration
3 network-operator
Служба, отвечающая за присвоение следующих компонентов
см п. 3.4
см. п. 3.5 см л. 3 6 см. л. 3.7
Эти идентификаторы могут использоваться и качестве выражения «Имен-иаяФорма»
3.4 Ребра, следующие за ребром «рекомендация» («recommendation»), имеют значения от I до 26. которым присвоены идентификаторы от а до г. Последующие ребра имеют значения номеров рекомендаций МККТТ той серии, которая обозначается предыдущей буквой Ребра, следующие за этими ребрами, определяются соответствующими рекомендациями МККТТ Идентификаторы от а ди г могут использоваться в качестве «ИменнойФормы».
35 Ребра, следующие за ребром «вопрос» («question»), имеют значения, определяемые номером исследовательской группы .МККТТ и периодом времени. Эти значении вычисляются по следующей формуле
номер исследовательской группы 4- (период * 32), где «период» имеет значение 0 для 1964—1988 тг.. I — для 1988—1992 гг., и т. д.. а множитель 32' задан в десятичной системе счисления.
С. 60 ГОСТ 34.978-81
Ребра, мелующие за каждым ребром «исследовательская группа», имеют значения, соответствующие допросам, входящим и сферу деятельности соответствующей исследовательской группы. Последующие ребра определяются по мере необходимости соответствующей группой (иалрнмер, рабочим совещанием пли специальной группой экспертов), сформированной для изучения вопроса
3.6. Ребра, следующие за ребром «администрации» («administration»), имеют значения цифровых кодов стран (ОСС), определенных рекомендацией МККТТ X.I2I. Последующие ребра определяются в соответствии с потребности мп управления телекоммуникациями страны, определенной кодом ОСС.
3.7. Ребра, следующие за ребром «оператор сети» («network operator»), имеют значения цифровых кодов сетей (DNIC), определенных о рекомендации МККТТ X.I2I. Последующие ребра определяются в соответствии с потребностями управления телекоммуникациями или зарегистрированного частного агежгоа (RPOA), ндснпгфицнрусмого кодом DNIC.
ГОСТ 34.973-91 С. 61
ПРИЛОЖЕНИЕ 4 Обязательней!
ЗНАЧЕНИЯ КОМПОНЕНТОВ OBJECT IDENTIFIER, ОПРЕДЕЛЯЕМЫЕ СОВМЕСТНО
4.1. Из корневой вершины дерева идентификаторов объектов выходят три ребра. Присвоенные им значения и идентификаторы, а также службы, ответственные за присвоение значений следующих компонентов, таковы:
Значение Идентификатор Служба, отвечающая за
присвоение следующих компонентов
О ccitt МККТТ
I iso ИСО
2 joint-isocciit См. on. 42, 43
Примечание. В остальной части этого приложения рассматривается присвоение значений, осуществляемое совместно ИСО и МККТТ.
42. Каждый нз идентификаторов ccitt», «iso» и «joint-iso ccitt», определенных выше, может использоваться в качестве выражения СимвольнаяФорма».
4.3. Ребрам, следующим за ребром «совместное определение ИСО и МККТТ» («jointiso-ccitt») присвоены значения, периодически назначаемые по согласованию между ИСО к МККТТ для идентификации их совместных областей лея-1ыьнос1я по стандартизации в соответствии с «Процедурами присвоения значений композитам идентификаторов объектов для совместного использования ИСО и МККТТ».
Примечание. Регистрационной службой, ответственной за присвоение значений компонентам идентификаторов объектов для совместного использования ИСО и МККТТ, является Американский национальный институт стандартов (ANSI).
4.4. Ребра, которые следуют за упомянутыми в п, 4.3, приложения 4 выделяются в соответствии с процедурами, действующими в момент выделения.
Примечание. Предполагается, что в данном случае для присвоения значений будет осуществляться передача полномочий смешанной группе экспертов ИСО и МККТТ, ответственных за область совместной работы
4 5. Поскольку в первых стандартах ИСО и рекомендациях МККТТ, относящихся к совместным областям стандартизации, потребовалось выделение идентификаторов объектов (OBJECT IDENTIFIER) до установления процедур, упомянутых в п. 4 3, приложения 4. то они выделяются так, как описано в приложениях 2 нлн 3. Идентификаторы информационных объектов, определенные таким способом в стандарте ИСО нлн рекомендации МККТТ. не будут меняться после установления процедур, упомянутых в п. 4.3 приложения 4.
■С 62 ГОСТ 34.973-91
ПРИЛОЖЕНИЕ 5 Справочное
ПРИМЕРЫ И РЕКОМЕНДАЦИИ
В лом приложении приводятся примеры использовании нотации ЛСН.1 для
описания некоторых взятых произвольно структур данных. В нем жатся пояснения к рекомендации по использованию различных
5.1. Пример задней учета кадров
В этом подразделе использование АСН 1 иллюстрируется на мэвольно взятой простой записи учета кадров.
5.1.1. Неформальное описание записи учета кадров
также содер-гихэможиостей
примере про
Ниже приводится кретного служащего, Имя: Должность: Учетный номер: Дата найма: Имя супруги: Число детей: Информация о ребенке Имя: Дата рождения: Информация о ребенке Имя:
структура записи учета кадров и ее значение для кон-
John P Smith Директор 51
17 сентября 1971 Mary T Smith 2
Ralph Т Sm.th 11 ноября 1957
Susan В Tones
Дата рождения: 17 июня 1959
5.1.2. Описание структуры записи с помощью АСН.1
Структура каждой записи учета кадров формально описана ниже с помощью стандартных обозначений для тнпон данных
Personnel Record : : - (APPLICATION 01 IMPLICIT SET
title number dateOIHirc nameOfSpoase children
Name
|0] VisibleString EmployeeNumbcr
(l| Date
(2| Name
|3| IMPLICIT
SEQUENCE OF
Childlnfor (nation DEFAULT ( ) »
Childinformation : : = SET
I dateOfBirth
Name |01 Date)
Name : : = (APPLICATION 1| IMPLICIT SEQUENCE
{givenName VisibleString,
initial VisibleString.
familyName VisibleString)
EmptoyceNumbcr : : - (APPLICATION 2| IMPLICIT INTEGER
Date ; : ~ (APPLICATION 3| IMPLICIT VisibleString- -YYYYMMDD
В этом примере иллюстрируется одни из аспектов синтаксического разбора выражений АСН I Синтаксическая конструкция «по умолчания» («DEFAULT») может применяться только к элементам выражения «последовательность» («SEQUENCE») или «множество» («SET»), но не может быть применена к эле-
ГОСТ 34.973-91 С. 63
ментам «последовательность из» («SEQUENCE OF»). Поэтому выражение «DEFAULT ( }» в «записи учета кадров» («PersonneIRccord») относится к
выражению «дети» («children»), а не к выражению «информация о ребенке» («Childlnformation»).
5.1 3. Описании значения записи с пометою АС.Л !
Значение записи учета кадров для описанного в начале подраздела служащего в стандартных обозначениях для значений МЯНЫХ будет иметь вид:
{ (givenName «John», initial «Р»,
JamilyNantc «Smith*
title «Director»
number dateOiHire
5k «19720917»
nameOISpousc {givenName «Магу», initial «Т»,
JamilyName «Smith»),
children
{{(givenName «Ralph», initial «Т», familyName «Smith»}, dateOfBirth «ЮТНЫ»}.
{(givenName «Susan», initial «В», familyName «Jones»), dateOfBirth «19690717»
5 2. Pc ко ней дани н no использованию нотации
Типы данных и формальная нотация, определенные в настоящем стандарте, обладают большой гибкостью, предоставляя возможность их использования в широком спектре протоколов, Эта гибкость, однако, может привести к недоразумениям. в особенности при недостаточном опыте се испальзотшия, В этом приложении делается попытка свести к минимуму возможность недоразумений с помощью рекомендаций по использованию нотации и примеров се использования. Для каждого из встроенных типов данных предлагается одна или несколько рекомендаций по использованию. Типы «строка знаков» (например «отображаемая строка» («VisibleSlring») и типы, определенные в рэМ 3: здесь
нс рассматриваются.
5.2.1. Бу.tea tun
5.2.1.1. Булев тип следует использовать для представления значений логических переменных (имеющих два разных состояния), например ответа на воп
рос «да» или «нет».
Пример.
Employed : : = BOOLEAN
5 2 1 2. При назначении ссылочною имени булеву типу следует использовать слово, подходящее для обозначения состояния истина».
Пример.
Married ; : —BOOLEAN
а нс
Marita (Status : : «BOOLEAN
См. также п 5 2.2.4.
5 2 2 Целочисленный run
5.2 2 1. Целочисленный тип следует использовать для представления значений количественных числительных и целочисленных переменных для всех практических целей без ограничения величины.
Пример,
CneckingAccountBalance : : — INTEGER
-• значение выражено в центах; отрицательное
■ - значение означает перерасход
5 2 22 Следует определять допустимые максимальное и минимальное значения целочисленного типа в качестве выделенных значений.
Пример.
DayOfThcMonih : : = INTEGER (first (1). last (31)}
С. 61 ГОСТ 34.973-91
5.2.2 3 Целочисленный гип с выделенными значениями следует использовать для представления значений переменной с тремя или более состояниями. Если единственным требованием к значениям переменной является их отличие друг от друга, то значения следует присваивать, начиная с нуля.
Пример.
DayOfTheWeek : : - INTEGER (sunday(O), monday (I). luesday(2), Wednesday(3).thur$day(4).
Friday(5), Saturday(6)}
52.2.4. Целочисленный тип с выделенными значениями следует использовать для представления значений переменной, которая имеет только два состояния, но у которой могут появиться дополнительные состояния в следующей версии протокола.
Пример.
Следует использовать описание
MaritalStatus : : - INTEGER {single(0),married (I)}, если предполагается его последующая замена на следующее:
MaritalStatus : : = INTEGER (single(O), married(l), widowed (2)}
5.2.3. Тип «строка битов»
5.2.3.1. Тнп «строка битов» следует использовать для представления двоичных данных, формат и длина которых не заданы или заданы в другом месте, при этим длина данных н битах но обязательно кратна восьми.
Пример.
G3Facsimi1ePage : : = BIT STRING
• - последовательность битов, удовлетворяющая
- - рекомендации МККТТ Т.4.
5.2.3.2. Следует определять первый и последний имеющие смысл биты строки фиксированной длины в качестве выделенных битов.
Пример.
Nibble : : = BIT STRING (first (0), last(3)}
5.2.3.3. Тип «строка битов» следует использовать также для представления значений битового отображения, то есть упорядоченной совокупности логических переменных, показывающих, выполняется или нет некоторое определенное условие для каждого объекта нз некоторой упорядоченной совокупности.
Пример.
SunnyDaysOfTheMonth : : - BIT STRING (first(I), last(31)}
- - in день был солнечный в том н только
- - в том случае, если i-й бит равен единице
5.2.3.4. Тип «строка битов» с поименованными значениями следует использовать для представления значений .совокупности
ГОСТ 34.973 91 С. 65
взаимосвязанных логических переменных.
Пример.
PersonalSUIus : : = BIT STRING
{married(0), employed(1), veteran(2), collegeGraduate (3)}
5.2.4. Тип ^строка октетов»
5.2.4.1. Тил «строка октетов» следует использовать для представления значений двоичных данных, формат и длина которйх не заданы или заданы в другом месте, причем длина данных в битах кратна восьми.
Пример.
G4Facsimile!mage : : - OCTET STRING
- - последовательность октетов,
- • удовлетворяющая рекомендациям
- - МККТТ Т.5 и Т.6.
5.2.4.2. В тех случаях, когда доступен для использования требуемый тип «строка знаков», его использование следует предпочесть использованию типа «строка октетов».
Пример.
Surname : : = PrintablcSIring
5.2.4.3. Тип «строка октетов» следует использовать для представления любой строки информации, которая не может быть представлена с помощью одного из типов «строка знаков». Обязательно следует определить используемые знаки и способ их представления в виде октетов.
* Пример.
PackedIBCDString : : = OCTET STRING
• - цифры от 0 до 9, две цифры на октет,
- - каждая цифра кодируется как 0000—1001,
- - комбинация 11)1 используется для
- - дополнения до полного октета
5.2.5. Вырожденный тип
Вырожденный тип («NULL» следует использовать в том случае, когда требуется задать отсутствие элемента некоторой последовательности.
Пример.
Patientidentifier: : =SEQUENCE
{name VisibleString.
roomNumber CHOICE
{INTEGER,
NULL- - в случае выбывающего пациента- -)}
Примечание. Тот же результат может быть достигнут : помощью параметра «.OPTIONAL».
5.2.6. Типы * последовательность» и ^последовательность из»
5.2.6.1. Тип «последовательность из» следует использовать для
С. 66 ГОСТ 34.978—91
представления совокупности переменных одного к того же типа, количество которых велико или непредсказуемо, а порядок следования существенен.
Пример.
NamesOfMemberNations : : = SEQUENCE OF VisibleSlring
- - перечисление в порядке вступления
5.2.6,2. Тип «последовательность» следует использовать для представления совокупности переменных одного и того же типа, количество которых невелико и известно, порядок следования существенен, при условии, что состав .совокупности не должен меняться при переходе к следующей версии протокола.
Пример.
NamesOfOffisers : : = SEQUENCE
{president
VisibleSlring.
vicePresident VisibleSlring,
secretary
VisibleSlring}
5.2 6.3. Тип «последовательность» следует также использовать для представления совокупности переменных различных типов, количество которых невелико и известно, при условии, что состав совокупности не должен меняться при переходе к следующей вср-
сии протокола.
Пример.
Credentials : : {userName password
SEQUENCE VisibleSlring, VisibleSlring.
accountNumber INTEGER} •
5.2 6.4. Если в типе «последовательность» имеется фиксированное число элементов различных типов, то каждому элементу, чье назначение не очевидно из его типа, следует присвоить ссылочное имя.
Пример. File : : -
{ other content
SEQUENCE ContentType, FileAttributes, ANY }
См. также пп. 5.2 3.3, 5.2.3.4 и 5.2.5 Приложения 5.
5.2.7. Тип «множеством
5.2.7. L Тип «множество» следует использовать для представления совокупности переменных, количество которых невелико и известно, а порядок следования несущественен. Каждой переменной следует присвоить метку контекстно зависимого класса.
Пример.
UserName : : = SET
personalNatne
(OJ IMPLICIT VisibleSlring,
ГОСТ 34.973-91 С. 67
organisationName 111 IMPLICIT VisibleString.
counteryName [2] IMPLICIT VisibleString}
5.2.7.2, Тип «множество» с включением параметра «OPTIONAL» следует использовать для представления совокупности переменных, которая является собственным или несобственным подмножеством другой совокупности переменных, причем количество переменных достаточно мало, а их порядок несущественен. Каждой переменной следует присвоить метку контекстнозависимого класса.
Пример.
User Name : : —SET
{personaJName [0] IMPLICIT VisibleString organisationName [I| IMPLICIT VisibleString OPTIONAL
- ■ по умолчанию —название данной организации - -, countryName (2| IMPLICIT VisibleString OPTIONAL
• - по умолчанию — название данной страны - -)
5.2 7.3. Тип «множество» следует также использовать для представления совокупности переменных, состав которой с большой вероятностью будет меняться при переходе к следующей версии протокола. Каждой переменной следует присвоить метку контекстнозависимого класса.
Пример.
User Name : : = SET
{personalName 10] IMPLICIT VisibleString.
organisationName [1] IMPLICIT VisibleString OPTIONAL
- • по умолчанию — название данной организации - •, countryName (2] IMPLICIT VisibleString OPTIONAL
• • по умолчанию — название данной страны
•- другие необязательные атрибуты оставлены для
• - дальнейшей проработки - - }
5.27.4. Если количество элементов, входящих в тнп «множество». фиксировано, то каждому элементу, чье назначение не очевидно из его типа, следует присвоить ссылочное имя.
Пример.
FileAttributes : : = SET
{owner [0] IMPLICIT UserName
sizeOiConlentlnOdets III IMPLICIT INTEGER
[2] IMPLICIT AccessControls,
5.27.5. Тип «множество» следует также использовать для представления совокупности переменных разных типов, порядок которых несущественен.
Пример.
Keywords : : - SET OF VisibkStringh
• • в произвольном порядке
С. G8 ГОСТ 34.973—91
См. также пп. 5.2.34 и 5.2.8.3 приложения 5.
5.2.8. Тегированный тип
5 2.8.1. В рамках настоящего стандарта тегированный тип универсального класса используется для определения широко используемых, нс зависящих от конкретного применения типов данных, представление которых должно отличаться от представления всех других типов данных.
Пример.
EncriptionKey : : = [UNIVERSAL 30] IMPLICIT OCTET STRING
- - семь октетов
5-2.8.2. Тегированный тип прикладного класса следует использовать при определении типа данных, которые находят широкое, нс локализованное использование в некотором контексте представления, причем представление этого типа должно отличаться от представления всех других типов данных в том же контексте представления.
Пример.
HleName : : - [APPLICATION 8| IMPLICIT SEQUENCE {directorName VisibleString.
DirectoryReiativeFiieName VisibleString}
5.2.8.3. Контекстнозависимые тегированные типы используются для различения элементов множества. Если единственным требованием. предъявляемым к числовым тегам, является отличие их друг от друга, то их следует присваивать, начиная с нуля.
Пример.
CustomerRecord : : «• SET
(name [0] IMPLICIT VisibleString,
mailingAddress accountNumber batanceDue
[I] IMPLICIT VisibleString, (2[ IMPLICIT VisibleString.
[3] IMPLICIT VisibleString
- - в центах • -)
5.28.4. В тех случаях, когда некоторый элемент множества имеет тег прикладного класса (APPLICATION), то не требуется присвоения нового контекстно зависимого тега, за исключением тех случаев, когда требуется (или может потребоваться в будущем) обеспечить его отличие от других элементов множества. В тех случаях, когда элемент множества имеет тег универсального класса' (UNIVERSAL), ему следует дополнительно присвоить кон-текстиозавнсимый тег.
Пример.
ProductRecord : : — SET
{ UniformCode,
description
[0] IMPLICIT INTEGER,
ГОСТ 34.973—91 С. 69
inventoryNo (11 IMPLICIT INTEGER,
inventoryLevel (2) IMPLICIT INTEGER}
UnilormCode : : = [APPLICATION 13] IMPLICIT INTEGER 5.2.S.5. Контекстно зависимые тегированные типы следует использовать также при определении вариантов выборочного типа (CHOICE). Если единственным требованием к тетям является их отличие друг от друга, то следует начинать с нулевого значения.
Пример.
CustomerAttribute : : - SET
{name [0| IMPLICIT VisibleSlring,
mailingAddress (II IMPLICIT VisibleSlring,
accountNumber [2| IMPLICIT INTEGER,
balanceDue [3] IMPLICIT INTEGER
5.2.8.6. В тех случаях, когда некоторый вариант, входящий в определение выборочного типа (CHOICE), представляет собой тип. имеющий тег прикладного класса (APPLICATION), то не требуется использовать контекстно зависимый тег, за исключением тех случаев, когда нужно (или может понадобиться в будущем) различать между собой варианты выборочного типа.
Пример.
ProduciDesignalor : : = CHOICE
{ UnilormCode,
description 101 IMPLICIT VisibleSlring.
inventoryNo [I] IMPLICIT INTEGER. }
UnilormCode : : = [APPLICATION 13] IMPLICIT INTEGER 5.2.8.7, В тех случаях, когда некоторый вариант, входящий в определение выборочного типа (CHOICE), представляет собой тип, имеющий тег универсального класса (UNIVERSAL), необходимо использовать контекстно зависимый тег, за исключением тех случаев, когда ставится цель обеспечить выбор из нескольких (более одного) разных универсальных типов.
Пример.
Customeridentifier : : = CHOICE
{name VisibleSlring,
number INTEGER }
5.2.8 8. Тегированный тип пользовательского класса следует нс-пользовать для определения данных, используемых в рамках некоторой организации или страны, причем требуется, чтобы была возможность отличить эти данные (но их представлению) от всех остальных данных, используемых этой организацией или страной.
Пример.
AcmeBadgeNumber : : = [PRIVATE 2] IMPLICIT INTEGER
5 2.8.9. В приводящихся здесь рекомендациях во всех примерах, где это допустимо, используется «неявное» задание тегов, то
С. 70 ГОСТ 34.973-91
есть с указанием «IMPLICIT*. При использовании соответствующих правил кодирования это приводит к компактному представлению данных, что весьма желательно в некоторых приложениях. В других приложениях компактность .может быть менее важна, чем, например, возможность выполнения детальной проверки типов данных. В последнем случае может использоваться явное задание тегов.
См. также пи. 5.2.7.1. 5.2.7.2, 5.2.9.1 и 5.29.2 приложения 5.
5.2.9. Выборочный run
5.2.9.1. Выборочный тип (CHOICE) следует использовать для представления переменной, выбираемой из совокупности переменных, количество которых известно и невелико. Каждая переменная из упомянутой совокупности идентифицируется с помощью контекстно зависимого тега.
Пример.
Fileidentifier : : в- CHOICE
{relativeName |0J IMPLICIT VisibleString,
- • нмя файла, например, «MarchProgressReport») absoiuteName [1] IMPLICIT VisibleString,
• - имя файла и содержащий это нмя каталог
- - (например, «<williams>MarchProgressReport») serial.Number |2| IMPLICIT INTEGER
-• идентификатор, присвоенный смайлу системой - -}
52.9.2 Выборочный тип (CHOICE) следует использовать также для представления переменной, выбираемой из совокупности переменных, состав которых с большой вероятностью будет меняться при переходе от одной версии протокола к следующей версии. Каждую переменную из упомянутой совокупности следует идентифицировать с помощью контекстно зависимого тега.
Пример.
Fileldcntifier : : = CHOICE
{relativcName (OJ IMPLICIT VisibleString,
• - имя файла (например, «MarchProgressReport») absoiuteName (l| IMPLICIT VisibleString.
- - имя файла и содержащий это нмя каталог
- • (например, «< williams>MarchProgressReport»)
-- другие формы идентификаторов файлов оставлены
- - для дальнейшего исследования - - }
5.2.9.3. Каждому элементу, чье назначение не очевидно из его типа, следует присвоить ссылочное имя.
Пример.
Fileidentifier: ; =. CHOICE
{relativcName [0) IMPLICIT VisibleString.
- ■ имя файла (например. «MarchProgressReport») absoiuteName [I] IMPLICIT VisibleString.
ГОСТ 34.973-91 С 71
- - имя файла и содержащий это имя каталог
- - (например, «< Williams>MarchProgressReport>) serJalNumber (2} IMPLICIT INTEGER
- • идентификатор, присвоенный файлу системой- -}
5.2.9.4. В тех случаях, когда в некотором конкретном применении настоящего стандарта нормой является неявное задание тегов (с указанием «IMPLICIT») и планируется переход от использования одного типа к использованию нескольких типов, рекомендуется использование выборочного типа (CHOICE), состоящего из одного варианта. Этим исключается возможность того, что будет иметь место неявное задание тегов, и таким образом облегчается переход к использованию нескольких типов.
Пример.
Greeting : : - (APPLICATION 12] CHOICE
(VisibleString)
8 будущем предполагается переход к
Greeting : : = (APPLICATION 12] CHOICE
(VisibleString, Voise }
5.2.10. Селективный тип
5.2.10.1. Селективный тип следует использовать для представления переменной, тин которой является типом некоторого варианта в определенном ранее выборочном типе.
5.2.10.2. Пусть дано определение
FileAtlribute : : = CHOICE
{date-last-used INTEGER,
file-name VisibleString)
тогда возможно следующее определение:
CurrentAttributes : : = SEQUENCE
{date-last-used <FileAttribule, filename < FileAtlribute)
с возможной записью значения
fdate-lasl-used 27.
file-name «PROGRAM»}.
Возможно также следующее определение:
Attribute-List : : - SEQUENCE
{first-attribute datelasi-used <FileA(tribute , second-attribute file-name <FileAtlribute ) с возможной записью значения
{first-attribute 27, second-attribute «PROGRAM» } .
5.2.11. Произвольный тип
5.2.11.1. Произвольный (ANY) тип следует использовать для представления переменной, тип которой не задан или задан в другом месте с помощью нотации АСН.1.
С. 72 ГОСТ 34.973—91
Пример.
MessageContents : : = ANY
• - элемент данных, тип которого определен с помощью
•• нотации АСП.1 за рамками настоящего стандарта
5.2.12. Внешний тип
5.2.12.1. Внешний (EXTERNAL) тип следует использовать для представления переменной, гни котором не задан или задан в другом месте без ограничений на используемую для этого нотацию.
Пример.
FileContents : : = EXTERNAL
DocumenlList : : = SEQUENCE OF EXTERNAL
5.3. Пример использования макронотацнн
Предположим, что желательно иметь обозначения для определения типа следующего вида:
PaiR TYPEX= ...TYPEY = ... , допускающие запись соответствующего значения в виде (Х=.-..,¥»----).
где .... и -•• - означают соответственно любой тин АСН.1 и соответствующее значение.
Такие макрообозначения типа могли бы быть использованы для определения типов и значений, как показано ниже:
Т1 : : - PAIR TYPEX - INTEGER TYPEY - BOOLEAN
T2 : : = PAIR TYPEX = VisibleString TYPEY - TL
Тогда значение типа Tl может иметь вид:
(Х=3, Y=TRUE), а значение типа Т2 может иметь вид:
(X=«Name>, Y= (Х=4, Y=FALSE)).
Для обеспечения этих обозначении, которые могут рассматриваться как расширение базовой нотации АСН.1, может быть использовано следующее макроопределение:
PAIR
MACRO : : = BEGIN TYPE NOTATION : : -«TYPEX» «=» type (Local-type-1)
- - Здесь ожидается описание любого типа
- - АСН.1, которое будет присвоено
- - переменной Local-type-1; «TYPEY»
type (Local-type-2)
< = »
type (Local-type-2)
ГОСТ М.973-9» С. 73
- - Здесь ожидается описание второго типа
- - АСН.1, которое будет присвоено
- • переменной Local type-2;
VALUE NOTATION : : -
«(»
«=»
value (Local-value-1 Local-type-1)
- - Здесь ожидается описание значения типа,
--определяемого переменной Local-type-1,
-- которое будет присвоено переменной
• • Local -value-1;
«,*
«Y».
« = »
value (Local-value-2 Local-type-2)
• - Здесь ожидается описание значенья типа,
--определяемого переменной Local-type-2.
• ■ которое будет присвоено переменной
- - Local-value-2;
<VALUE SEQUENCE {Local-type-1.
Local-type-2)
: : - (Local-valuc-1, Local-value-2}>
-- Это вложенное определение возвращает
- - окончательное значение, являющееся
-- значением последовательности,
• - состоящей из дв/х типов.
«)>
END
В этом примере тип возвращаемого значения (в смысле базовой нотации АСН.1) не зависит от подставляемого значения. но зависит от подставляемого типа. В других случаях тип может либо полностью определяться макроопределением, либо может зависеть от подставляемого значения. Отмстим, тем нс менее, что во всех случаях для определения типа возвращаемого значения следует рассматривать продукцию «VALUE NOTATION». Продукция «TYPE NOTATION» просто определяет синтаксис для определения типа и устанавливает начальные значения локальных переменных, используемых при анализе подставляемой нотации значения.
5.4. Использование нотации для определения абстрактных синтаксисов
5.4.1. Для использования услуг уровня представления требуется описание значений, называемых значениями данных уровня представления, и группирование этих значений в множества, пазы-
С. 74 ГОСТ 34.973-9!
ваемые абстрактными синтаксисами. Каждому из этих множеств присваивается нмя абстрактного синтаксиса, относящееся к определенному в АСН.1 типу «идентификатор объекта».
5.4.2. Нотация АСН.1 может быть использована в качестве единого средства при описании значений данных уровня представления и их группировании в поименованные абстрактные синтаксисы.
5.4.3. Для простейших случаев такого использования в нотации АСН.1 может найтись единственный тип, такой, что все значения данных представления, составляющие поименованный абстрактный синтаксис, будут значениями этого типа. Как правило, этим типом является выборочный тин, и все значения данных представления будут относиться к различным типам-вариантам из этого выборочного тина. В этом случае рекомендуется оформить определяемые данные в виде модуля, в котором первым определяемым типом будет вышеупомянутый выборочный тип, а далее будут приведены определения тех' (не универсальных) типов, на которые имеются прямые или косвенные ссылки в определении выборочного типа.
Примечание. Это не означает, что исключаются ссылки на типы, определенные в других модулях,
5.4.4. Ниже приведен пример текста, который мог бы быть частью некоторого стандарта, относящегося к прикладному уровню. Для исключения неоднозначности конец примера явно выделен строкой «Конец примера».
Пример.
ISOxxxx -уууу DEFINITIONS : : ~
BEGIN
PDU : : = CHOICE
(connect-pdu ....
datapdu CHOICE
END
Настоящий стандарт присваивает следующее значение АСН.1 идентификатор объекта
{iso standard хххх abstract-syntax (1))
в качестве имени абстрактного синтаксиса для множества значений данных представления, каждое из которых является значением типа данных АСН.1 «ISO.xxxx-yyyy.PDU». Соответствующим описателем объекта АСН.1 устанавливается значение:
«.............»
ГОСТ 54.973-91 С. 7&
В качестве имени синтаксиса передачи, используемого имеете с определенным выше именем абстрактного синтаксиса, могут использоваться значения АСН.1 для идентификатора объекта и оли-сателя объекта.
{joint-iso-ccitt э$п1 (!) basic-encoding (I)} и
«Basic Encoding of a single ASN.I type»
(присваиваемые информационному объекту в (ГОСТ 34.974).
Конец примера
5.4.5. Стандарт может также потребовать для этого абстрактного синтаксиса обязательной поддержки синтаксиса передачи, получаемого применением правил кодирования.
(joint-iso-ccitt asnl (1) basic-encoding (I))
С. 76 ГОСТ 34.973-91
ПРИЛОЖЕНИЕ 6 Справочное
СВОДКА СИНТАКСИСА НОТАЦИИ АСН.1
Перечисленные ниже элементы определяются в рам 8.
СсылкаНаТип Идентификатор Ссылкам аЗкаченяе СсылхаНаМодуль Комментарий Пусто Число b-строка h-строка с-строка «: :»•» ( < • | 1 ANY ) EXTERNAL ( OBJECT I IDENTIFIER OPTIONAL BOOLEAN DEFAULT INTEGER COMPONENTS BIT UNIVERSAL STRING APPLICATION OCTET PRIVATE NULL TRUE SEQUENCE FALSE OF BEGIN- SET END IMPLICIT DEFINITIONS CHOICE |
Ниже приведены продукции, используемые и настоящем стандарте; зерни-нальными символами продукций являются приведенные выше элементы:
ОпредслениеМодуля | : —• СсылхаНаМодуль DEFINITIONS «: : —» BEGIN ТелоМодуля END |
ТелоМодуля СписокПрисвоений | ; : =Спк<окПрксвоеинй : : — Присвоение | |
Прис веские Внешня аСсылкаНаТип | СписокПрисноекий Присвоение — ПрисвоеннеТипа | ПрнсвоеннеЗкаченмя : : *- СсылкаНа Модуль |
В-1сшнякСсылкаИаЗиаченне
ОпрсделенныйТип ОлределеикосЗначснне
ПрисяоснцеТнпа
ПрнсяоеиисЗизчення
Тип : : — ВсросиыйТшт |
СсылкаНаТип
: : = Ссылка! кМодулъ
СсылкаНаЗначеннс
: : — ВнешняяСсылкаНаТяп I СсылкаНаТип
: ; = ВнсшнляСсылкаНаЗкачение | СсылкаНаЗначсние
: : = СсылкаНаТип
<: : -о Тип
: : —СсылкаНаЗначенис Т-ш «: : =и» Значение
ОлрслеленныйТнп
ГОСТ 34 973-91 С. 77
ВстроенныйТип
• — БулезскийТип 1 Целочисленный Тип I
Тяп-СтрокаБитов I Тио-СтрокаОктетов I
ВырожденныйТип I Тип-Последовательность I
Тнп-ПоследователъностьИз 1
Тип-Множество I
Тип-МвожествоИз 1
ВыборочныйТка СелектиеиыйТнп ТсгированныйТил ПроизвольныйТип Тип-ИдентификаторОбъекта Тип-СтрокаЗнаков ОбшулотребительныйТмп
ПонменованныйТип : : * Идентификатор Тип I Тип I селехтнвныйТип
Значение : : = ВстроеннсеЗиаченис 1 ОпределенноеЗначенве
ВстроенноеЗначеаме , : = БулевскоеЗначение
ЦелочксленноеЗначенке
Значенне-СтрокаБитов I
Значенис-СтрокаОктетов ВырожденносЗнпчеиие Значение-Последовательность Значение-ПослеаовотельиостьИз
I I I 1 I I
ПоименоеанноеЗначсние
Булев схийТип
БулевскоеЗначенис
ЦелочислсиныйТип
Значение-Множество
Значение МможествоИз
ВыбсрочносЗначсние СеяективноеЗначение Тст и рова нносЗначеинс ПроизвольноеЗначенне Значение ИдснтификаторОбъскта Значение-СтрокаЗнаков
: : •—Идентификатор Значение I Значение
: :-BOOLEAN
: : =TRUE : FALSE
: : - INTEGER
ШТЕСЕР{СлисокПоимено8аиных
.1
.1 I I I I
I I
I I
СписокПоименованныхЧисел
ПоименованноеЧнсло
ЧислоСоЗнаком ЦслочислекноеЗиаченис
Тяп-СтрокаБитов
СписокПоименованныхБятов:
Чисел) : : = ПонменованноеЧисло I СписокПоименованныхЧисел. ПонменованнсеЧисло
: : — Идентификатор (ЧислоСоЗнаком) |
Идентификатор (ОпределенмоеЗначе-вне)
: : —Число 1-Число
: : ЧислоСоЗнаком! Идентификатор
: = BIT STRING I
BIT $ТЩ\7С{СпнсокПоименованных Битон)
: »Г!оимеыованныйБнт I
СпнсокПоныенованиыхБитов. ПоименованныйБит
С 73 ГОСТ 34.973-91
Поименованный Бит
Значение-СтрокаБтов
СписокПдентификатороз
Тнп-СтрохаОктетов Значение-СтрокаОктетов ВырожденныйТил ВырождеиноеЗначенне Тн п - ПОсл ед ов л ел мюсть
СлисокТипов-Компонентоп
: := Идентификатор (Число) 1 Идентификатор (ОтфедсленноеЗначе-
ние)
: : — b-строка I h-строка I {Список! 1дснтнфнкаторов) 1 ()
: : ««Идентификатор I
СписохИдснтнфнкзторов, Идентификатор
: : = OCTET STRING
: : — Ь-строка I h-строка
: : =NULL
; : -NULL
SEQUENCE (СиксокТипов-компоисн-тов) )
SEQUENCE ( )
СписокТилов-Компонентов. Тип-Ком-
Тип-Компонент
Значение-Последовательность
•СяисокЗвачений-Компонентов
понент
: : = ПонменованиыйТип I
ПонмсиованныйТип OPTIONAL I ПоименованныйТип DEFAULT Значение 1
COMPONENTS OF Тип
СлисокЗизчений-Коипонентов I {}
ПоименованноеЗначение I
Тип • ПоследоватсльностьИз
СписокЗиачский-Комлонснтов, Поименованное Значение
Значение-! 1оследователкиостьИз : :
СписокЗначеиий
Тип-Множество
: : .= SEQUENCE OF Тип I SEQUENCE
={Спнс6кЗначеннй) [ { ) : : = Значение I
СписокЗначеиий. Значение
: . = 5ЕТ{СписохТипонКомпоиентов]
Значение-Множество
Тип-МножествоИз Значемис-МножествоИз ВыборочныйТип
СлясокТипов-Вариаитов
ВыборочноеЗначенис СелективныйТяп
СслсктивноеЗначеннс ТегироваиныйТкп Тег
НомерВКлассс
Класс
ТегированкоеЗначеинс
ПронзвольныйТил
SET! )
: : = (СпксокЗяаченнй-Компонсн* тин) I { )
: := SET OF Тип I SET : : — (СписокЗначеиий} I ( }
; :=СНО1СЕ {СлисокТипоп Вари- * антов)
: : = ПонменовзнныйТнп 1
СписохТипов-Вариантов, ПоименованныйТяп : : = ПоименованноеЗначение : : —Идентификатор<Тип : : = ПоименованноеЗначение : : — Тег тип I Ter IMPLICIT Тип : : = I Класс НомерВКлассе]
: —Число I ОпределееиоеЗначе-юге
: : - UNIVERSAL |
APPLICATION | PRIVATE | Пусто : : ^ Значение : : - ANY
ГОСТ 34.973—91 С. 79
Произвшыкд^Значенне ; : —Тнп Значение
Тип-Иден»ификаторОбъскта : : «OBJECT IDENTIFIER Значение-ИдОбгекта : : ={СпнСокКомпоне1гто1>И*Объекга} I {ОпредсленноеЗначспнс СписокКомнонентовИдОбъекта) СлисокКомяонеиговИдОбъекта : : = КомпонситИлОбъскта КомпонентИдОбъсктаСписокКомпонситовИдОбъекга
КомпонентИдОбьекта
Именнаяформа
Числоианформа
Смешаинаяформз
ТипСтрокаЗиакоп Значение-Строка Знаков ОбшсупотрсбктельиыЙТип
Перечисленные ниже типы NumericStrtng PrintableString TclctcxString
: : «Именнаяформа I
Числоваяфоома I
Смешаинаяформз
: : «Идентификатор
: : —Число I ОпределенносЗначенне
: : «Идентификатор (Числовая форма)
: : «СсылкаНаТип
: : =с-строка
: : «СсылкаНаТип
«строка знаков» определены.в разд. 29
VisibleString
T6tString
Videotex String
Общеупотребительные в разд. 30. 31. 32. 33.
GeneraliaedTime
UTCDme
Перечисленные ниже
ISO646String
1 A5S’ring
Graphicstring
General String типы, имена которых перечислены ниже, определены
мечника | к используются в макроаотации.
EXTERNAL
ObjoctDcscHplor дополнительные элементы определены в □. 1.2 при-
макроссылка
СсылкаН а Продукцию ЛохальнаяСсылкаНаТип ЛокальнаяСсылкаПаЗначенис
а-строка
«string»
«identifier»
Ниже приводятся продукции, ними символами этих продукций
«number» «empty» MACRO TYPE NOTATION VALUE value type
используемые в приложении ГН; терминаль* являются приведенные выше элементы, а
также элементы, перечисленные и начале настоящего приложении. Макроопределение : : «макроссылка
MACRO
BEGIN ТелоМакро END
ТелоМакро : : = ПродукцняТкпа ПролукцияЗначсния
Вспомогательные Продукции ПродукцияТипа : : —
TYPE NOTATION
<; : —»
СписокВариантоэ.Макро ПродукцияЗиачения : : ®
VALUE NOTATION
С. 80 ГОСТ 34.973-81
СпксокВариантовМакро ВспомогатсльнысПродукции : ; —
СписокПродукций I empty
СлксокПродукциЙ : : = Продукция 1 СлисокПродукдий Продукция Продукция : : =СсылкаНзПродукиик>
СлнсокВариантовМакро
СписокВараангоаМнкро: ; =
ВарнантМакро I
СписокВарнантовМзхро
ВарнантМакро
ВарнантМакро : : —СлисокСимволов
СпнсокСнмволов I I «
СямвольныйЭлемект I
СпнсокСнмволов СимвольнуйЗлемент
Символьный Элемент : : = ОпределеннеСимаола I
ВложенноеОпределенкс
МакроТнп : : •■ Локал ьнвяСсылкаНаТнп Тип
1
ОпредслснисСнмоола : : = «а-сгрока* ОылкаНаПродухцню
«String» «identifier* «number* «empty» type
«УН value value
f
(ЛокальнаяСеылкаНаТип)
value (VALUE МакроТнп)
ВложенноеОпредсденне : :
(МакроТнп) I
(ЛохальнаяСсылкаНаЗначенне МакроТнп) I
СпнсокВложешшхОпределеннй
ВложенноеОп ределение
ЛокальносПрисвслниеТипа
<СпнсокВложсиныхОпределенкй>
ВложснносОпределенне I
Список ВложенныхОпределений
ВложснносОпределенне
: : ^ ЛокальмоеПрисвоениеТипа I
ЛохальноеПрнсвоенисЗначення
: : = ЛокальнаяСсылкаНаТяп
ЛокальиосПрисаосянсЗначения
МакроТнп
ЛокальнаяСсылкаНаЗначенне МакроТнп
МакроЗначение
МакроЗначение ■ = Значение
I
ЛокалшаяСсылкаНаЗначеннс
ГОСТ 34.978-81 С. 81
ПРИЛОЖЕНИЕ 7 Справочно
АЛФАВИТНЫЙ УКАЗАТЕЛЬ
Термин
булев ткн (BOOLEAN) внешняя ссылка на тип время
время UTC (UTCTlme)
всемирное время встроенный тип встроенное значение выборочный тип (CHOICE) вырожденный тип (NULL) дерево идентификаторов объектов знаковый набор АСН.1 значение идентификатор идентификатор объекта истина (TRUE) комментарий
компоненты (тина (COMPONENTS OF) ложь (FALSE) макро
множество (SET)
множество из (SET OF) модуль
необязательная возможность (OPTIONAL) неявное задание тега
общая форма записи времени (GtnrralUedTime) общеупотребительные типы
описатель объекта (OBJECT DISCR1PTOR) отображаемая строка (VisibleString) печатная строка (Printable-String) пользовательский (PRIVATE) последовательность (SEQUENCE) последовательность из (SEQUENCE OF) ... прикладной класс (APPLICATION) примеры присвоение значения присвоение типа продукции
произвольный тип (ANY) простой 1ИЛ
резервируемая последовательность знаков сводка синтаксиса селективный тип
ссылка на значение
ссылка из модуль ссылка па тип строка битов (BIT STRING) -строка знаков
Раздел, пункт
3.14. 8.2. 8.14. 13. 5.2.1
9.4. 10
30. 31
31
31
12.1
12.6
8.14. 22, П5 2.9
8.14. 17, П5.2.5
29.6. П21 ПЗ
3.8. 7
3.1
8.3
8.2. 8.14. 26
3.14. 8.14
7 3. 8 6
8.2. 8.14. 18
3.15. 8 2. 8.14 П1.1-П1.4, П5.3
8,14. 20. П527
8.14. 21
9
8.14. 18. 20
21
30
28. 30. 31. 32. 33
33
29
29. 29 4
5.8. 24
8.2. 8 14. 18. 52.6 8.2, 8 14. 19. 5.2.6
5.8. 24
5 1-5.3
8.12
11.1
5.1
8.2. 8 14. 19.2. 25, 5.2.11
3.3
8.2.2
6
26. 12.4. 23
8 2. 8 14. 15. 523
3.17, 27, 29
С 82 ГОСТ М.973- 91
строка октетов (OCTET STRING) структурированный тип теги тегированный тип тегирование тип
тип T6I String
тин TelelexString
тип Videotexstring
тип компонент
универсальный (UNIVERSAL) целочисленный тип (INTEGER) числовая строка (NumericString) элемент «двоичная строка» (Ь ргрока) элемент «присвоение».
элемент «пусто»
элемент «строка знаков» (с-строка) элемент «число» («number»)
элемент «шестнадцатеричная строка» (h-строка) элементы элементы — ключевые слова
3.JS, 8.14. 16, 5.2.4
34
3.6. 5.6. 5.2.8
24. 5 28
3.7
32
29
29
29
35
5.8. 24
3.16, 8.2, 8.14. 14. 5.2.2
29. 29 3
8.9
8.12
8.7
8 11
8.8
8 10
3,9. 8
814
ГОСТ *4.973-91 С. 83
ПРИЛОЖЕНИЕ 8
Справочное
ГРАФЫ КОМПОНЕНТОВ ИДЕНТИФИКАТОРОВ ОБЪЕКТОВ
8.1. Поддерево компонентов идентификаторов объект о и, определяемое ИСО
На черт. 8.1 изображена схема дерева, составляенная по пп. 2.1—27 приложения 2.
Л^<? l а
* Присутствует только тогда, когда стандарт разделен на части (см. п. 2.4 приложения 2).
Черт. 8.1. Поддерево компонентов идентификаторов объектов по линии ИСО
8.2. Поддерево компонентов идентификаторов оъек-то в, определяемое М К К Т Т
С. 84 ГОСТ 34.973-91
На черт. 8.2 изображена схема дерева, составленная по по. 3.1—3.7 приложения 3.
' (Хорены
С ]
№-с: "
<--С □------------1-------------------------------1
(Oi rPis.'n'nenjefpH tn ,&#$?'&’ (Zbolrai™?*’-**-^ W-'VnprX'pe
* I 1 I . ^ '^
S’
ичВе^с сери:.
т-
(2h
(26}-z
номер use rep
ф
группы * issued-> V'
?DJ C’npa.-:^: Гас X ^
9
*оЗ C?mu &№? ms x >2'-
CP
Номер рееомен -до цш 8 серей
?
Номер Вопроса
-------C 3----- хрмпетеприн страну
------C 3-------
KOMnememiUfi ррминистРа ции сети
Номпетен * них репомен -
9 ли. ни
компете», ция Вопроса
Черт. 82. Поддерево компонентов идентификаторов
МККТТ
объектов по линии
ГОСТ 34.973-91 с. 85
ИНФОРМАЦИОННЫЕ ДАННЫЕ
I. ПОДГОТОВЛЕН И ВНЕСЕН НПО «Персей»
2. УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Комитета стандартизации и метрологии СССР от 30.07.91 № 1307 настоящий стандарт подготовлен методом прямого применения международного стандарта ИСО 8824—87 «Системы обработки информации. Взаимосвязь открытых систем. Спецификация абстрактно-синтаксической нотации версии 1 (АСН.1) и полностью ему соответствует
3. Срок проверки — 1997 г., периодичность проверки — 5 лет
4. ССЫЛОЧНЫЕ НОРМАТИВНО ТЕХНИЧЕСКИЕ ДОКУМЕНТЫ
Рацы. лужкг. п котором приедена ссылка | Обозначено? coothotcthj и" iue»o и мс*дународ»зс статора | ОбоэМ^мне uH'i-ctwHhOK» нормативно <• документа, на юэгорнк л ли ссылке |
0. 2. 3 0. 24.8, Приложение 5 29 5 (табл. 7) 2. 30.2. 303 0. 2, Приложение 1 Приложение 3 Приложение 5 | ИСО 8825-87 МККТТ T6I МККТТ Т.100 МККТТ Т.101 ИСО 8601-88 МККТТ Х.409-84 МККТТ Х.Ю1 МККТТ Т.5 н Т.6 | ГОСТ 24 520-80 |
С. 86 ГОСТ 34 973-91
СОДЕРЖАНИЕ
0. Впадение .............1
I. Назначение и спасть применения .......5
2. Ссылки..............G
3. Определения ............6
4, Сокращении . ...........10
5. Система обозначений, используемая в настоящем стандарте . .10
5.1. Продукция............И
5 2. Совокупности-варианты..... И
5.3. Пример продукции..........12
5.4. Расположение текста...........12
5 5. Рекурсия............12
5 6. Ссылки на совокупность последовательностей . . . .13
5.7. Ссылки на элемент . . . ... .13
5.8. Теги.............И
6. Использование нотации АСН.1 ........14
7. Набор знаков нотации АСИ 1.........14
8 Элементы ДСП 1 , ......... 15
8.1. Общие правила ..........
8.2. Ссылки на тин....... . , .
8.3. Идентификаторы......
8 4 Ссылки на значение ...........
8.5. Ссылка на модуль...........
8.6. Комментарий...........
8.7. Пустой элемент ... .......
8.8. Элемент «число» ...... . . .
8.9. Элемент «двоичная строка»........
8.10. Элемент «шестналцатсрнчиак строка»......
8.11. Элемент «строка знаков»........
8.12 Элемент «присвоение».........
8.13. Элементы, состоящие из одного знака.....
8.14. Элементы — ключевые слова .......
15
16
17
17
17
17
17
17
1$
18
18
18
18
19
9. Определение модуля...... 19
10. Ссылки на определения типов к значений......21
11. Присвоение типов и значений.........21
12. Определение типов и значений ........22
13. Обозначения булевского типа.........25
14. Обозначения целочисленного типа........25
15 Обозначения .тля «строка битов»...... 26
16. Обозначения типа «строка октетов».......28
17. Обозначения вырожденного типа........29
18. Обозначения тиков «последовательность»......29
19. Обозначения типов «Последовательность из».....31
20 Обозначения типи «Множество» 31
2). Обозначения типов «Множество нз* . 32
22. Обозначения выборочных типов........33
23. Обозначения селективных типов........35
24. Обозначения тегированных типов........35
25. Обозначения произвольного типа........37
25. Обозначения тика «Идентификатор объекта» . .... 37
27. Обозначения типов «Строка знаков».......39
28. Обозначения типов: обитая форма записи времени, всемирное время.
внешний тип Описатель объекта........49
29. Определение типов «строка знаков» ....... 49
ГОСТ 34.973-91 С. 87
30. Общая форма записи времени ,.......4'2
31. Всемирное время . ..........44
32. Внешний тан .... 45
33. Тип «Описатель объекта».........48
Приложения:
1. Макрошлация............50
2. Значения компонентов OBJECT IDENTIFIER, определяемые ИСО . 57
3. Значения компонентов OBJECT IDENTIFIER, определяемые МККТТ . 59
•1. Значения компонентов OBJECT IDENTIFIER, определяемые совместно . 61
5. Примеры п рекомендации...... 62
6 Сводка синтаксиса нотации АСН.1........76
7. Алфавитный указатель..........81
8 Графы компонентов идентификаторов объектов.....83
Информационные данные .......... 85
Редактор Р. Г. Говердовская Технический редактор В. Н. Малькова Корректор Л И. Зюбан
Слано в ч»6. toWSi Подл, к печ И.11.Я ЯЛ усл. и я 8.63 уел. кр.-отг. 6,19 г» -к»Я. л. ТН|Я« ОО ж», Це»* « р< 56 х.
Ордена «Знак Почет*» Иичмкг#» стнииртад, 123667. Мости. ГСП Новмресиемсхий пер.. 3.
Калужская таиграфая стандартов, ул. Московская. 386. Зак. 1720