ГОСТ Р ИСО/МЭК 8825-4 — 2009
32.1.4 В отсутствие этой команды кодирования опциональный компонент может быть закодирован
следующим образом.
а)(вариант «не пропущенный, но пустой»), если компонент присутствует в абстрактном значении
с абстрактным значением, которое имеет пустой результат кодирования "ExtendedXMLValue". тогда
"ExtendedXMLNamedValue"для компонента присутствуетв XMLдокументе обычно как тег пустогоэлемента
(или со смежными начальным и конечным тегами):
б) (вариант«пропущен»),есликомпонентотсутствует в абстрактномзначении,
"ExtendedXMLNamedValue’ не представлен;
в) (вариант «не пропущенный и не пустой»), если компонент присутствует в абстрактном значении
сабстрактным значением, которое не имеетпустогорезультатакодирования, тогда "ExtendedXMLNamedValue"
для компонента представлен с непустым содержанием.
32.1.5 Использование USE-NIL требует, чтобы отсутствиедополнительного компонента (32.1.4 б) было
сообщено включением нулевого идентификационного атрибута идентификации с именем "nil" и значением
"true" или "Г.
32.1.6 В случаях 32.1.4 а и б, нулевой признак идентификации может быть опущен (как выбор кодера)
или он может присутствоватьсо значением "false’ или "0". Опциональный компонентдолжен быть закодиро
ван исключением связанных тегов.
32.2 Ограничения
32.2.1 Команда кодирования USE-NIL должна быть только назначена для типа последовательность,
который имеет OPTIONAL компонент без окончательной команды кодирования ATTRIBUTE. Все другие
компоненты типа последовательность, если таковые имеются,должны иметь окончательную команду коди
рования ATTRIBUTE или ANY-ATTRIBUTE илидолжны быть компонентами последовательность-из. поддер
живающими команды кодирования USE-ORDER или EMBED-VALUE, которые являются также окончатель
ными командами кодирования для типа последовательность.
32.2.2 Тип последовательность недолжен иметь окончательной команды кодирования UNTAGGED.
32.2.3 Компонент OPTIONAL не должен иметь ни одной окончательной команды кодирования
ANY-ELEMENT. ANY-ATTRIBUTE. DEFAULT-FOR-EMPTY. EMBED-VALUE, PI-OR-COMMENT. UNTAGGED,
USE-NIL. USE-ORDER или USETYPE.
П р и м е ч а н и е — Кроме UNTAGGED. упомянутые выше команды кодирования не могут быть применены
к типу, который имеет окончательную команду кодирования UNTAGGED.
32.2.4 Если компонент OPTIONAL не посимвольно кодируемого типа, то этодолжен бытьтип последо
вательность, набор, выбор, последовательность-из, набор-из. открытый тип или тип строка октетов, или
строка битов, содержащая тип ’Туре" и без ENCODED BY.
32.2.5 Если компонент OPTIONAL будет типом последовательность, то ни один из его компонентов не
должен иметь окончательной команды кодирования ATTRIBUTE или ANY-ATTRIBUTE.
32.2.6 Эта команда кодирования не должна быть назначена, если нет команды кодирования
GLOBAL-DEFAULTS MODIFIED-ENCODINGS в разделе управления кодированием.
32.2.7 Тип с этой окончательной командой кодирования недолжен иметь ни одной из окончательных
команд кодирования UNTAGGED или USE-QNAME.
П р и м е ч а н и е — Нижеперечисленные окончательные команды кодирования никогда не должны
появляться с этой окончательной командой кодирования потому, что их применение к этому типу запрещено:
ANY-ATTRIBUTES. ANY-ELEMENT. ATTRIBUTE. BASE64. DECIMAL. LIST. TEXT. USENUMBER. USE-TYPE. USE-UNION,
WHITESPACE.
32.2.8 В TargetList" не должно быть уточняющей информации.
32.3 Действие на результат кодирования
32.3.1 Если компонент OPTIONAL отсутствует (32.1.4 б), то нулевой атрибут идентификации пустого
множества с названием "nil" и значением “true" или "1"должен бытьдобавлен к "AttributeList” включающего
элемента
32.3.2 Если компонент OPTIONAL присутствует (32.1.4 а и в), атрибут идентификации пустого может
быть опущен (как выбор кодера) илидобавлен к"AttnbuteList" включающего элемента со значением "false"
или "0". Опциональный компонентдолжен быть закодирован, опуская связанные теги.
58