Native XFA Bind SOM
The interactive runtime resolves bind dataRef paths against actual native dataset nodes; direct editing, script rawValue assignments and materialised concealed form values consume the same selected data value
Selectors
| Expression | Selection |
|---|---|
$data..Detail.Price[1] | The second Price beneath a matching descendant Detail |
$data.main.*.Detail[1].Price[1] | Refines wildcard branches via the requested suffix |
$data.main.*[1].Detail.Price[1] | Restricts the wildcard to its explicit second sibling match |
$data.main.#dataGroup[1].Detail.Price[1] | Applies native Data DOM group classification before sibling indexing |
$data..Detail[*].Price[1] | Lets every matching Detail occurrence take part in suffix lookup |
$data.main.Price\.Tax | Selects an XML element whose literal name is Price.Tax |
The namespace-qualified xfa:dataNode attribute controls dataGroup and dataValue classification where present; otherwise actual element children distinguish groups from values
Comments, processing instructions and ordinary text nodes are not treated as data elements
Implicit field-name binding treats dots as part of the XML name; explicit selector paths rely on backslash escaping for literal selector characters
Transactions and native persistence
A successful edit updates the selected dataset leaf and existing aliases, including hidden fields whose value properties have materialised; unselected siblings and repeated occurrences preserve their original values
Validation failure, operation exhaustion or deadline expiry restores the native dataset and form packets byte exactly; the runtime's configured monotonic clock likewise governs binding traversal
SaveToBytes persists actual native XML instead of an event-only view; reopening the saved XDP consumes the selected data value again
Creation and remaining coverage
Deterministic named paths may create missing index-zero elements; failed suffix resolution or interrupted traversal removes allocations made by that lookup
Wildcard, descendant, class and [*] paths match existing nodes without allocating ambiguous missing branches
The XFA dataRef specification requires fully qualified Data DOM paths; existing relative binding paths remain a compatibility feature resolved within the supplied occurrence context
A relative path that misses in a supplied occurrence does not search other records; an unresolved indirect binding may use that occurrence's separate native form value without allocating an ambiguous dataset path
Relative [+n] and [-n] indices are part of unqualified script references and are not accepted as fully qualified binding indices
Attribute selectors, general predicates, all node-class structural XML operations, global binding assignment policy and picture-based canonical value validation are still separate coverage targets