ГОСТ Р ИСО/МЭК 8824-1-2001
7 Требования расширяемости для правил кодирования
7.1 Все правила кодирования ACH.I должны допускать кодирование значения расширяемого
типа "X" таким образом, что оно может быть декодировано с использованием расширяемого типа
“V™, который связан расширением с "X". Более того, правила кодирования должны допускать, что
бы значения, декодированные с использованием “Y". были повторно закодированы (используя
"Y") и декодированы с использованием третьего расширяемого типа "Z". который связан расшире
нием с “Y” (и. следовательно, с “X”).
П ри м е ч а мне —Типы "X". *Y” и *Z”могут появляться в последовательности расширения в любом
порядке.
Если значение расширяемого типа "X" закодировано и передано (непосредственно или через
ретранслирующее приложение, использующее связанный расширением тип "Z”) другому приложе
нию. которое декодирует значение, используя расширяемый тип "Y". связанный расширением с
"X", то декодер, использующий тип "Y", получит абстрактное значение, составленное из:
а) абстрактного значения типа кормя расширения;
б) абстрактного значения каждого расширяющего дополнения, которое присутствует как в
"Xй, так и в "Y":
в) выделенного кодирования для каждого расширяющего дополнения, которое есть в "Х“. но
отсутствует в Т " (если такие имеются).
Кодирование в случае в) должно быть пригодно для включения в последующее кодирование
значения “Y", если это требуется приложением. Это кодирование должно быть допустимым кодиро
ванием значения "X".
П р и м е р - Если система Л использует тип расширяемого корня (тип "X"). являющийся
типом "последовательность" или "множество”с расширяющим дополнением факультативного цело
готипа, а система В использует связанный расширением тип (тип "Y"), имеющий два расширяющих
дополнения, каждое из которых - факультативный целый тип. то при передаче от В значения “Y"
с опущенным целым значением первого расширяющего дополнения и включенным вторым, оно не
должно быть перепутано системой Л с наличием первого (единственного) расширяющего дополне
ния "X", о котором ей известно. Более того, Л должна быть в состоянии повторно закодировать
значение "X" со значением, предоставленным для первого целого типа, с последующим вторым
целым значением, полученным от В. если это требуется прикладным протоколом.
7.2 Все правила кодирования ЛСН.1 должны специфицировать кодирование и декодирование
значения перечислимого и выборочного типов таким образом, что если передаваемое значение —
из множества расширяющих дополнений, общего для кодера и декодера, то оно будет успешно
декодировано, в противном случае у декодера должна быть возможность выделить
кодирование этого значения и иде»ггифинировать его как значение (неизвестного) расширяющего
дополнения.
7.3 Все правила кодирования ACH.I должны специфицировать кодирование и декодирование
типов с расширяемыми ограничениями таким образом, что если передаваемое значение — из мно
жества расширяющих дополнений, общего для кодера и декодера, то оно будет успешно декодиро
вано. в противном случае у декодера должна быть возможность выделить кодирование этого значе ния
и идентифицировать его как значение (неизвестного) расширяющего дополнения.
В любом случае присутствие расширяющих дополнений не должно влиять на возможность
распознавания последующего материала, когда тип с маркером расширения вложен в некоторый
другой тип.
Пр и ме ч а й и с —Все варианты базовых и упаковывающих правил кодирования ACH.I удовлетворяют
всем этим требованиям.
8 Теги
8.1 Тег задается указанием его класса и номера в классе. Определены следующие классы тегов:
- универсальный (universal);
- прикладной (application);
- пользовательский (private);
- ко
1
гтекстно зависимый (context —specific).
II