Native XFA Data DOM

Obecné provedení s EnableJavaScript vystavuje nativní strom datasetů dokumentu přes resolver cesty xfa.datasets, $data a $record i accessorů FormCalc

Datové uzly používají stabilní nativní identity a tentýž živý SOM resolver jako form uzly; podporují názvy, selektory tříd, výběr výskytů, traversal rodičů, predikáty i rozřešení na úrovni uzlu

Kořeny a třídy

Objekt či cestaVýznam
xfa.datasetsUzel packetu datasets, či null, když chybí
xfa.datasets.data a $dataDatový kořen pod packetem datasets
$recordPrvní kořen záznamu pod data v aktuálním modelu zpracování bez záznamů
dataGroupDatový element obsahující potomní elementy, tedy i explicitně deklarovanou prázdnou skupinu
dataValueDatový element nesoucí hodnotu
formNode.dataNodeUzel navázaný na form pole či subform, či null, když žádný datový binding chybí

Atribut dataNode v datovém namespace XFA umí explicitně vybrat třídu skupiny či hodnoty; namespace prefixy se rozřešují, místo aby se vyžadoval konkrétní pravopis prefixu

Čtení a zápisy

DataValue vystavuje value jako zapisovatelný alias rawValue; oba accessory aktualizují tutéž navázanou datovou buňku i nativní datový uzel

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

Zápisy do navázaných polí hned aktualizují odpovídající datovou hodnotu a zápisy datové hodnoty hned aktualizují čtení navázaných polí v rámci téhož skriptu; nativní publikace zapisuje skutečný datový uzel

Materializované skalární value vlastnosti si po zápisech polí či dat synchronizují nativní form obsah, tedy i aliasy sdílených dat i publikaci dat nových opakovaných instancí

Datové elementy bez navázaného form pole zůstávají dostupné a zapisovatelné; úspěšné transakce zachovají jejich změny v uloženém XDP

Form pole s bind match=none si uchovají šablonové defaulty a ukládají editace ve Form DOM hodnotě vlastního výskytu; nevystavují žádný syntetický datový uzel ani nemění sousední výskyty

Datové hodnoty sdílejí rozpočty Unicode, velikosti hodnot i provedení s hostitelem událostí formuláře; skupinové uzly dodávají strukturální přístup, nikoli zapisovatelnou surovou hodnotu

Opakované instance a držené reference

Vložení, přesun i odebrání form instance aktualizuje odpovídající živý Data DOM během téhož skriptu; nové řádky implicitního bindingu vystaví šablonové defaulty přes své datové uzly, dřív než publikace

Prototyp s nulovým počtem výskytů může vytvořit svou první datovou skupinu i hodnoty; nativní publikace dodá skutečné identity nových uzlů, takže skriptové objekty si mohou držet datové handly napříč dalšími událostmi

Držené datové reference sledují pohyb podle identity; použití reference po odebrání její skupiny událost zhatí a runtime rollback obnoví nativní pořadí výskytů, hodnoty i počítadla skriptových objektů

Instance manažeři držení skriptovými objekty rozřeší aktuální scope, tedy i manažery s počátečním počtem výskytů nula

Nativní XML obsah

Uzly datasets, dataGroup a dataValue vystavují loadXML a saveXML s nativním parsováním, aktualizacemi grafu ve stejném skriptu i transakční publikací

XML importy zachovávají komentáře, processing instructions, CDATA, expandované namespace i Unicode názvy, zatímco netextové uzly drží mimo běžný výběr potomků Data DOM i viditelné hodnoty polí

Importované hodnoty hned synchronizují čtení navázaných polí, tedy i polí, jejichž stávající dataRef vybere jinou příponu, či jejichž dřív nerozřešený cíl je teď dostupný

Transakce a nížeúrovňoví volající

TXFAWidgetRuntime postaví bindingy datové domény, propojí form pole s nativními datovými hodnotami, aplikuje datové zápisy i nové identity bindingů a obnoví přesný stav XDP po selhání engine či nativní publikace

Nížeúrovňoví volající událostí použijí TXFAEventBindingDomain a pole DataIdentity a DataBindingEnabled z TXFAEventBinding k dodání ekvivalentních objektových vztahů

Akce xeakBindDataIdentity naváže nový virtuální datový handle na jeho publikovanou nativní datovou identitu; nížeúrovňové aplikace musí vrácené datové mutace i identity bindingy aplikovat transakčně

Zbývající pokrytí objektového modelu

Navigace v okně záznamů, samostatné vytváření a přesouvání datových uzlů, libovolné datové atributy i kompletní editace šablonových property uzlů zůstávají samostatnými integračními cíli

Zrcadlení instancí sleduje stávající chování instance manageru implicitního datového bindingu; dodatečné mutace instancí explicitního bindingu vyžadují další binding integraci

Související API

Živé SOM cesty, FormCalc reference, HPDFXFAExecuteJavaScriptEvent a Interactive XFA Runtime