XML exData XFA nativo
El host de eventos general crea propiedades de valor exData ausentes e importa hijos XML externos reales en sus ocurrencias nativas de formulario; el contenido de draws XHTML llega al consumidor de rich text del PDF tras la persistencia y recarga nativas del XDP
Importar y leer 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 una cadena de documento XML bien formado y devuelve undefined; ignoreRoot añade los hijos de la raíz agregadora, mientras que false añade la raíz misma
Overwrite reemplaza el contenido existente antes de importar; su valor por defecto false añade contenido en orden de documento, preservando los hijos importados previamente
saveXML() devuelve el elemento exData actual y su contenido como una declaración XML UTF-8 y una cadena de fragmento; el literal opcional pretty indenta el contenido de solo elementos preservando los espacios de texto mixto y CDATA
Los nombres de elementos importados, las declaraciones de namespace, los atributos cualificados por namespace, el Unicode literal, las referencias de caracteres, el texto mixto y CDATA permanecen como XML nativo; el markup no se almacena como una cadena plain rawValue
Creación y valores por defecto
Las propiedades de valor admiten un hijo exData, mutuamente excluyente con las demás opciones de valor; un valor de draw ausente y su hijo exData pueden crearse e importarse durante el mismo evento
exData toma 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 accesor de valor escalar sobre exData; usa loadXML y saveXML para el contenido XML externo
Lecturas inmediatas, identidad y transacciones
Una operación XML puramente nativa valida y serializa cada petición antes de que la ejecución del script continúe; un XML mal formado lanza dentro del script y puede manejarse con try/catch sin alterar el contenido actual
La repetición determinista de respuestas comparte la transacción de script existente y no ejecuta efectos secundarios de UI, ficheros, red ni transporte
Las llamadas saveXML posteriores ven las importaciones correctas anteriores y los atributos exData actuales durante el mismo evento; las referencias retenidas resuelven la identidad del nodo actual en eventos posteriores
Solo la ocurrencia repetida objetivo recibe el contenido nativo, y una ocurrencia nueva se inicializa desde el XML de la 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 permanece vacía tras la persistencia y la recarga; no revierte al contenido de la plantilla
Los errores de script no manejados y los fallos de publicación nativa restauran los bytes exactos del XDP nativo, incluidas las escrituras ordinarias de campos anteriores 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 elemento y texto, la profundidad, las operaciones, el tiempo transcurrido y las respuestas de repetición; el MaxValueChars del widget también acota el valor XML publicado
El bridge de FPC preserva los bytes UTF-8 a través de las respuestas XML y los valores de acciones ordinarias, incluidos los caracteres acentuados y el Unicode suplementario
El contenido de draws XHTML guardado usa el comportamiento de fuente, tamaño, color y CSS en línea del consumidor de rich text existente; lectores PDF independientes verifican el texto de la primera instancia, el estilo de reemplazo, el contenido de la instancia nueva y el borrado explícito
Objetivos de integración XML restantes
Esta entrega implementa las operaciones de contenido exData; los demás métodos loadXML/saveXML por 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 e instrucciones de procesamiento dentro del elemento permanecen nativos a través de importación, lecturas inmediatas, guardado, recarga y 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 rich de widgets siguen siendo objetivos de implementación separados
Referencias y APIs relacionadas
La semántica de raíz de importación y de reemplazo sigue la API Element de Adobe XFA; los nombres, referencias y espacios XML siguen XML 1.0
Consulta TXFAEventBinding, TXFAEventActionKind, Rich Text Properties y Interactive XFA Runtime