Struttura transazionale del Data DOM XFA

Gli eventi JavaScript possono creare, clonare, rinominare, agganciare, riordinare e staccare elementi nativi del Data DOM, con letture immediate degli script e persistenza nativa su tutta la transazione

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));

Operazioni supportate

xfa.datasets.createNode(className, name = "", namespace = "") crea un dataGroup o dataValue non agganciato; i nomi qualificati richiedono un URI di namespace non vuoto

node.clone(recursive = true) crea una copia non agganciata del Data DOM con identità fresche; false esclude i nodi figli conservando i metadata e il valore dell'elemento stesso

node.name è scrivibile per gli elementi del Data DOM e preserva namespace, ordine dei fratelli, discendenti e alias trattenuti; una costruzione senza nome deve ricevere un nome locale valido prima dell'aggancio

node.nodes.length, item(index) e namedItem(name) leggono i figli elementi ordinati vivi; item e namedItem restituiscono null quando nessun figlio corrisponde

nodes.append(node) e nodes.insert(node, before) trasferiscono lo stesso oggetto nei figli del proprietario; insert(node, null) accoda

nodes.remove(node) stacca un figlio diretto mantenendo il suo oggetto e sottoalbero disponibili agli alias trattenuti e a un futuro re-aggancio

xfa.record restituisce il primo record corrente sotto la radice dati del Data DOM e si aggiorna dopo le modifiche strutturali

Identità, XML e binding

Uno script object può trattenere un nodo, un discendente o una collezione figlia di proprietà attraverso gli eventi; gli alias vivi risolvono gli stessi oggetti nativi dopo aggancio, distacco, rinomina e rollback

loadXML e saveXML funzionano su elementi appena creati e spostati, compresi i discendenti importati e poi spostati nello stesso evento

Le identità native stabili impediscono agli alias dei discendenti importati di risolvere silenziosamente un figlio diverso dopo cambiamenti posizionali

Namespace degli attributi ereditati, reset espliciti vuoti del namespace predefinito, commenti, processing instructions, CDATA e valori Unicode sopravvivono a clonazione, spostamento, salvataggio e ricaricamento

I binding del form si aggiornano dopo le modifiche strutturali, e i valori scritti attraverso nodi dati appena agganciati raggiungono la corrispondente istanza ripetuta del form senza modificare un'altra istanza

Transazioni e limiti

Classi non valide, nomi XML, riferimenti a fratelli, cicli e nodi estranei falliscono prima che quella singola operazione modifichi il grafo script vivo

Un errore script non catturato, un fallimento dell'applicazione nativa, una cancellazione, un tetto di operazioni o un limite di tempo trascorso ripristina l'evento completo, inclusi nodi agganciati e staccati, valori dei binding, alias trattenuti, stato lessicale degli script-object e stato del giornale; lo stesso runtime può quindi riprovare

Nodi strutturali e alberi staccati condividono i tetti nativi di nodo, profondità e byte UTF-8; il deadline della transazione script originale si applica insieme a JavaScript e alle modifiche native

Consumo PDF

Salvate il runtime in XDP e passate quei byte a HPDFXFAWriteHeadlessPDF per creare veri campi e appearance PDF nativi dai binding di dati modificati

TXFAHeadlessPDFOptions.Editable = False crea campi nativi in sola lettura con appearance; quell'impostazione non li appiattisce

Copertura corrente

Questa interfaccia strutturale copre il Data DOM; la creazione e clonazione generale di nodi template/form, la mutazione indipendente di query-list e lo scripting completo delle classi di nodi restano lavoro di implementazione separato

API nativa del grafo strutturale · Runtime dei widget XFA

Collezioni di nodi di query indipendenti · API nativa del grafo strutturale · Runtime dei widget XFA