Estructura transaccional del Data DOM XFA

Los eventos JavaScript pueden crear, clonar, renombrar, adjuntar, reordenar y desprender elementos nativos del Data DOM, con lecturas de scripts inmediatas y persistencia nativa en toda la transacción

const record = xfa.record;
const value = xfa.datasets.createNode("dataValue");
value.name = "amount";
value.value = "42";
record.nodes.append(value);
const retained = value.clone(false);
record.nodes.remove(value);
record.nodes.insert(value, record.nodes.item(0));

Operaciones soportadas

xfa.datasets.createNode(className, name = "", namespace = "") crea un dataGroup o dataValue sin adjuntar; los nombres cualificados exigen un URI de namespace no vacío

node.clone(recursive = true) crea una copia del Data DOM sin adjuntar con identidades frescas; false excluye los nodos hijos reteniendo los metadatos y el valor del propio elemento

node.name es escribible para los elementos del Data DOM y preserva namespace, orden de hermanos, descendientes y alias retenidos; una construcción sin nombre debe recibir un nombre local válido antes de adjuntarse

node.nodes.length, item(index) y namedItem(name) leen los hijos elementos ordenados vivos; item y namedItem devuelven null cuando ningún hijo empareja

nodes.append(node) y nodes.insert(node, before) transfieren el mismo objeto a los hijos del propietario; insert(node, null) añade al final

nodes.remove(node) desprende un hijo directo manteniendo su objeto y subtree disponibles para los alias retenidos y una readición posterior

xfa.record devuelve el primer record actual bajo la raíz de datos del Data DOM y se actualiza tras las ediciones estructurales

Identidad, XML y enlaces

Un script object puede retener un nodo, descendiente o colección hija propietaria a través de eventos; los alias vivos resuelven los mismos objetos nativos tras adjuntar, desprender, renombrar y revertir

loadXML y saveXML funcionan sobre elementos recién creados y movidos, incluidos los descendientes importados y luego movidos durante el mismo evento

Las identidades nativas estables evitan que los alias de descendientes importados resuelvan silenciosamente un hijo distinto tras cambios posicionales

Los namespaces de atributos heredados, los resets explícitos de namespace por defecto vacíos, los comentarios, las processing instructions, el CDATA y los valores Unicode sobreviven al clone, move, save y reload

Los enlaces de formularios se refrescan tras los cambios estructurales, y los valores escritos a través de nodos de datos recién adjuntados llegan a la instancia repetida correspondiente del formulario sin cambiar otra instancia

Transacciones y límites

Las clases inválidas, nombres XML, referencias de hermanos, ciclos y nodos foráneos fallan antes de que esa operación individual cambie el grafo vivo de scripts

Un error de script no capturado, un fallo de aplicación nativa, una cancelación, un tope de operaciones o un límite de tiempo transcurrido restaura el evento completo, incluidos los nodos adjuntos y separados, los valores enlazados, los alias retenidos, el estado léxico de script objects y el estado del journal; el mismo runtime puede entonces reintentar

Los nodos estructurales y los árboles separados comparten los topes nativos de nodos, profundidad y bytes UTF-8; el plazo original de la transacción de scripts se aplica a los cambios JavaScript y nativos juntos

Consumo PDF

Guarde el runtime a XDP y pase esos bytes a HPDFXFAWriteHeadlessPDF para crear campos y appearances PDF nativos reales a partir de los enlaces de datos cambiados

TXFAHeadlessPDFOptions.Editable = False crea campos nativos de solo lectura con appearances; ese ajusto no los aplana

Cobertura actual

Esta página describe las ediciones del Data DOM; el scripting transaccional del árbol de formularios proporciona creación, clonado, inserción, eliminación y consumo PDF nativo soportados de formularios vivos

La edición general de templates, el procesamiento completo de subform-sets de choice y el esquema completo de clases de nodos XFA siguen siendo capacidades aparte

Colecciones de nodos de consultas independientes · API nativa de grafo estructural · Runtime de widgets XFA