Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://oit.cmc.msu.ru/lectures/AnalizeIT/Ch13_3.html
Дата изменения: Thu Jan 15 23:15:42 2004 Дата индексирования: Mon Oct 1 22:31:40 2012 Кодировка: Windows-1251 |
Часть XIII13.3. Тег типаКаждый тип, используемый в ASN.1, содержит специальный признак, называемый тегом. Тег определяется либо самим стандартом, либо пользователем. Тегированием называется замена существующего (возможно, заданного по умолчанию) тега некоторого типа новым тегом. Тег вводится главным образом для машинного использования (при кодировании), чем для человека. Один и тот же тег может назначаться различным типам. В этом случае теги будут трактоваться в соответствии с текущим контекстом. В то же время для обозначения одного и того же типа можно использовать различные теги. В последнем случае типы являются изоморфными, но отличными друг от друга. При всех способах кодирования обеспечивается отличие значений нового типа от значений исходного типа, тем самым при декодировании обеспечивается возможность однозначного восстановления информации о типах переданных значений. Тег состоит их идентификатора класса и неотрицательного целого, различающего теги внутри класса. Определено четыре класса тегов: UNIVERSAL - используется только для данных, представленных в соответствии с правилами ASN.1 и назначается либо одному из типов, либо одному из способов формирования сложных типов.
Кроме класса UNIVERSAL существуют классы: APPLICATION - применяется для определения типов, построенных по правилам других стандартов, - и PRIVATE - используется для обозначения типов, не входящих ни в один из стандартов. Кроме того, существует класс контекстно-зависимых тегов, служащий для интерпретации типов в зависимости от контекста. Примеры тегирования типа будут даны ниже. Формально синтаксис тегированного типа можно записать так: ТегированныйТип ::= Тег Тип | Тег IMPLICIT Тип | Тег EXPLICIT Тип Тег ::= [Класс НомерВКлассе] Класс ::= UNIVERSAL | APPLICATION | PRIVATE | пусто --для класса контекстно-зависимых тегов не вводится --специального наименования |