PhoenixmlDb.XQuery

PolicyEnforcingResolver

Wraps an and enforces rules before delegating to the inner resolver or a custom .

#PolicyEnforcingResolver

Namespace: PhoenixmlDb.XQuery.Security

Wraps an

and enforces

rules before delegating to the inner resolver or a custom

.

The inner resolver receives the URI the policy authorised (absolute, with a

file:

path canonicalised), never the raw argument, so what was checked is what is opened. Hosts may use it for their own resource reads;

is the underlying check.

#Constructors

##ctor(PhoenixmlDb.XQuery.IDocumentResolver,PhoenixmlDb.XQuery.Security.ResourcePolicy)

Creates a resolver enforcing

in front of

.

#Properties

Name Description
Policy The policy this resolver enforces.

#Methods

#AuthorizeText(String,Uri)

Authorises a text read, returning the URI to open (see

).

#CheckWriteAccess(String)

Checks whether a write operation is allowed for the given href.

#IsDocumentAvailable(String)

#IsDocumentAvailable(String,PhoenixmlDb.XQuery.Security.ResourceCaller)

for a call a module makes.

#IsTextAvailable(String)

Checks text availability without loading.

#IsTextAvailable(String,PhoenixmlDb.XQuery.Security.ResourceCaller)

for a call a module makes.

#OpenResultDocument(String)

Opens a result document writer via the custom resolver, if available.

#RedirectCheck(PhoenixmlDb.XQuery.Security.ResourceAccessKind)

A redirect authoriser for

under this policy.

#ResolveCollection(String)

#ResolveDocument(String)

#ResolveDocument(String,PhoenixmlDb.XQuery.Security.ResourceCaller)

for a call a module makes: the host's resolver is told who asks.

#ResolveStylesheetModule(String,Uri)

Resolves a stylesheet module via the custom resolver, if available.

#ResolveText(String,String)

Resolves text content, enforcing policy. Used by unparsed-text() functions.

#UnderPolicy``1(Func<``0>)

Runs a load of the store with this resolver's policy in force for what the loaded document itself includes (xi:include, where the host has enabled it).