PhoenixmlDb.XQuery

HttpDocumentClient

Shared for fetching XML documents referenced by fn:doc() / xsl:source-document / fn:doc-available() when the resolved URI is http:// or https://.

#HttpDocumentClient

Namespace: PhoenixmlDb.XQuery

Shared for fetching XML documents referenced by fn:doc() / xsl:source-document / fn:doc-available() when the resolved URI is http:// or https://.

One static client is reused across the process to amortize TCP/TLS handshake cost. Conservative 30 s timeout — long enough for typical XML documents over the network, short enough that a misconfigured URL surfaces as an error rather than hanging the query. Sandbox enforcement is the caller's responsibility: PolicyEnforcingResolver wraps this when a ResourcePolicy is configured.

#Methods

#OpenRead(Uri)

Opens a streaming read of . The caller is responsible for disposing the returned stream. Streaming avoids buffering large documents into a string before parsing — important for the 100+ MB documents the engine targets.

Synchronous-over-async: the underlying call is awaited to completion on the calling thread. This is fine on runtimes that allow thread blocking (server, desktop, CLI) but fails on Blazor WebAssembly (single-threaded, cannot park a thread on a monitor wait). On WASM, register a custom that pre-fetches documents asynchronously instead of relying on this default loader — we throw a clear error here rather than the runtime's obscure Cannot wait on monitors message.