ГОСТ Р ИСО/МЭК 8825-4 — 2009
36.3.4 Значение атрибута идентификации типа должно быть идентификатором выбранной альтер
нативы. возможно модифицированной в соответствии слюбой окончательной командой кодирования NAME
или NAMESPACE.
36.3.5 Если нет атрибута идентификации типа, представленного в результате кодирования типа с этой
окончательной командой кодирования, декодердолжен предположить, что представлена первая альтерна
тива выбора.
36.3.6 Присутствие атрибута идентификации типа с непредвиденным значением недолжно приводить
к ошибке декодирования. Сталкиваясь с таким атрибутом в результате кодирования, декодер должен
предположить, что была идентифицирована первая альтернатива выбора, и может проигнорироватьатрибут
идентификации типа (или передать его приложению). Кроме того, в таких случаях декодер может проигно
рировать (или передать приложению) любые другие непредвиденные атрибуты и любые непредвиден
ные дочерние элементы, встречающиеся после всех ожидаемых дочерних элементов в альтернативе
"ExtendedXMLValue".
36.3.7 Все "Атрибуты" ("Attribute"s). которые были бы иначе в"AttributeList" "ExtendedXMLChotceValue",
должны быть добавлены к"AttnbuteList" включающего элемента и "ExtendedXMLChoiceValue" типа выбора
должно быть заменено "ExtendedXMLValue" в "ExtendedXMLChoiceValue-.
36.3.8 Если одна или более альтернатив типа выбора с окончательной командой кодирования
USE-TYPE относятся к типу выбора с окончательной командой кодирования USE-UNION, атрибут иденти
фикации типа какможет опция кодера идентифицироватьодну изальтернатив типа выбора сокончательной
командой кодирования USE-UNION вместо альтернативы типа выбора с окончательной командой кодирова
ния USE-TYPE.
37 Команда кодирования USE-UNION
37.1 Общие положения
37.1.1 "UseUnionlnstruction":
UseUnionlnstruction::=
USE-UNION
TargetList
37.1.2 Продукционное правило "TargetList” определено в 13.2.
37.1.3 Эта команда кодирования оптимизирует результат кодирования типа выбор в тех случаях,
когда результат кодирования абстрактных значений каждой альтернативы существенно отличается от
результата кодирования абстрактных значений других альтернатив для декодера, определяющего
абстрактные значения, представленные анализом кодирования.
37.1.4 Если тип выбора сокончательной командой кодирования USE-UNION не имеет окончательных
команд кодирования ATTRIBUTE или UNTAGGED. тогда эта команда кодирования может привести к вставке
атрибута идентификации типа ввключающий элемент, чтобы идентифицировать альтернативу, которая была
закодирована. Если тип выбора имеет окончательную команду кодирования ATTRIBUTE или UNTAGGED,
или является компонентом типа последовательность-изили набор-изtype командой кодирования LIST, вставка
атрибута идентификации типа невозможна.
37.1.5 Эта команда кодирования вызывает удаление начального и конечного тегов результата коди
рования альтернативы.
37.2 Ограничения
37.2.1 Тип с окончательной командой кодирования USE-UNION должен быть типом выбора.
37.2.2 Все альтернативы типа выбора должны быть посимвольно кодируемыми типами, но недолжны
быть типами выбора с окончательной командой кодирования USE-UNION.
37.2.3 Если тип выбора имеет окончательную команду кодирования ATTRIBUTE или UNTAGGED
или используется в определении типа как компонент типа последовательность-из или набор-из с оконча
тельной командой кодирования LIST, альтернативы типа выбора должны быть ограничены так. чтобы для
любой альтернативы все ее абстрактные значения имели, по крайней мере, один результат
кодирования (ее "ExtendedXMLValue”), который отличается от всех разрешенных результатов
кодирования всех предшествующих по тексту альтернатив.
П р и м е ч а н и е — Это требование обусловлено невозможностью вставить атрибут идентификации
типа, определяющий альтернативу, которая была выбрана. Без этого требования кодирование не было бы одно
значным.
63