Нативный XML для exData XFA

Общий хост событий создаёт отсутствующие свойства значений exData и импортирует настоящий чужой XML в их нативные вхождения формы; содержимое XHTML draw доходит до потребителя rich text PDF после нативного сохранения и перезагрузки XDP

Импорт и чтение XML

const content = row.label.value.exData;
content.contentType = "text/html";
content.loadXML(
  '<body xmlns="http://www.w3.org/1999/xhtml">' +
  '<p><span style="font-size:18pt;color:#0000FF">Changed</span></p>' +
  '</body>',
  false,
  true
);
const currentXML = content.saveXML();
const readableXML = content.saveXML("pretty");

loadXML(source, ignoreRoot=true, overwrite=false) принимает строку корректно сформированного XML-документа и возвращает undefined; ignoreRoot добавляет детей агрегирующего корня, а false добавляет сам корень

Overwrite заменяет существующее содержимое перед импортом; дефолтный false добавляет содержимое в порядке документа, сохраняя ранее импортированных детей

saveXML() возвращает текущий элемент exData и его содержимое как объявление UTF-8 XML и строку фрагмента; необязательный литерал pretty добавляет отступы к содержимому из одних элементов, сохраняя смешанный текст и пробелы CDATA

Импортированные имена элементов, объявления пространств имён, атрибуты с префиксами пространств, литеральный Unicode, ссылки на символы, смешанный текст и CDATA остаются нативным XML; разметка не хранится как простая строка rawValue

Создание и дефолты

Свойства значений допускают одного ребёнка exData, взаимоисключающего с другими выборами значений; отсутствующие значение draw и ребёнок exData могут быть созданы и импортированы в одном событии

exData по умолчанию имеет maxLength=-1 и transferEncoding=none с пустыми атрибутами contentType, href, id, name, rid, use и usehref

Хост событий не открывает accessor скалярного значения на exData; для чужого XML-содержимого используйте loadXML и saveXML

Немедленное чтение, идентичность и транзакции

Чисто нативная XML-операция проверяет и сериализует каждый запрос до продолжения выполнения скрипта; некорректный XML бросает исключение внутри скрипта и может быть обработан try/catch без изменения текущего содержимого

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

Последующие вызовы saveXML видят предыдущие успешные импорты и текущие атрибуты exData в том же событии; удерживаемые ссылки разрешают текущую идентичность узла в последующих событиях

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

Пустой импортированный корень с overwrite=true очищает фактическое содержимое и остаётся пустым после сохранения и перезагрузки; к содержимому шаблона он не откатывается

Необработанные ошибки скрипта и сбои нативной публикации восстанавливают точные нативные байты XDP, включая предыдущие обычные записи полей и мутации XML

Бюджеты и сохраняемое потребление

Скриптовые лимиты ограничивают входные и выходные байты XML, нативные элементы и текстовые узлы, глубину, операции, время и replay-ответы; MaxValueChars виджета также ограничивает публикуемое значение XML

FPC-мост сохраняет байты UTF-8 через XML-ответы и обычные значения действий, включая символы с акцентами и дополнительные символы Unicode

Сохраняемое содержимое XHTML draw использует существующее поведение потребителя rich text для шрифта, размера, цвета и встроенного CSS; независимые читалки PDF проверяют текст первого экземпляра, заменённое оформление, содержимое нового экземпляра и явную очистку

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

Эта поставка реализует операции содержимого exData; прочие методы loadXML/saveXML других nodeclass, структурный импорт Data DOM и общая мутация чужих узлов остаются отдельными целями

DTD-объявления и пользовательские каталоги сущностей остаются нереализованными; предопределённые сущности и десятичные или шестнадцатеричные ссылки на символы поддерживаются

Комментарии и инструкции обработки внутри элемента остаются нативными через импорт, немедленное чтение, сохранение, перезагрузку и rollback; разметка уровня документа вне корня и полные XML-лексические циклы остаются отдельными целями

Разрешение внешних href, закодированные передачи exData, соблюдение maxLength, потребители чужих медиа и Unicode-внешности rich-виджетов остаются отдельными целями реализации

Справка и связанные API

Семантика корня импорта и замены следует Adobe XFA Element API; имена, ссылки и пробелы XML следуют XML 1.0

См. TXFAEventBinding, TXFAEventActionKind, Свойства rich text и Интерактивный XFA Runtime