Data DOM XFA nativo

L'esecuzione generale con EnableJavaScript espone l'albero datasets nativo del documento attraverso i percorsi resolver xfa.datasets, $data e $record e gli accessor FormCalc

I nodi dati usano identità native stabili e lo stesso resolver SOM live dei nodi form; supportano nomi, selettori di classe, selezione di occorrenze, attraversamento dei parent, predicati e risoluzione a livello nodo

Radici e classi

Oggetto o percorsoSignificato
xfa.datasetsIl nodo packet datasets, o null quando assente
xfa.datasets.data e $dataLa radice data sotto il packet datasets
$recordLa prima radice record sotto data nell'attuale modello di elaborazione non-record
dataGroupUn elemento dati contenente elementi figli, incluso un gruppo vuoto dichiarato esplicitamente
dataValueUn elemento dati che porta un valore
formNode.dataNodeIl nodo in binding al campo o subform form, o null quando non è presente un binding dati

L'attributo dataNode nel namespace dati XFA può selezionare esplicitamente la classe di un gruppo o di un valore; i prefissi di namespace vengono risolti invece di richiedere una particolare grafia del prefisso

Letture e scritture

Un dataValue espone value come alias scrivibile di rawValue; entrambi gli accessor aggiornano la stessa cella dati in binding e il nodo dati nativo

const value = xfa.resolveNode("$record.row[1].cell");
value.rawValue = "25";
target.rawValue = xfa.resolveNode("main.row[1].cell").rawValue;

$record.row[1].cell = 25
target = row[1].cell
var p = Ref($record.row[1].cell)
p = 30

Le scritture sui campi in binding aggiornano immediatamente il valore dati corrispondente, e le scritture sui valori dati aggiornano immediatamente le letture dei campi in binding nello stesso script; la pubblicazione nativa scrive il nodo dati reale

Le proprietà di valore scalari materializzate sincronizzano il loro contenuto form nativo dopo scritture su campi o dati, inclusi alias con dati condivisi e pubblicazione dati di nuove istanze ripetute

Gli elementi dati senza campo form in binding restano accessibili e scrivibili; le transazioni riuscite conservano le loro modifiche nell'XDP salvato

I campi form con bind match=none conservano i default del template e memorizzano le modifiche nel valore Form DOM della propria occorrenza; non espongono un nodo dati sintetico e non modificano le occorrenze sibling

I valori dati condividono con l'host degli eventi form i budget Unicode, di dimensione valore ed esecuzione; i nodi gruppo forniscono accesso strutturale invece di un valore raw scrivibile

Istanze ripetute e riferimenti conservati

Inserimento, spostamento e rimozione di istanze form aggiornano il Data DOM live corrispondente durante lo stesso script; le nuove righe con binding implicito espongono i default del template attraverso i loro nodi dati prima della pubblicazione

Un prototype a zero occorrenze può creare il suo primo gruppo dati e valori; la pubblicazione nativa fornisce identità reali per i nuovi nodi, permettendo agli script object di conservare handle dati attraverso gli eventi successivi

I riferimenti dati conservati seguono lo spostamento per identità; usare un riferimento dopo che il suo gruppo è stato rimosso fa fallire l'evento, e il rollback del runtime ripristina ordine delle occorrenze native, valori e contatori degli script object

Gli instance manager conservati dagli script object risolvono lo scope corrente, inclusi i manager il cui conteggio iniziale di occorrenze era zero

Contenuto XML nativo

I nodi datasets, dataGroup e dataValue espongono loadXML e saveXML con parsing nativo, aggiornamenti del grafo nello stesso script e pubblicazione transazionale

Gli import XML preservano commenti, processing instructions, CDATA, namespace espansi e nomi Unicode tenendo i nodi non testuali fuori dalla selezione ordinaria dei figli del Data DOM e dai valori visibili dei campi

I valori importati sincronizzano immediatamente le letture dei campi in binding, inclusi campi il cui dataRef esistente seleziona un suffisso diverso o il cui target precedentemente non risolto ora è disponibile

Transazioni e chiamanti di livello inferiore

TXFAWidgetRuntime costruisce i binding del dominio dati, collega i campi form ai valori dati nativi, applica scritture dati e nuovi binding di identità, e ripristina l'esatto stato XDP dopo fallimenti del motore o della pubblicazione nativa

I chiamanti di eventi di livello inferiore usano TXFAEventBindingDomain e i campi DataIdentity e DataBindingEnabled di TXFAEventBinding per fornire relazioni tra oggetti equivalenti

L'azione xeakBindDataIdentity lega un nuovo handle dati virtuale alla sua identità dati nativa pubblicata; le applicazioni di livello inferiore devono applicare transazionalmente le mutazioni dati restituite e i binding di identità

Copertura residua del modello a oggetti

Navigazione record-window, creazione e reparenting standalone di nodi dati, attributi dati arbitrari e editing completo dei nodi proprietà del template restano obiettivi di integrazione separati

Il mirroring delle istanze segue il comportamento esistente dell'instance manager con binding dati implicito; ulteriori mutazioni di istanze con binding esplicito richiedono integrazione di binding aggiuntiva

API correlate

Percorsi SOM live, Riferimenti FormCalc, HPDFXFAExecuteJavaScriptEvent e Runtime XFA interattivo