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 percorso | Significato |
|---|---|
xfa.datasets | Il nodo packet datasets, o null quando assente |
xfa.datasets.data e $data | La radice data sotto il packet datasets |
$record | La prima radice record sotto data nell'attuale modello di elaborazione non-record |
dataGroup | Un elemento dati contenente elementi figli, incluso un gruppo vuoto dichiarato esplicitamente |
dataValue | Un elemento dati che porta un valore |
formNode.dataNode | Il 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