PhoenixmlDb.Core
XIncludeLimiter
Enforces XInclude expansion resource limits (descent depth, produced-node budget) and carries the xpath1() evaluation timeout. One instance is created per call and threaded through every recursive path, so a bound cannot be silently skipped on one path (the root cause of the resource-safety audit findings). Single-threaded; not reusable.
#XIncludeLimiter
Namespace: PhoenixmlDb.Core.Xml
Enforces XInclude expansion resource limits (descent depth, produced-node budget) and carries the xpath1() evaluation timeout. One instance is created per call and threaded through every recursive path, so a bound cannot be silently skipped on one path (the root cause of the resource-safety audit findings). Single-threaded; not reusable.
#Properties
| Name | Description |
|---|---|
NodeBudgetEnabled
|
Whether the produced-node budget is active. Lets callers skip the (O(subtree)) node count entirely when the budget is disabled, so <= 0 is truly free. |
XPathTimeoutMs
|
The per-xpath1() wall-clock budget in ms (<= 0 = unlimited). |
#Methods
#ConsumeNodes(Int64)
Charges produced nodes against the budget; throws fatal on breach.
#EnterExpansion
Increments the descent depth; throws fatal past the cap.
#ExitExpansion
Decrements the descent depth. Call in a finally paired with .