Потеряустойчивые пустые значения 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 берите задокументированный ключ

Неизменившийся импорт сохраняет исходные байты файла, когда нет отложенных правок документа; существующие отложенные правки остаются частью подготовленного документа, а публикация сохраняет прежние атомарный вывод и проверки аутентифицированных разрешений

Смежные темы