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 elemento de documento; el argumento opcional pretty añade sangría al contenido de solo elementos
loadXML acepta un documento XML bien formado; ignoreRoot importa sus hijos en el nodo seleccionado, mientras que False importa el elemento de documento de origen como hijo
overwrite elimina el contenido existente del destino antes de importar; su valor por defecto False añade contenido y preserva las identidades de hijos existentes
El nodo seleccionado conserva 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 correcto instala de inmediato los hijos importados en el grafo del script actual; las propiedades ordinarias y los selectores SOM resuelven esos nodos recién llegados antes de la publicación del evento
Las celdas de datos se sincronizan en ambas direcciones con los alias de campos enlazados, incluidos campos ocultos, objetivos de binding recién suministrados y selectores dataRef existentes de descendientes, comodines, clases e índices numéricos
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ía
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 de hijos antiguos y publica identidades de hijos nuevas; un script object puede retener un handle de datos importado fresco y usarlo en eventos posteriores
Añadir contenido preserva los handles existentes; importar dentro de una fila repetida cambia el ámbito de datos nativo 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 reubica las identidades supervivientes de formularios y script objects para que el estado léxico de los módulos siga anclado a su ámbito de formulario
Contenido y persistencia
Las importaciones nativas y el XDP guardado preservan en orden el texto ordinario, CDATA, comentarios e instrucciones de procesamiento
Los comentarios y las instrucciones de procesamiento 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 externos conservan los 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 comprueba buen formato, validez de namespaces y atributos, caracteres XML, colocación de la declaración y sintaxis de entidades antes de mutar el grafo
Una entrada mal formada 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 producidos después de aplicar ya la importación XML nativa
Cada sesión nativa de JavaScript retiene su módulo DLL real mientras reconstruye engines para la repetición de respuestas; engines, contextos y journals permanecen independientes, y la referencia al módulo se libera tras el teardown del último engine nativo
El parsing y la serialización XML aplican presupuestos de operación, profundidad, nodos, bytes y tiempo transcurrido junto con el plazo original del evento del runtime y los límites de caracteres de valores
Las importaciones no resuelven entidades externas ni realizan acciones de ficheros, red o UI; este parser rechaza las declaraciones DTD
Ámbito actual
Esta integración del runtime de eventos apunta actualmente a Windows Win32 y Win64; la integración del runtime portable en Linux sigue pendiente
Esta integración suministra importación y serialización XML nativas más la reevaluación actual de bindings; el createNode independiente, la mutación de atributos de datos arbitrarios, el reparentado, la navegación por ventanas de registros, los predicados de binding y la política de global-binding siguen siendo objetivos separados del modelo de objetos
APIs relacionadas
Native Data DOM, Native Bind SOM, TXFAEventBinding, TXFAEventAction y Interactive XFA Runtime