Нативный 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