Nativ XFA Data DOM
Generell körning med EnableJavaScript exponerar dokumentets nativa datamängdsträd via xfa.datasets, $data och $record samt upplösningssökvägar och FormCalc-accessorer
Datanoder använder stabila nativa identiteter och samma levande SOM-upplösare som formulärnoder; de stöder namn, klassväljare, förekomstval, föräldertraversering, predikat och upplösning på nodnivå
Rötter och klasser
| Objekt eller sökväg | Betydelse |
|---|---|
xfa.datasets | datapaketnoden, eller null när den saknas |
xfa.datasets.data och $data | dataroten under datapaketet |
$record | den första postroten under data i den aktuella icke-postbaserade processmodellen |
dataGroup | ett dataelement som innehåller barnelement, inklusive en explicit deklarerad tom grupp |
dataValue | ett dataelement som bär ett värde |
formNode.dataNode | noden som är bunden till formulärfältet eller subformen, eller null när ingen databinding finns |
Attributet dataNode i XFAs data-namespace kan explicit välja en grupps eller ett värdes klass; namespace-prefix löses upp i stället för att kräva en viss prefixstavning
Läsning och skrivning
En dataValue exponerar value som en skrivbar alias till rawValue; båda accessorerna uppdaterar samma bundna datacell och nativa datanod
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
Skrivningar till bundna fält uppdaterar motsvarande datavärde omedelbart, och skrivningar till datavärden uppdaterar bundna fältläsningar omedelbart inom samma skript; nativ publicering skriver den faktiska datanoden
Materialiserade skalära värdeegenskaper synkroniserar sitt nativa formulärinnehåll efter fält- eller dataskrivningar, inklusive alias för delad data och publicering av data för nya upprepade instanser
Dataelement utan bundet formulärfält förblir åtkomliga och skrivbara; lyckade transaktioner bevarar deras ändringar i sparad XDP
Formulärfält med bind match=none behåller mallstandardvärden och lagrar redigeringar i sin egen förekomsts Form DOM-värde; de exponerar ingen syntetisk datanod och ändrar inte syskonförekomster
Datavärden delar Unicode-, värdestorleks- och körningsbudgetar med formulärhändelsevärden; gruppnoder ger strukturell åtkomst i stället för ett skrivbart rawValue
Upprepade instanser och kvarhållna referenser
Insättning, flytt och borttagning av formulärinstanser uppdaterar motsvarande levande Data DOM under samma skript; nya implicit bundna rader exponerar mallstandardvärden via sina datanoder före publicering
En prototyp med noll förekomster kan skapa sin första datagrupp och sina värden; nativ publicering tilldelar verkliga identiteter till de nya noderna, vilket låter skriptobjekt behålla datareferenser över efterföljande händelser
Kvarhållna datareferenser följer flyttningar via identitet; att använda en referens efter att dess grupp tagits bort misslyckar händelsen, och runtime-återställning återställer nativ förekomstordning, värden och skriptobjektsräknare
Instanshanterare som hålls kvar av skriptobjekt löser det aktuella scopet, inklusive hanterare vars initiala förekomstantal var noll
Nativt XML-innehåll
Noderna datasets, dataGroup och dataValue exponerar loadXML och saveXML med nativ parsning, graferingsuppdateringar inom samma skript och transaktionsbaserad publicering
XML-importer bevarar kommentarer, processinstruktioner, CDATA, expanderade namespace och Unicode-namn och håller samtidigt icke-textnoder utanför vanlig barnval i Data DOM och synliga fältvärden
Importerade värden synkroniserar bundna fältläsningar omedelbart, även fält vars befintliga dataRef väljer ett annat suffix eller vars tidigare olösta mål nu finns tillgängligt
Transaktioner och anropare på lägre nivå
TXFAWidgetRuntime bygger databindningar på datadomänen, kopplar formulärfält till nativa datavärden, tillämpar dataskrivningar och nya identitetsbindningar och återställer exakt XDP-tillstånd efter motor- eller nativt publiceringsfel
Anropare på lägre nivå använder TXFAEventBindingDomain samt fälten DataIdentity och DataBindingEnabled i TXFAEventBinding för att tillhandahålla motsvarande objektrelationer
Åtgärden xeakBindDataIdentity binder ett nytt virtuellt data-handtag till sin publicerade nativa dataidentitet; program på lägre nivå måste tillämpa returnerade datamutationer och identitetsbindningar transaktionsbaserat
Återstående objektmodelltäckning
Navigering i postfönster, fristående skapande och omflyttning av datanoder, godtyckliga dataattribut samt fullständig redigering av mallegenskapsnoder återstår som separata integrationsmål
Instansspegling följer det befintliga beteendet för implicita databindande instanshanterare; ytterligare instansmutationer med explicit binding kräver mer bindningsintegrering
Relaterade API:er
Levande SOM-sökvägar, FormCalc-referenser, HPDFXFAExecuteJavaScriptEvent och Interaktiv XFA-runtime