XML del Data DOM nativo
Unit: HPDFXFARuntime
Métodos
dataNode.loadXML(xml, ignoreRoot = true, overwrite = false);
const compact = dataNode.saveXML();
const readable = dataNode.saveXML("pretty");
Estos métodos de script están disponibles en los nodos datasets, dataGroup y dataValue dentro de los eventos de TXFAWidgetRuntime
saveXML devuelve XML UTF-8 con una declaración y el nodo seleccionado como document element; el argumento opcional pretty agrega indentación al contenido de solo elementos
loadXML acepta un documento XML well-formed; ignoreRoot importa sus hijos en el nodo seleccionado, mientras que False importa el document element del documento de origen como hijo
overwrite elimina el contenido existente del destino antes de importar; su valor por defecto False agrega contenido y preserva las identidades existentes de los hijos
El nodo seleccionado retiene su identidad y atributos; los atributos de los hijos importados y sus mapeos de namespace se preservan
Grafo y bindings inmediatos
const record = xfa.datasets.data.main;
record.loadXML("<main><amount>42</amount></main>", true, true);
const amount = record.amount;
amount.value = "43";
if (this.parent.amount.rawValue !== "43") throw new Error("Missing binding update");
Un parse nativo exitoso instala de inmediato los hijos importados en el grafo actual del script; las propiedades ordinarias y los selectores SOM resuelven esos nodos frescos antes de la publicación del evento
Las celdas de datos se sincronizan en ambas direcciones con los alias de campos enlazados, incluidos los campos ocultos, los destinos de binding recién suministrados y los selectores dataRef existentes descendientes, con comodines, de clase y de índice numérico
Las importaciones de escalar a grupo actualizan la clase de datos del destino y exponen sus elementos hijos importados; un dataValue vaciado tiene un valor de cadena vacío
Importar un nuevo elemento de datos no asigna hojas de datos ambiguas no relacionadas para bindings sin resolver
Identidad y ámbitos repetidos
Overwrite invalida los handles viejos de hijos y publica identidades frescas de hijos; un script object puede retener un handle de datos importado fresco y usarlo en eventos posteriores
Appending preserva los handles existentes; importar dentro de una fila repetida cambia el ámbito nativo de datos de esa fila y sus campos enlazados
Las importaciones XML también funcionan dentro de una ocurrencia creada por addInstance durante el mismo evento
Reemplazar el contenido de datasets actualiza $data y $record a las nuevas raíces nativas, y rebasa las identidades sobrevivientes de formularios y script objects para que el estado léxico de módulos permanezca adjunto a su ámbito de formulario
Contenido y persistencia
Las importaciones nativas y el XDP guardado preservan en orden el texto ordinario, CDATA, comentarios y processing instructions
Los comentarios y processing instructions quedan fuera de la selección ordinaria de elementos del Data DOM y no se convierten en texto visible de campos
Los nodos importados preservan su namespace URI incluso bajo un namespace por defecto de ancestro distinto, incluido el namespace por defecto vacío explícito para elementos sin namespace
Los atributos con prefijo externo retienen nombres expandidos, y los nombres locales Unicode, el texto con acentos y los caracteres suplementarios sobreviven al guardado y recarga nativos
El saveXML de solo lectura no materializa propiedades de formulario ni cambia los bytes del XDP guardado
Validación y rollback
El parser XML nativo verifica well-formedness, validez de namespaces y atributos, caracteres XML, colocación de la declaración y sintaxis de entidades antes de la mutación del grafo
Una entrada malformada puede capturarse en JavaScript; el grafo nativo y de script anterior sigue disponible, y una mutación válida posterior aún puede confirmarse
Un evento fallido restaura los bytes del documento, los valores de widgets, el grafo importado, las identidades y el estado léxico de script objects, incluidos los fallos después de que la importación XML nativa ya se aplicó
Cada sesión nativa de JavaScript retiene su módulo DLL real mientras reconstruye engines para el replay de respuestas; engines, contextos y journals permanecen independientes, y la referencia al módulo se libera tras el teardown final del engine nativo
El parsing y la serialización XML aplican presupuestos de operaciones, profundidad, nodos, bytes y tiempo transcurrido junto con el deadline original del evento del runtime y los límites de caracteres de valores
Las importaciones no resuelven entidades externas ni realizan acciones de archivos, red o UI; las declaraciones DTD son rechazadas por este parser
Alcance actual
Esta integración del runtime de eventos apunta actualmente a Windows Win32 y Win64; la integración del runtime portable Linux sigue pendiente
Esta integración suministra importación y serialización XML nativas más reevaluación actual de bindings; createNode independiente, mutación de atributos de datos arbitrarios, reubicación de padres, navegación de ventana de records, predicados de binding y política de binding global siguen siendo objetivos del modelo de objetos separados
APIs relacionadas
Data DOM nativo, Native Bind SOM, TXFAEventBinding, TXFAEventAction y Runtime XFA interactivo