ГОСТ Р ИСО/МЭК 8824-1-2001
— нерасширяемое, а тип не наследует никаких расширяющих дополнений, которые могут присут
ствовать в порождающем типе. Например:
А :: = INTEGER (0..10. . . . )- - Л —расширяемый
В :: = Л (2..5)
С :: = А
- - В —нерасширяемый
- - С —расширяемый
47.6Компоненты типов “множество", "последовательность" и "выбор", которые, согласно ог
раничению, должны отсутствовать, не могут присутствовать даже в том случае, когда тип "множе ство".
"последовательность" или "выбор" является расширяемым.
П р и м е ч а н и е — Внутренние ограничения типа нс влияют на расширяемость.
Например:
А : : = SEQUENCE{
a INTEGER
Ь BOOLEAN OPTIONAL
}
В : : = A (WITH COMPONENTS |b ABSENT» - - В -
расширяемый, но V
- - не должен присутствовать ни в каком его значении.
47.7Когда настоящий стандарт требует различия тегов (см. 24.5. 24.6. 26.3 и 28.2), то до про
ведения проверки на единственность тегов должно быть осуществлено следующее преобразование.
47.7.1 Новый элемент или альтернатива (называемый "концептуально добавляемым элемен
том", см. 47.7.2) концептуально добавляется в точке вставки расширения, если:
а) нет маркеров расширения, но расширяемость подразумевается заголовком модуля, и тогда
добавляются маркер расширения и новый элемент как первое дополнение после маркера расшире
ния. или
б) имеется единственный маркер расширения в CHOICE, SEQUENCE или SET. и тогда
новый элемент добаштяегся в конце CHOICE, SEQUENCE или SET непосредственно перед закры
вающей скобкой, или
в) имеется два маркера расширения в CHOICE. SEQUENCE или SET и тогда новый элемент
добавляется непосредственно перед вторым маркером расширения.
47.7.2 Этот концептуально добавляемый элемент служит исключительно для проверки пра
вильности применения правил, требующих различия тегов (см. 24.5, 24.6. 26.3 и 28.2). Он концепту
ально добавляется после применения автоматического тегирования (если оно применяется) и рас
крытия COMPONENTS OF.
47.7.3 Концептуально добавляемый элемент определяется как имеющий тег. который отличен
от тегов всех обычных типов ACH.I, но который согласуется с тегами всех концептуально добавля
емых элементов и с неопределенным тегом открытого типа, как специфицировано в ГОСТ Р ИСО/
МЭК 8824-2, 14.2, примечание 2.
П р и м е ч а н и е —Правила, касающиеся единственности тегов относительно концептуально добавля
емых элементов и открытого типа, вместе с правилами, требующими различия тегов (см. 24.5. 24.6. 26.3 и
28.2), являются необходимыми и достаточными, чтобы гарантировать, что:
а) любое неизвестное расширяющее дополнение может быть недвусмысленно приписано к единствен
ной точке вставки при декодировании BER;
б) неизвестные расширяющие дополнения никогда нс могут быть перепутаны с элементами OPTIONAL.
13 PER эти правила достаточны, но не необходимы для гарантии указанных свойств. Тем не
менее эти правила вводятся как правила ACH.I для обеспечения независимости нотации от правил
кодирования.
47.7.4 Если с этими концептуально добавленными элементами нарушаются правила, требую
щие различия тегов, то в спецификации была неправильно использована нотация расширения.
П р и м е ч а н и е —Целью приведенных выше правил является установление точных ограничений,
вытекающих из использовании точек вставки (в частности, тех. которые не находятся в конце CHOICE.
SEQUENCE пли SET). Ограничения предназначены для того, чтобы гарантировать, что в ВЕК. DER и CER
можно неизвестный элемент, полученный системой версии 1. недвусмысленна приписать конкретной точке
вставки. Это важно, когда обработка расширений таких добавленных элементов различна для разных точек
вставки.
59