XML exData XFA nativo
El host general de eventos crea propiedades de valor exData ausentes e importa hijos reales de XML externo en sus ocurrencias nativas de formulario; el contenido de draw XHTML llega al consumidor de rich text del PDF tras la persistencia y recarga nativas del XDP
Importación y lectura de 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) acepta un string de documento XML well-formed y devuelve undefined; ignoreRoot agrega los hijos de la raíz agregadora, mientras que false agrega la raíz misma
Overwrite reemplaza el contenido existente antes de importar; su valor por defecto false agrega contenido en orden de documento, preservando los hijos previamente importados
saveXML() devuelve el elemento exData actual y su contenido como una declaración XML UTF-8 y un string de fragmento; el literal opcional pretty indenta el contenido de solo elementos preservando el whitespace mixto de texto y CDATA
Los nombres de elementos importados, las declaraciones de namespaces, los atributos calificados por namespace, el Unicode literal, las referencias de caracteres, el texto mixto y el CDATA permanecen como XML nativo; el markup no se almacena como un string plano de rawValue
Creación y valores por defecto
Las propiedades de valor permiten un hijo exData, mutuamente excluyente con las demás opciones de valor; un valor de draw ausente y un hijo exData pueden crearse e importarse durante el mismo evento
exData tiene por defecto maxLength=-1 y transferEncoding=none, con atributos vacíos contentType, href, id, name, rid, use y usehref
El host de eventos no expone un accessor de valor escalar en exData; usa loadXML y saveXML para el contenido XML externo
Lecturas inmediatas, identidad y transacciones
Una operación puramente nativa de XML valida y serializa cada solicitud antes de que la ejecución del script continúe; un XML malformado lanza dentro del script y puede manejarse con try/catch sin cambiar el contenido actual
El replay determinista de respuestas comparte la transacción existente del script y no ejecuta efectos secundarios de UI, archivos, red o transporte
Las llamadas posteriores a saveXML ven las importaciones exitosas anteriores y los atributos exData actuales durante el mismo evento; las referencias retenidas resuelven la identidad actual del nodo en eventos posteriores
Solo la ocurrencia repetida apuntada recibe contenido nativo, y una nueva ocurrencia se inicializa desde el XML de plantilla en lugar de copiar el override importado de una ocurrencia existente
Una raíz importada vacía con overwrite=true limpia el contenido real y queda vacía tras la persistencia y la recarga; no revierte al contenido de plantilla
Los errores no manejados de scripts y los fallos de publicación nativa restauran los bytes nativos exactos del XDP, incluidas las escrituras ordinarias anteriores de campos y las mutaciones XML
Presupuestos y consumo guardado
Los límites del script acotan los bytes de entrada y salida XML, los nodos nativos de elementos y texto, la profundidad, las operaciones, el tiempo transcurrido y las respuestas de replay; el MaxValueChars del widget también acota el valor XML publicado
El bridge FPC preserva los bytes UTF-8 a través de las respuestas XML y los valores ordinarios de acciones, incluidos los caracteres acentuados y el Unicode suplementario
El contenido de draw XHTML guardado usa el comportamiento existente de fuente, size, color y CSS inline del consumidor de rich text; lectores PDF independientes verifican el texto de la primera instancia, el estilo reemplazado, el contenido de la nueva instancia y el limpiado explícito
Objetivos de integración XML restantes
Esta entrega implementa operaciones de contenido exData; los demás métodos loadXML/saveXML de nodeclass, la importación estructural del Data DOM y la mutación general de nodos externos siguen siendo objetivos separados
Las declaraciones DTD y los catálogos de entidades personalizados siguen sin implementarse; las entidades predefinidas y las referencias de caracteres decimales o hexadecimales están soportadas
Los comentarios y processing instructions dentro del elemento permanecen nativos a través de la importación, las lecturas inmediatas, el guardado, la recarga y el rollback; el markup a nivel de documento fuera de la raíz y los round trips léxicos XML completos siguen siendo objetivos separados
La resolución de href externos, las transferencias exData codificadas, la aplicación de maxLength, los consumidores de medios externos y las apariencias Unicode enriquecidas de widgets siguen siendo objetivos de implementación separados
Referencias y APIs relacionadas
La semántica de raíz de importación y reemplazo sigue la API Element de Adobe XFA; los nombres XML, las referencias y el whitespace siguen XML 1.0
Consulta TXFAEventBinding, TXFAEventActionKind, Propiedades de Rich Text y Runtime XFA interactivo