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