Нативные свойства скалярных значений XFA

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

Создание скаляров

Поддерживаемые скалярные дети — boolean, date, dateTime, decimal, float, integer, text и time, с одним вхождением одного выбранного класса значения

const field = xfa.form.resolveNode("main.row[1].input");
const leaf = field.value.getElement("text", 0);
leaf.value = "updated";
field.dataNode.value = "from-data";
if (leaf.value !== "from-data") throw new Error("Value synchronization failed");

Чтение отсутствующего скалярного свойства материализует его нативный узел формы и инициализирует содержимое из текущего эффективного значения поля; повторный доступ возвращает тот же живой объект свойства

Value имеет общие атрибуты прототипа, override=0 и пустой атрибут relevant по умолчанию; поддерживаемые скалярные классы открывают общие атрибуты прототипа и пустое имя

Проверка «один из» включает все стандартные выборы значений, поэтому скаляр нельзя создать рядом с существующим выбором значения image, exData или графики

Немедленная и нативная синхронизация

Accessor'ы value и rawValue скалярного листа проксируют владеющее поле; связанный dataValue.value — записываемый алиас его accessor'а rawValue

Записи в поле, скаляр и данные обновляют чтение друг друга внутри того же скрипта, включая другие поля, разделяющие то же связанное значение данных

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

Типизированное скалярное содержимое сохраняется как переданный текст, включая канонические строки дат, времени и чисел; этот этап не вводит автоматическое числовое приведение или новое picture-форматирование

Синхронизация скрытых алиасов следует фактическим повторяющимся областям данных и сохраняет нематериализованные свойства

Экземпляры, идентичность и транзакции

Создание и редактирование свойства значения в одном повторяющемся вхождении сохраняет остальные вхождения; script objects могут удерживать ссылку на скалярное свойство до следующего события

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

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

Нативные сканы синхронизации участвуют в бюджетах операций и времени события; чрезмерная работа отклоняет транзакцию и восстанавливает её снимок

Сохраняемый PDF-вывод

Конвертация XFA в AcroForm потребляет сохранённые скалярные значения для нативных значений полей и сгенерированных appearance; значения первых экземпляров остаются неизменными

Целевой сохраняющий продюсер переоткрывает нативный XDP перед конвертацией, а независимые проверки pypdf и MuPDF инспектируют типизированные листья форм, значения dataset, нативные поля и фактический видимый текст appearance

Оставшиеся цели интеграции

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

Скалярные потребители draw и подписей поддерживают созданные значения на уровне экземпляров и явные пустые переопределения

Создание значений изображений и графики поддерживает нативных детей image, arc, line и rectangle с фактическими потребителями draw

Полная валидация скалярных форматов, rich-внешность виджетов и встраивание Unicode-внешности остаются отдельными целями реализации

Связанные API

Нативный Data DOM, Нативные дефолты полей, Создание отсутствующих свойств и Интерактивный XFA Runtime