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.