PhoenixmlDb.Core

IXmlResourceResolver

Host-injectable seam for resolving the resources referenced by an XInclude xi:include element (href, optionally combined with parse).

#IXmlResourceResolver

Namespace: PhoenixmlDb.Core.Xml

Host-injectable seam for resolving the resources referenced by an XInclude xi:include element (href, optionally combined with parse).

Implementations decide how (and whether) a given absolute may be dereferenced. The default engine-provided implementation is , which resolves file: URIs and blocks remote (e.g. http:/https:) URIs unless explicitly allowed. Hosts may supply their own implementation via to add caching, sandboxing, or support for custom URI schemes.

#Methods

#ResolveText(Uri,String,String,String)

Resolves for an xi:include with parse="text", returning the resource's content decoded as text.

Parameters:

  • absolute — The absolute URI to resolve.

  • encoding — The character encoding name specified by the encoding attribute, or to auto-detect / use the resource's declared encoding.

  • accept — The accept attribute value (HTTP Accept header), or null.

  • acceptLanguage — The accept-language attribute value (HTTP Accept-Language header), or null.

Returns: The resolved resource's content as text.

#ResolveXml(Uri)

Resolves for an xi:include with parse="xml" (the default), returning a reader positioned to parse the referenced resource as XML.

Parameters:

  • absolute — The absolute URI to resolve.

Returns: An over the resolved resource.

This method resolves the ABSOLUTE URI it is given. The caller is responsible for resolving a relative href against the current xml:base before invoking this method, and treats the passed as the xml:base origin for content nested inside the resolved resource; this method does not report a redirected/final URI back to the caller. Any path-traversal or sandboxing policy for file:-scheme paths (e.g. restricting resolution to a directory allowlist) is the caller/host's concern, not this interface's.