Native XFA Bind SOM
The interactive runtime resolves bind dataRef paths against actual native dataset nodes; direct editing, script rawValue assignments and materialized concealed form values consume the same selected data value
Selectors
| Expression | Selection |
|---|---|
$data..Detail.Price[1] | The second Price under a matching descendant Detail |
$data.main.*.Detail[1].Price[1] | Refines wildcard branches through 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] | Uses native Data DOM group classification before sibling indexing |
$data..Detail[*].Price[1] | Allows every matching Detail occurrence to participate 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 when present; otherwise actual element children distinguish groups from values
Comments, processing instructions and ordinary text nodes do not participate as data elements
Implicit field-name binding treats dots as part of the XML name; explicit selector paths use 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 materialized; 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 also governs binding traversal
SaveToBytes persists actual native XML rather than an event-only view; reopening the saved XDP consumes the selected data value again
Creation and remaining coverage
Deterministic named paths can create missing index-zero elements; failed suffix resolution or interrupted traversal removes allocations made by that lookup
Wildcard, descendant, class and [*] paths select existing nodes without allocating ambiguous missing branches
The XFA dataRef specification uses 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 can use that occurrence's separate native form value without allocating an ambiguous dataset path
Relative [+n] and [-n] indices belong to 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 remain separate coverage targets