Потеряустойчивые пустые значения choice в XFDF
Поле choice может не иметь выбранных вариантов, а может выбирать вариант, чьё export value — пустая строка; эти состояния дают разные значения PDF-поля и обязаны оставаться различимыми при экспорте и обратном импорте
Пустой выбор и пустое export value
HotPDF экспортирует пустой массив значений с явным атрибутом-расширением в пространстве имён https://www.loslab.com/hotpdf/xfdf/
<xfdf xmlns="http://ns.adobe.com/xfdf/" xmlns:hpdf="https://www.loslab.com/hotpdf/xfdf/">
<fields>
<field name="Choice" hpdf:empty-values="true"><value/></field>
</fields>
</xfdf>
Атрибут обозначает пустой массив, поэтому импорт такого поля сбрасывает его выбранные варианты
Пустой value без пометки сохраняет обычный смысл: он означает пустую строку и выбирает совпадающий пустой export-вариант, если тот существует
<field name="Choice"><value/></field>
Поле, содержащее только имя, сохраняет прежнее поведение name-only и не превращается в явный сброс
Пространство имён и валидация входа
Импортёр опознаёт расширение по развёрнутому имени пространства имён, поэтому префикс может отличаться от hpdf; неквалифицированный атрибут или атрибут в другом пространстве имён не запрашивает сброс
Значение расширения обязано быть ровно true, при этом либо без элемента value, либо с одним пустым элементом value; конфликтующие непустые значения, повторные значения и rich-text значения отвергаются
Объявление пространства имён и атрибут-расширение учитываются в существующих бюджетах объектов и байтов; проверки отмены и транзакций остаются в силе
Интероперабельность
Этот атрибут — расширение HotPDF, а не объявление расширения Adobe XFDF или ISO; другие потребители могут его игнорировать и трактовать пустое значение по своему поведению
Используйте потребитель, знающий HotPDF, когда различие между отсутствием выбора и выбором пустой строки должно пережить цикл экспорта и импорта
Нативные, job- и callback-API
То же представление применяется к нативному обмену form-data и существующим JSON/callback точкам входа Windows и Linux; оно не добавляет полей в версионированные записи callback V1
JSON-лимиты form-data в Windows используют ключ formData, а в Linux — formDataLimits; для целевого API берите задокументированный ключ
Неизменившийся импорт сохраняет исходные байты файла, когда нет отложенных правок документа; существующие отложенные правки остаются частью подготовленного документа, а публикация сохраняет прежние атомарный вывод и проверки аутентифицированных разрешений