Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 8825-4-2009 Информационная технология (ИТ). Правила кодирования АСН.1. Часть 4. Правила XML кодирования (XER)

     9.3 Структура результата расширенного XML кодирования

9.3.1 Законченное расширенное XML кодирование продуцирует хорошо сформированный XML документ, состоящий из:

а) XML пролога (может быть пустым как опция кодера), как определено в 7.2;

б) элемента XML документа, являющегося результатом законченного кодирования значения единственного типа АСН.1, называемого корневым типом, как определено в разделе 16.

9.3.2 Результаты кодирования "XML Value", используемые для базового XML кодирования, модифицированы для расширенного XML кодирования путем применения окончательных команд кодирования для типов ("Туре"), которые они кодируют, и окончательных команд кодирования для их компонентов (до любой глубины) вместе с любыми командами кодирования GLOBAL-DEFAULTS.

Примечание - В исключительных случаях полное содержание элемента XML документа для сильно уплотненной структуры АСН.1 может (путем использования команды кодирования UNTAGGED) состоять не более чем из линейной последовательности XML элементов, в которой только корневой элемент может иметь дочерние элементы. Применение команды UNTAGGED ограничено, чтобы обеспечить однозначное отображение таких результирующих линейных последовательностей XML элементов в компоненты абстрактного значения корневого типа АСН.1 (см. 9.2.11).

9.3.3 Элемент XML документа при расширенном XER кодировании состоит из единственного XML элемента, который должен быть "ExtendedXMLTypedValue" для кодируемого типа (корневой тип). Он может включать атрибуты в стартовом теге или в теге пустого элемента и может иметь контент, который включает и дочерние элементы (см. W3C XML), и нетегированный текст. Дочерние элементы сами могут иметь свои дочерние элементы и нетегированный текст.

9.3.4 Абстрактные значения компонентов включающего типа кодируются как значения "ExtendedXMLValue" (см. 16.4), возможно модифицированные командами кодирования, примененными к ним или к их собственным компонентам. Эти значения "ExtendedXMLValue":

а) могут быть охвачены тегами XML стартовым и конечным (называемыми ассоциативными тегами), чтобы сформировать элемент в пределах "ExtendedXMLValue" включающего типа;

б) могут (путем использования команды кодирования UNTAGGED для типа, который не является посимвольно-кодируемым) формировать частичный контент XML элемента для значения "ExtendedXMLValue" включающего типа;

Примечание - Приложение В описывает результат применения команды UNTAGGED как продукционных правил для контента частичного XML элемента, который может сочетаться с другими результатами кодирования для того, чтобы сформировать контент XML элемента, чей тип не является UNTAGGED.

в) могут (путем использования команды кодирования UNTAGGED для посимвольно-кодируемого типа) формировать полное значение "ExtendedXMLValue" компонента;

г) могут (путем использования команды кодирования ATTRIBUTE для посимвольно-кодируемого типа) формировать значение "CharacterEncodableValue" в "QuotedValue" атрибута "Attribute" (см. 19.3.3).

9.3.5 Если значение "ExtendedXMLValue" - пусто и его ассоциированные теги не удалены путем использования команды кодирования UNTAGGED, то ассоциированные предшествующий и последующий теги (как опция кодера) могут быть заменены пустым от элементов тегом XML (см. ИСО/МЭК 8824-1, 16.8). Он называется ассоциированным пустым от элементов тегом.

9.3.6 Преобразование, определенное в 9.3.5, выполняется концептуально после завершения полного процесса кодирования и может быть предотвращено командой кодирования PI-OR-COMMENT (см. раздел 29), продуцирующей одну или более команд обработки XML или один или несколько элементов комментария XML между стартовым и конечным тегами.

9.3.7 Ассоциированный предшествующий тег, ассоциированный последующий тег и ассоциированный пустой от элементов тег в совокупности называются ассоциированными тегами. Имена XML элементов в ассоциированных тегах называются именами ассоциированных тегов и (в отсутствие окончательных команд кодирования NAME и NAMESPACE) являются идентификаторами, референтными именами типов или именами типов "xmlasn1typename" (см. ИСО/МЭК 8824-1, 11.25).