Нативный Property DOM XFA
Общее выполнение с EnableJavaScript включает дочерние свойства контейнеров формы в живое дерево события, включая узлы value, типизированные значения, font, fill, color, ui, border и edge
Именованные контейнеры используют своё имя в SOM-путях; узлы свойств используют имя своего класса и сохраняют фактический атрибут name, обычно пустой
Типизированные значения и атрибуты
const field = xfa.resolveNode("main.row[1].cell");
field.value.text.value = "25";
field.font.size = "18pt";
field.font.fill.color.value = "0,128,255";
field.ui.textEdit.multiLine = "1";
field.resolveNode("border.edge[1]").thickness = "3pt";
field.font.setAttribute("saved", "custom");
const saved = field.font.getAttribute("custom");
row[1].cell.value.text.value = 25
row[1].cell.font.size = "18pt"
Типизированный ребёнок под узлом value поля разделяет живой rawValue поля; чтение и запись через value.text.value, field.rawValue и связанный dataNode видят изменения друг друга немедленно
Для узлов свойств с атрибутом value, например color, свойство value читает и пишет этот атрибут; для скалярных узлов содержимого оно читает и пишет текстовое содержимое
Атрибуты, присутствующие в эффективной привязке свойств, открываются как прямые свойства, кроме зарезервированных членов узла и движка; getAttribute(name) читает произвольный атрибут, а setAttribute(value, name) пишет его и немедленно открывает безопасное новое имя
FormCalc разрешает пути свойств и присваивает скалярные атрибуты через то же дерево события; соседи-свойства поддерживают индексы вхождений и селекторы классов
Нативное сохранение и рендеринг
Успешные записи создают или обновляют узлы свойств под совпадающим вхождением контейнера в нативном packet формы; шаблон и другие повторяющиеся вхождения сохраняют свои дефолты
Поиск свойств идёт по классу и локальному вхождению под именованным контейнером, а не пропускает безымянные узлы; смена атрибута name свойства сохраняет его идентичность, а перезагрузка сохранённого XDP восстанавливает эффективные переопределения
Удерживаемые хэндлы свойств следуют за опубликованными идентичностями владельцев через вставку и перемещение экземпляров; запись в хэндл после удаления его экземпляра прерывает операцию и восстанавливает транзакцию
Гарнитура и размер шрифта участвуют в измерении и reflow растущего текста на уровне экземпляров; flatten читает эффективные шрифт, цвет, границу, абзац и поддерживаемые атрибуты UI для каждого вхождения поля
Rich text draw потребляют эффективные переопределения шрифта, абзаца, встроенного CSS и скалярного содержимого для каждого вхождения, включая их измерение и размещение run
Создание экземпляра сохраняет дефолты всех соседей-свойств, включая несколько узлов edge, и использует значения атрибутов шаблона, а не переопределения другого вхождения
Переопределения UI создают поддерживаемые выборы виджетов и после успешного события меняют фактический тип рантайма на уровне экземпляра и нативные флаги поля
Бюджеты и низкоуровневые привязки
Обход свойств разделяет бюджеты узлов, глубины, операций и байтов события; нативные записи текста и атрибутов соблюдают MaxValueChars, а неудавшиеся записи восстанавливают нативные значения полей, переопределения свойств, состояние скриптов и порядок экземпляров
Прямые вызывающие используют xebdProperty и передают Attributes и DefaultAttributes; вторые инициализируют новые клонированные узлы
Действие атрибута свойства содержит имя атрибута, разделитель NUL и значение в TXFAEventAction.Value; TXFAWidgetRuntime валидирует его и применяет к нативной цели свойства
Покрытие
Дерево события включает объявленные узлы свойств и их эффективные атрибуты, с дефолтами схемы для поддерживаемых классов форматирования и виджетов; создание отсутствующих свойств теперь материализует поддерживаемые пути форматирования в нативном packet формы
Объявления event, calculate и validate остаются метаданными выполнения; variables-скрипты остаются script objects, а общее редактирование свойств не активирует скрипты метаданных
Дополнительные классы свойств схемы, общее удаление и перепривязка к другому родителю, мутация атрибутов с квалификацией пространств имён, дополнительные потребители свойств раскладки и дальнейшие возможности rich text или редактирования виджетов продолжаются как отдельные цели
Связанные API
Живое SOM-разрешение, Нативный Data DOM, HPDFXFAResolveFormInstanceProperty и Интерактивный XFA Runtime