XFA Implicit Binding Budgets
Unit: HPDFXFARuntime
Existing implicit values
Committing a widget with no explicit bind declaration can look up its existing field-name value directly in the current native data graph, without repeatedly escaping and parsing that name as a SOM expression
This lookup preserves the original first-record and descendant precedence, uses the actual repeated data context and rechecks live children on each commit; replacing a value node does not leave editing tied to a freed cached value
A repeated context must still belong to the current datasets graph before lookup dereferences it; removing that context rejects the transaction and restores the captured XML and interaction state instead of overwriting a replacement occurrence
Independent structural work
Each native lookup is bounded by TXFAWidgetRuntimeOptions.MaxLayoutOperations, including metadata scans, live-context traversal and field-name size; the bound is checked before traversal entries are added
Larger scans check the same transaction deadline every 256 charged native steps; smaller lookups preserve the existing evaluator clock sequence and are given the remaining transaction duration at the usual script boundary
Explicit bind declarations, missing values, creation and cases requiring general descendant resolution continue through the existing SOM resolver and its transaction-wide script operation and elapsed-time budgets
Transactional behaviour
A failed validation, calculation or deadline check restores committed data and keeps the pending candidate, editing state and focus; CancelEdit discards the candidate without changing the committed native value
Application callbacks that change the document before a transaction must leave a graph valid under the configured layout limits, because rollback rebuilds widgets under those same limits
Related APIs
TXFAWidgetRuntimeOptions, Native Bind SOM and Interactive Widget Runtime