Native XFA Data DOM
Algemene executie met EnableJavaScript legt de native datasets-boom van het document bloot via xfa.datasets-, $data- en $record-resolver-paden en FormCalc-accessors
Data-nodes gebruiken stabiele native identiteiten en dezelfde live SOM-resolver als formulier-nodes; ze ondersteunen namen, klasse-selectors, occurrence-selectie, ouder-traversal, predicates en node-niveau-resolutie
Wortels en klassen
| Object of pad | Betekenis |
|---|---|
xfa.datasets | De datasets-packet-node, of null wanneer afwezig |
xfa.datasets.data en $data | De data-wortel onder de datasets-packet |
$record | De eerste record-wortel onder data in het huidige non-record-processing-model |
dataGroup | Een data-element met kind-elementen, inclusief een expliciet gedeclareerde lege groep |
dataValue | Een data-element dat een waarde draagt |
formNode.dataNode | De node gebonden aan het formulierveld of de subform, of null wanneer geen databinding aanwezig is |
Het dataNode-attribute in de XFA-data-namespace kan de klasse van een groep of waarde expliciet kiezen; namespace-prefixes worden opgelost in plaats van een bepaalde prefix-spelling te vereisen
Reads en writes
Een dataValue legt value bloot als een schrijfbare alias van rawValue; beide accessors werken dezelfde gebonden datacel en native data-node bij
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
Gebonden veld-writes werken de bijbehorende datawaarde direct bij, en datawaarde-writes werken gebonden veld-reads direct bij binnen hetzelfde script; native publicatie schrijft de echte data-node
Gematerialiseerde scalar-waarde-properties synchroniseren diens native formulier-content na veld- of data-writes, inclusief gedeelde-data-aliassen en nieuwe herhaalde-instance-data-publicatie
Data-elementen zonder gebonden formulierveld blijven toegankelijk en schrijfbaar; geslaagde transacties behouden diens wijzigingen in opgeslagen XDP
Formuliervelden met bind match=none behouden template-defaults en bewaren edits in de Form DOM-waarde van diens eigen occurrence; ze leggen geen synthetische data-node bloot en wijzigen geen sibling-occurrences
Datawaarden delen Unicode-, waardegrootte- en executiebudgetten met de formulier-event-host; groeps-nodes leveren structurele toegang in plaats van een schrijfbare raw waarde
Herhaalde instances en vastgehouden referenties
Formulier-instance-insertie, -verplaatsing en -verwijdering werken de bijbehorende live Data DOM bij tijdens hetzelfde script; nieuwe implicit-bound-rijen leggen template-defaults bloot via diens data-nodes vóór publicatie
Een zero-occurrence-prototype kan diens eerste datagroep en -waarden creëren; native publicatie levert echte identiteiten voor de nieuwe nodes, zodat script-objecten data-handles kunnen vasthouden over daaropvolgende events heen
Vastgehouden datareferenties volgen verplaatsing op identiteit; een referentie gebruiken nadat diens groep is verwijderd laat het event falen, en runtime-rollback herstelt native occurrence-volgorde, waarden en script-object-counters
Instance managers vastgehouden door script-objecten resolven de huidige scope, inclusief managers waarvan het initiële occurrence-aantal nul was
Native XML-content
datasets-, dataGroup- en dataValue-nodes leggen loadXML en saveXML bloot met native parsing, same-script graaf-updates en transactionele publicatie
XML-imports behouden comments, processing instructions, CDATA, uitgeklapte namespaces en Unicode-namen terwijl nontext-nodes buiten gewone Data DOM-kindselectie en zichtbare veldwaarden blijven
Geïmporteerde waarden synchroniseren direct gebonden veld-reads, inclusief velden waarvan de bestaande dataRef een ander suffix kiest of waarvan de eerder onopgeloste target nu beschikbaar is
Transacties en lower-level aanroepers
TXFAWidgetRuntime bouwt data-domein-bindingen, koppelt formuliervelden aan native datawaarden, past data-writes en nieuwe identity-bindingen toe en herstelt exacte XDP-status na engine- of native publicatiefalen
Lower-level event-aanroepers gebruiken TXFAEventBindingDomain en de DataIdentity- en DataBindingEnabled-velden van TXFAEventBinding om equivalente objectrelaties te leveren
De xeakBindDataIdentity-action koppelt een nieuw virtueel data-handle aan diens gepubliceerde native data-identiteit; lower-level applicaties moeten teruggegeven datamutaties en identity-bindingen transactioneel toepassen
Resterende objectmodel-dekking
Record-venster-navigatie, standalone data-node-creatie en her-oudering, willekeurige data-attributes en volledige template property-node-bewerking blijven aparte integratiedoelen
Instance-spiegeling volgt het bestaande implicit-data-binding-instance-manager-gedrag; extra expliciete-binding-instance-mutaties vragen verdere binding-integratie
Related APIs
Live SOM Paths, FormCalc References, HPDFXFAExecuteJavaScriptEvent en Interactive XFA Runtime