Proprietà di valore scalari XFA native
L'host degli eventi crea contenitori nativi reali di valori form e foglie scalari attraverso l'accesso alle proprietà o getElement; le proprietà valore dei campi, i valori dati in binding e le letture dei widget condividono lo stesso valore corrente
Creazione scalare
I figli scalari supportati sono boolean, date, dateTime, decimal, float, integer, text e time, con una occorrenza di una classe di valore selezionata
const field = xfa.form.resolveNode("main.row[1].input");
const leaf = field.value.getElement("text", 0);
leaf.value = "updated";
field.dataNode.value = "from-data";
if (leaf.value !== "from-data") throw new Error("Value synchronization failed");
Leggere una proprietà scalare mancante materializza il suo nodo form nativo e inizializza il contenuto dal valore effettivo corrente del campo; l'accesso ripetuto restituisce lo stesso oggetto proprietà live
Value ha i comuni attributi prototype, override=0 e un attributo relevant vuoto per default; le classi scalari supportate espongono i comuni attributi prototype e un name vuoto
Il controllo one-of include tutte le scelte di valore standard, quindi uno scalare non può essere creato accanto a una scelta di valore image, exData o graphic esistente
Sincronizzazione immediata e nativa
Gli accessor value e rawValue delle foglie scalari fanno da proxy al campo proprietario; dataValue.value in binding è un alias scrivibile del suo accessor rawValue
Le scritture su campi, scalari e dati aggiornano le letture reciproche durante lo stesso script, inclusi gli altri campi che condividono lo stesso valore dati in binding
La pubblicazione nativa aggiorna il valore del dataset e le foglie form scalari materializzate esistenti; anche i commit interattivi dei widget e i risultati dei calcoli sincronizzano le proprietà valore materializzate per i campi in binding, inclusi alias hidden e invisible
Il contenuto scalare tipizzato viene conservato come testo fornito, incluse stringhe canoniche di data, ora e numeriche; questa fase non introduce coercizione numerica automatica né nuova formattazione picture
La sincronizzazione degli alias nascosti segue gli scope dati ripetuti reali e preserva le proprietà non materializzate
Istanze, identità e transazioni
Creare e modificare una proprietà valore in una occorrenza ripetuta preserva le altre occorrenze; gli script object possono conservare un riferimento a proprietà scalare per un evento successivo
Le nuove istanze ripetute ricevono nodi valore nativi indipendenti; le scritture dati su una istanza appena creata aggiornano la sua foglia scalare materializzata reale prima che la transazione venga salvata
Errori del motore, fallimenti del budget valore nativo e scelte di valore in conflitto ripristinano gli esatti byte XDP nativi, inclusi dati dei campi, foglie valore materializzate e alias condivisi
Le scansioni di sincronizzazione nativa partecipano ai budget di operazione dell'evento e di tempo trascorso; lavoro eccessivo respinge la transazione e ripristina il suo snapshot
Output PDF salvato
La conversione XFA AcroForm consuma i valori scalari persistiti per valori nativi dei campi e aspetti generati; i valori della prima istanza ripetuta restano invariati
Il producer salvato mirato riapre l'XDP nativo prima della conversione, e controlli indipendenti pypdf e MuPDF ispezionano foglie form tipizzate, valori del dataset, campi nativi e testo di aspetto realmente visibile
Obiettivi di integrazione residui
L'XML exData nativo supporta creazione di valori assenti, import reale di XML straniero, serializzazione immediata via script e consumo persistito di draw rich
I consumatori scalari di draw e caption supportano valori creati per istanza e override vuoti espliciti
La creazione di valori image e graphic supporta figli nativi image, arc, line e rectangle con consumatori draw reali
La validazione completa dei formati scalari, gli aspetti widget rich e l'incorporazione Unicode degli aspetti restano obiettivi di implementazione separati
API correlate
Data DOM nativo, Default nativi dei campi, Creazione di proprietà assenti e Runtime XFA interattivo