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