ГОСТ 1» ИСО/МЭК 8X24-1-2001
первых трех альтернатив для "ComponentType" не содержит "TaggedType", то преобразование авто
матического тегирования выбрано дтя всего “ComponentTypeLists"; в противном случае — нет.
П р н м с ч а н » я
1 Использование нотации ’TaggedType" в определении списка компонентов для тина "последователь
ность" позволяет спецификатору управлять тегами в противоположность автоматическому присваиванию в
методе автоматическою тегирования. Следовательно, вследующем случае:
Т : : - SEQUENCE ( a INTEGER. Ь (I) BOOLEAN, с OCTET STRING )
автоматическое тегирование не применяется к списку компонентов а. Ь. с. даже если это определение типа
"последовательность" Т встретилось в модуле, для которого было выбрано автоматическое тегирование.
2 Только экземпляры продукции ’ComponentTypeList", встретившиеся в модуле, дли которого было
выбрано автоматическое тегирование, являются кандидатами дтя преобразования автоматического тегирова
нии.
24.3 Вопрос о применении преобразования автоматического тегирования решается индивиду
ально для каждого экземпляра списка “ComponentTypeLists" и до преобразования COMPONENTS
OF, определешюго в 24.4. Однако, как определено в 24.7-24.9, преобразование автоматического
тегирования (если оно применяется) производится после преобразования COMPONENTS OF.
Пр и ме ч а н и е —Врезультате применение автоматических тегов подавляется тегами, явно присутству
ющими в ’ComponentTypeLists", но нс тегами, присутствующими в "Туре", следующем за COMPONENTS OF.
24.4 Тип Type" в нотации "COMPONENTS OF Туре" должен быть типом "последовательность".
Нотация "COMPONENTS OF Туре" должна использоваться для определения включения, в этом
месте списка компонентов, всех компонентов указанного типа, за исключением любых маркеров
расширения и расширяющихдополнений, которые могут присутствовать в "Туре". (В "COMPONENTS
OF Туре" включается только "RootComponeiuTypeList" типа Туре"; маркеры расширения и расши
ряющие дополнения. если они есть, игнорируются нотацией "COMPONENTS OF Туре"). При этом
преобразовании игнорируются все ограничения, применяемые к указываемому типу.
П р и м е ч а я и е —Это преобразование логически завершается до удовлетворения требований после
дующих подразделов.
24.5 В каждом из последующих подразделов идентифицированы серии появлений
"ComponentType" либо в корне, либо в расширяющих дополнениях, либо и в том. и в другом.
Правило 24.5.1 должно применяться для всех таких серий.
24.5.1 Дтя каждой серии из одного или нескольких последовательных появлений типов компо
нентов "ComponentType". отмеченных как OPTIONAL или DEFAULT, теги этих "ComponentType" и
любого непосредственно следующего типа компонента в серии должны быть различными (см.
раздел 30). Если было выбрано автоматическое тегирование, то требование, чтобы теги были
различными, применяется только после осуществления автоматического тегирования, и всегда должно
быть удовлетворено, если применялось автоматическое тегирование.
24.5.2 Правило 24.5.1 должно применяться к сериям "ComponentType" в корне.
24.5.3 Правило 24.5.1 должно применяться к завершенным сериям "ComponentType" в корне
или в расширяющих дополнениях в текстуальном порядке их появления в определении типа (игно
рируя все скобки версий и многоточия).
24.6 Когда используется третья или четвертая альтернатива “ComponentTypeLists". все
"ComponentType" в расширяющих дополнениях должны иметь теги, отличные от тегов текстуально
последующих "ComponentType" до первого "ComponentType" который не отмечен как OPTIONAL или
DEFAULT в завершающем "RootComponeiuTypeList" включительно (если такой есть).
24.7 Преобразование автоматического тегирования появления списка “ComponentTypeLists"
логически осуществляется после преобразования, определенного в 24.4, но только если 24.2 опре
деляет, что оно должно применяться к этому экземпляру "ComponentTypeLists". Преобразование
автоматического тегирования изменяет каждый тип компонента "ComponentType” в
“ComponentTypeLists", заменяя исходный тип "Туре" в продукции "NamedType" замещением
"TaggedType", определенным в 24.9.
24.8 Если действует автоматическое тегирование и "ComponentType" в корне расширения не
имеют тегов, то "ComponentType" в "ExtensionAdditionLLst" должен быть тегированным типом.
24.9 Замещающий тегированный тип "TaggedType" определяется следующим образом:
а) в замещающей нотации "TaggedType" используется альтернатива "Tag Туре";
б) "Class" замещения "TaggedType" пуст (т. е. тегирование контекстно зависимое);
32