XML del Data DOM nativo

Unit: HPDFXFARuntime

Metodi

dataNode.loadXML(xml, ignoreRoot = true, overwrite = false);
const compact = dataNode.saveXML();
const readable = dataNode.saveXML("pretty");

Questi metodi script sono disponibili sui nodi datasets, dataGroup e dataValue negli eventi TXFAWidgetRuntime

saveXML restituisce XML UTF-8 con una dichiarazione e il nodo selezionato come elemento documento; l'argomento opzionale pretty aggiunge indentazione al contenuto di soli elementi

loadXML accetta un documento XML well-formed; ignoreRoot importa i suoi figli nel nodo selezionato, mentre False importa l'elemento documento della sorgente come figlio

overwrite rimuove il contenuto target esistente prima dell'import; il suo default False accoda il contenuto e preserva le identità dei figli esistenti

Il nodo selezionato conserva la sua identità e i suoi attributi; gli attributi dei figli importati e i loro mapping di namespace vengono preservati

Grafo e binding immediati

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 riuscito installa immediatamente i figli importati nel grafo script corrente; le proprietà ordinarie e i selettori SOM risolvono quei nodi freschi prima della pubblicazione dell'evento

Le celle dati si sincronizzano con gli alias dei campi in binding in entrambe le direzioni, inclusi campi hidden, target di binding forniti nuovi e selettori dataRef esistenti di discendenti, wildcard, classi e indici numerici

Gli import da scalare a gruppo aggiornano la classe dati del target ed espongono i suoi elementi figli importati; un dataValue svuotato ha un valore stringa vuoto

Importare un nuovo elemento dati non alloca foglie dati ambigue non correlate per binding non risolti

Identità e scope ripetuti

Overwrite invalida i vecchi handle dei figli e pubblica identità fresche dei figli; uno script object può conservare un handle dati importato fresco e usarlo negli eventi successivi

L'aggiunta preserva gli handle esistenti; importare dentro una riga ripetuta cambia lo scope dati nativo di quella riga e i suoi campi in binding

Gli import XML funzionano anche dentro una occorrenza creata da addInstance durante lo stesso evento

Sostituire il contenuto di datasets aggiorna $data e $record alle nuove radici native, e ribasa le identità superstiti di form e script object così lo stato lessicale dei moduli resta attaccato al suo scope form

Contenuto e persistenza

Gli import nativi e l'XDP salvato preservano in ordine testo ordinario, CDATA, commenti e processing instructions

Commenti e processing instructions restano fuori dalla selezione ordinaria degli elementi del Data DOM e non diventano testo di campo visibile

I nodi importati preservano il loro URI di namespace anche sotto un namespace default di antenato diverso, incluso il namespace default vuoto esplicito per elementi senza namespace

Gli attributi stranieri con prefisso conservano i nomi espansi, e i nomi locali Unicode, il testo accentato e i caratteri supplementari sopravvivono a save e ricaricamento nativi

saveXML di sola lettura non materializza proprietà form né cambia i byte XDP salvati

Validazione e rollback

Il parser XML nativo controlla well-formedness, validità di namespace e attributi, caratteri XML, posizione della dichiarazione e sintassi delle entità prima della mutazione del grafo

L'input malformato può essere intercettato in JavaScript; il grafo nativo e script precedente resta disponibile, e una mutazione valida successiva può ancora committare

Un evento fallito ripristina byte del documento, valori dei widget, grafo importato, identità e stato lessicale degli script object, inclusi fallimenti dopo che l'import XML nativo è già stato applicato

Ogni sessione JavaScript nativa conserva il suo modulo DLL reale mentre ricostruisce i motori per il replay delle risposte; motori, contesti e journal restano indipendenti, e il riferimento al modulo viene rilasciato dopo il teardown finale del motore nativo

Parsing e serializzazione XML applicano budget di operazione, profondità, nodi, byte e tempo trascorso insieme al deadline di evento originale del runtime e ai limiti sui caratteri dei valori

Gli import non risolvono entità esterne né eseguono azioni su file, rete o UI; le dichiarazioni DTD vengono respinte da questo parser

Scope attuale

Questa integrazione event-runtime punta attualmente a Windows Win32 e Win64; l'integrazione del runtime Linux portabile resta in sospeso

Questa integrazione fornisce import e serializzazione XML nativi più rivalutazione corrente dei binding; createNode standalone, mutazione arbitraria di attributi dati, reparenting, navigazione record-window, predicati di binding e policy di binding globale restano obiettivi separati del modello a oggetti

API correlate

Data DOM nativo, Bind SOM nativo, TXFAEventBinding, TXFAEventAction e Runtime XFA interattivo